1. 推薦系統(一):基於物品的協同過濾演算法
協同過濾(collaborative filtering)演算法是最經典、最常用的推薦演算法。其基本思想是收集用戶偏好,找到相似的用戶或物品,然後計算並推薦。
基於物品的協同過濾演算法的核心思想就是:給用戶推薦那些和他們之前喜歡的物品相似的物品。主要可分為兩步:
(1) 計算物品之間的相似度,建立相似度矩陣。
(2) 根據物品的相似度和用戶的歷史行為給用戶生成推薦列表。
相似度的定義有多種方式,下面簡要介紹其中幾種:
其中,分母 是喜歡物品 的用戶數,而分子 是同時喜歡物品 和物品 的用戶數。因此,上述公式可以理解為喜歡物品 的用戶中有多少比例的用戶也喜歡物品 。
上述公式存在一個問題。如果物品 很熱門, 就會很大,接近1。因此,該公式會造成任何物品都會和熱門的物品有很大的相似度,為了避免推薦出熱門的物品,可以用下面的公式:
這個公式懲罰了物品 的權重,因此減輕了熱門物品會和很多物品相似的可能性。
另外為減小活躍用戶對結果的影響,考慮IUF(nverse User Frequence) ,即用戶活躍度對數的倒數的參數,認為活躍用戶對物品相似度的貢獻應該小於不活躍的用戶。
為便於計算,還需要進一步將相似度矩陣歸一化 。
其中 表示用戶 對物品 的評分。 在區間 內,越接近1表示相似度越高。
表示空間中的兩個點,則其歐幾里得距離為:
當 時,即為平面上兩個點的距離,當表示相似度時,可採用下式轉換:
距離越小,相似度越大。
一般表示兩個定距變數間聯系的緊密程度,取值范圍為[-1,1]
其中 是 和 的樣品標准差
將用戶行為數據按照均勻分布隨機劃分為M份,挑選一份作為測試集,將剩下的M-1份作為訓練集。為防止評測指標不是過擬合的結果,共進行M次實驗,每次都使用不同的測試集。然後將M次實驗測出的評測指標的平均值作為最終的評測指標。
對用戶u推薦N個物品(記為 ),令用戶u在測試集上喜歡的物品集合為 ,召回率描述有多少比例的用戶-物品評分記錄包含在最終的推薦列表中。
准確率描述最終的推薦列表中有多少比例是發生過的用戶-物品評分記錄。
覆蓋率反映了推薦演算法發掘長尾的能力,覆蓋率越高,說明推薦演算法越能夠將長尾中的物品推薦給用戶。分子部分表示實驗中所有被推薦給用戶的物品數目(集合去重),分母表示數據集中所有物品的數目。
採用GroupLens提供的MovieLens數據集, http://www.grouplens.org/node/73 。本章使用中等大小的數據集,包含6000多用戶對4000多部電影的100萬條評分。該數據集是一個評分數據集,用戶可以給電影評1-5分5個不同的等級。本文著重研究隱反饋數據集中TopN推薦問題,因此忽略了數據集中的評分記錄。
該部分定義了所需要的主要變數,集合採用字典形式的數據結構。
讀取原始CSV文件,並劃分訓練集和測試集,訓練集佔比87.5%,同時建立訓練集和測試集的用戶字典,記錄每個用戶對電影評分的字典。
第一步循環讀取每個用戶及其看過的電影,並統計每部電影被看過的次數,以及電影總數;第二步計算矩陣C,C[i][j]表示同時喜歡電影i和j的用戶數,並考慮對活躍用戶的懲罰;第三步根據式\ref{similarity}計算電影間的相似性;第四步進行歸一化處理。
針對目標用戶U,找到K部相似的電影,並推薦其N部電影,如果用戶已經看過該電影則不推薦。
產生推薦並通過准確率、召回率和覆蓋率進行評估。
結果如下所示,由於數據量較大,相似度矩陣為 維,計算速度較慢,耐心等待即可。
[1]. https://blog.csdn.net/m0_37917271/article/details/82656158
[2]. 推薦系統與深度學習. 黃昕等. 清華大學出版社. 2019.
[3]. 推薦系統演算法實踐. 黃美靈. 電子工業出版社. 2019.
[4]. 推薦系統演算法. 項亮. 人民郵電出版社. 2012.
[5]. 美團機器學習實踐. 美團演算法團隊. 人民郵電出版社. 2018.
2. 推薦系統論文閱讀(二十三)-神經圖協同過濾NGCF
論文:
論文題目:《Neural Graph Collaborative Filtering》
論文地址: https://arxiv.org/pdf/1905.08108.pdf
本論文是關於圖結構的協同過濾演算法,在原始的矩陣分解和基於深度學習的方法中,通常是通過映射描述用戶(或物品)的現有特徵(例如ID和屬性)來獲得用戶(或物品)的嵌入。從而利用user和item的embedding進行協同召回。但是作者認為這種方法的固有缺點是:在user與item的interaction數據中潛伏的 協作信號(collaborative signal) 未在嵌入過程中進行編碼。這樣,所得的嵌入可能不足以捕獲協同過濾效果。
讓我們一起來看一下本論文是怎麼利用數據中潛伏的協作信號的吧。
推薦演算法被廣泛的運用在各個領域中,在電商領域,社交媒體,廣告等領域都發揮著至關重要的作用。推薦系統的核心內容就是根據用戶以前的購買和點擊行為來評估用戶對一個物品的喜愛程度,從而針對每個用戶進行個性化推薦。協同過濾演算法認為歷史行為相似的用戶之間的興趣是相同的,所以給用戶推薦的是同類型用戶的愛好,也就是UserCF,而ItemCF給用戶推薦的是跟歷史行為相近的物品。
傳統的協同過濾方法要麼是基於矩陣分解,要麼是基於深度學習的,這兩種方法都忽略了一個非常關鍵的信息---user和item交互的協作信號,該信號隱藏在user和item的交互過程中。原始的協同過濾方法忽略了這種信息,所以在進行user 和 item representation時就不足以較好的進行embedding。
本論文通過將用戶項交互(更具體地說是二分圖結構)集成到embedding過程中,開發了一個新的推薦框架神經圖協同過濾(NGCF),該框架通過在其上傳播embedding來利用user-item圖結構。這種方法在用戶項目圖中進行高階連通性的表達建模,從而以顯式方式將協作信號有效地注入到embedding過程中。
在介紹模型之前先來講解一下什麼是useritem interaction以及什麼是高階的useritem interaction。
我們先看左邊的圖,這個圖就是useritem interaction,u1是我們待推薦的用戶,用雙圓圈表示,他交互過的物品有i1,i2,i3。在看右邊這個樹形結構的圖,這個圖是u1的高階interaction圖,注意只有l > 1的才是u1的高階連接。觀察到,這么一條路徑,u1 ← i2 ← u2,指示u1和u2之間的行為相似性,因為兩個用戶都已與i2進行了交互。而另一條更長的路徑,u1←i2←u2←i4暗示u1可能會點擊i4,因為他的相似用戶u2之前已經購買過i4。另一方面,用戶u1在l = 3這一層會更傾向於i4而不是i5,理由是i4到u1有兩條路徑而i5隻有一條。
當然這種樹結構是不可能通過構建真正的樹節點來表示的,因為樹模型比較復雜,而且結構很大,沒法對每個用戶構建一個樹,這樣工作量太大了。那麼怎麼設計模型結構可以達到跟這個high-order connectivity的效果呢,這個就要運用到神經網路了。通過設計一個embedding propagation layer來表示這種embedding 在每個層之間的傳遞。
還是拿上面那張圖舉例子,堆疊兩層可捕獲u1←i2←u2的行為相似性,堆疊三層可捕獲u1←i2←u2←i4的潛在推薦以及信息流的強度(由層之間的可訓練權重來評估),並確定i4和i5的推薦優先順序。
這個跟傳統的embedding是一樣的,都是對原始的userID和itemID做embedding,跟傳統embedding不同的地方是,在我們的NGCF框架中,我們通過在用戶-項目交互圖上傳播embedding來優化embedding。 由於embedding優化步驟將協作信號顯式注入到embedding中,因此可以為推薦提供更有效的embedding。
這一層是本文的核心內容,下面我們來進行詳細的解讀。
從直觀上來看,用戶交互過的item會給用戶的偏好帶來最直接的依據。類似地,交互過某個item的用戶可以視為該item的特徵,並可以用來衡量兩個item的協同相似性。 我們以此為基礎在連接的用戶和項目之間執行embedding propogation,並通過兩個主要操作來制定流程:消息構建和消息聚合。
Message Construction(消息構建)
對於連接的user-item對(u,i),我們定義從i到u的消息為:
其中ei是i的embedding,eu是u的embedding,pui是用於控制每次傳播的衰減因子,函數f是消息構建函數,f的定義為:
其中W1和W2用來提取有用的embedding信息,可以看到W2控制的i和u直接的交互性,這使得消息取決於ei和eu之間的親和力,比如,傳遞更多來自相似項的消息。
另一個重要的地方是Nu和Ni,pui = 1/ 。Nu和Ni表示用戶u和item i的第一跳鄰居。 從表示學習的角度來看,pui反映了歷史item對用戶偏好的貢獻程度。 從消息傳遞的角度來看,考慮到正在傳播的消息應隨路徑長度衰減,因此pui可以解釋為折扣因子。
Message Aggregation
聚合方法如下 :
其中 表示在第一嵌入傳播層之後獲得的用戶u的表示。激活函數採用的是leakyrelu,這個函數適合對pos和neg信號進行編碼。
另一個重要的信息是 ,它的定義如下:
這個信息的主要作用是保留原始的特徵信息。
至此,我們得到了 ,同樣的方法,我們也能獲得 ,這個都是first order connectivoty的信息。
根據前面的計算方式,我們如果將多個Embedding Propagation Layers進行堆疊,我們就可以得到high order connectivity信息了:
計算方式如下:
當我看到這里的時候,我的腦子里產生了一個大大的疑惑,我們在計算第l層的eu和ei時都需要第l-1層的信息,那麼我們怎麼知道ei和eu在第l層是否存在呢?也就是說出現u側的總層數l大於i側總層數的時候,我們如何根據第l-1層的ei來計算第l層的e呢?經過思考,我感覺應該是這樣的,訓練樣本應該是一條path,也就是這個例子是u1 ← i2 ← u2 ← i4這條path,所以可以保證u1跟i4的層數l是一樣的,所以不存在上面那個層數不匹配的問題。
ps:看到後面的實驗結果才知道L是固定的所以每一層都不會缺失。
還有一個就是,不同層之間的W是不一樣的,每一層都有著自己的參數,這個看公式就知道,理由就是我們在提取不同層信息的時候需要不同的W進行信息提取。
另一個疑惑是pui到底是不是每一個l層都一樣?這里看公式好像就是指的是第一跳的Nu和Ni進行就計算的結果。
這部分內容是為了在進行batch訓練的時候進行矩陣運算所推導的數學過程,其實跟之前我們講的那個過程在數學上的計算是完全一樣的,你想像一下,如果不用矩陣進行運算,在訓練過程中要如何進行這么復雜的交互運算。
當進行了l層的embedding propagation後,我們就擁有了l個eu和l個ei,我們將他們進行concate操作:
這樣,我們不僅可以通過嵌入傳播層豐富初始嵌入,還可以通過調整L來控制傳播范圍。
最後,我們進行內積計算,以評估用戶對目標商品的偏好:
採用的是pair-wise方式中的bpr loss:
3. 協同過濾之冷啟動
協同過濾是利用集體智慧的一個典型方法,首先想一個簡單的場景,如果你現在想看個電影,但你不知道具體看哪部,你會怎麼做?大部分的人會問問周圍的朋友,看看最近有什麼好看的電影推薦,而我們一般更傾向於從口味比較類似的朋友那裡得到推薦。這就是協同過濾的核心思想
下圖以用戶對電影的推薦為例,表1 是用戶對電影評分數據的一個簡單矩陣的例子,其中每一行代表一個用戶,每一列代表一部電影,矩陣中的元素表示用戶對所看電影的評分,評分值一般是從1到5 的整數,評分值越大表明用戶喜歡該電影。
對表1 中的數據利用協同過濾推薦演算法,系統查找到用戶Alice、Bob 和Chris 具有相似的興趣愛好,因為他們對後3 部電影的評分相同,那麼系統會推薦電影Snow white 給Chris,因為與其興趣偏好相似的用戶Alice 和Bob 對該電影的評分值較高。在表2 中,對於新用戶Amy,沒有評分信息,根據協同過濾推薦演算法,無法根據評分信息查找與其興趣偏好相似的用戶,所以系統無法為該用戶推薦電影,同樣對於新電影Shrek,因缺乏評分信息系統無法感知它的存在,所以也無法將其推薦出去。這就是 協同過濾推薦演算法所存在的新用戶和新項目問題,即冷啟動問題
「冷啟動」包含兩個層面:
1. 用戶的冷啟動 ,新的用戶因為沒有在產品上留下行為數據,自然無法得知他/她的喜好,從而做出靠譜的推薦。這時一般需要藉助用戶的背景資料,或者引導性地讓用戶選擇,或者暫時用熱門啟動替代個性化推薦來解決,在線推薦系統可以做到在用戶產生行為數據後立馬更新推薦列表。
2. 物品的冷啟動 ,主要適用於ItemBased的場景,即對一個物品推類似的物品,因為新物品還沒有用戶行為數據,自然也就沒有辦法通過協同過濾的方式進行推薦,這時一般會利用物品屬性的相關程度來解決。
現實生活中對於電子商務推薦系統,每天都有大量的新用戶訪問系統,每天都有相當數量的新項目添加到系統中,一方面,如果推薦系統能夠為新用戶推薦比較喜歡的商品,推薦系統會贏得更多用戶的信任,對商家來說增加了客源,提高用戶對系統的忠誠度,對用戶來說,可以隨時得到高質量的個性化服務; 另一方面,如果新商品能夠及時地被推薦出去,可以提高產品的銷售量,為商家贏得更大的經濟利益,促進電子商務的健康發展。
目前針對冷啟動問題提出了一些解決方法,如隨機推薦法、平均值法、眾數法、信息熵法、相似度度量改進法和結合內容信息的方法等。
此文選摘至 http://ke..com/item/%E5%86%B7%E5%90%AF%E5%8A%A8 , http://blog.sina.com.cn/s/blog_7f9bc9990102w81l.html
4. 協同過濾與分類
[TOC]
本文是《寫給程序員的數據挖掘實踐指南》的一周性筆記總結。主要涵蓋了以下內容:
所謂推薦系統就是系統根據你的行為操作為你推薦你可能想要的其他物品。這在電商平台、音樂平台、資訊推送平台等多有見到。而協同過濾簡單來說是利用某興趣相投、擁有共同經驗之群體的喜好來推薦用戶感興趣的信息,個人通過合作的機制給予信息相當程度的回應(如評分)並記錄下來以達到過濾的目的進而幫助別人篩選信息。其推薦基礎是用戶評分。這里可以分為兩種用戶評分,即顯式評分與隱式評分。顯式評分即日常見到的為物品打分,如對喜好音樂評級等;隱式評分是通過對用戶行為的持續性觀察,進而發現用戶偏好的一種方法,如新聞網頁中的推送你經常閱讀過的相關內容等。兩種評分方法都有自己的問題。
總體來說,協同過濾其運作機制也可以分為兩種:
基於用戶的推薦是指通過用戶的行為偏好,劃分相似用戶。在相似用戶群體之間互相推送一方喜歡而另一方未有過的物品。核心在於相似用戶群體的劃分。這種推薦方法有自己的局限:
基於用戶的過濾其核心是用戶群體的劃分,其實也就是分類。
這里的距離函數包括三種:曼哈頓距離和歐氏距離。這里以二維舉例,更多維情況下類推即可。
兩距離函數可以一般化為:
其中,當r=1時,函數為曼哈頓距離;當r=2時,函數為歐氏距離。
演算法實現:
在算出距離函數後,通過比對目標用戶與所有用戶群體的偏好,找到最近鄰的用戶並給予推薦。
基於用戶距離的推薦有一個明顯的問題,就是用戶評分體系的差異。比如評分極端的用戶給喜歡的評最高分,給不喜歡的評最低分;而有些用戶傾向於不出現極端評分。即所謂「分數貶值」( Grade Inflation )問題。這種問題的存在可能讓基於距離的評分產生偏差。皮爾遜相關系數可以緩解這種問題。
原皮爾遜相關系數公式在實際運用的時候會出現多次迭代的問題,影響計算效率,這里給出了近似公式:
皮爾遜相關系數的用戶判斷依據不是單純的用戶距離,而是用戶的評分一致性:取值在[-1, 1]之間,越接近1則表示兩用戶的評分一致性越好;反之則反。
python實現:
基於用戶推薦的過程中,另一個存在的問題就是由於大部分人的喜愛物品集合的交集過少,存在大量計算值為0的feature的情況。即所謂 稀疏性 問題。一個較容易理解的例子是對書本內容的挖掘。餘弦相似度會忽略這種0-0匹配。
餘弦相似度:
python實現:
如此多的評估系數,如何進行抉擇呢?根據數據特徵:
另外值得考慮的一點是,目前為止的推薦都是基於單用戶的。即對一個用戶的推薦系統只是基於另一個用戶。這會存在一些問題。比如雖然雖然兩者相似度很高,但是另外一個人有一些怪癖,怪癖的推薦就是不合理的;又比如,在相似度極高的情況下,你不能確定統一賬戶下的操作是同一個人做出的或者說操作行為是為了用戶自身。比如用戶考慮購買某件商品作為禮物送給別人,這就是基於別人喜好的購買行為,這種推薦也是不合適的。
對這種問題的解決可以使用群體劃分的方法。原理與單用戶類似,但是用戶的匹配是k個。在這k位最優匹配的用戶之間,以相似度的大小為依據設定權重作為物品推薦的條件。此即協同過濾的k近鄰。
正如前面提到的基於用戶的推薦有復雜度、稀疏性的問題,而基於物品的過濾則可以緩解這些問題。所謂基於物品的過濾是指,我們事先找到最相似的物品,並結合用戶對物品的評級結果來生成推薦。前提是要對物品進行相似度匹配,找到一種演算法。
這里的調整是指為了減輕用戶評分體系的不一致情況(抵消分數貶值),從每個評級結果中減去該用戶所有物品的平均分的評級結果。
其中,U表示所有同時對i, j進行評級過的用戶的集合。 表示用戶u給物品i的評分減去用戶u對所有物品的評分的平均值。
在得到所有物品的餘弦相似度後,我們就可以通過該指數預測用戶對某件物品的偏好程度。方法就是所有相似物品的相似度乘以得分的總和。
其中p(u, i)指的是用戶u對物品i評分的預測值。N是用戶u的所有評級物品中每個和i得分相似的物品。這里的相似指的是矩陣中存在N和i的一個相似度得分。 是i和N之間的相似度得分。 是u給N的評級結果。公式較好運行的條件是 取值在(-1, 1)之間,這里就要使用歸一化概念。
另一種常用的基於物品過濾的演算法就是 slope one 演算法。它的大概原理是預測用戶u對產品j的評分時,預先計算包含所有物品的兩物品偏差表;根據u的已評價的所有物品評分與該物品和產品j的偏差( )之和並乘以所有對此兩類物品有過評分的用戶個數,一一加總,除以所有同時對產品i與u評價過的所有物品有過評分的用戶的人數,得到得分。公式如下:
其中, ; 是利用加權s1演算法給出的用戶u對物品j的預測值。 指的是對所有除j之外u打過分的物品。
python實現:
在前面兩節中,基於物品和基於用戶的過濾其前提都是用戶需要對已有的item進行評分。而實際上,如果一個新的item出現,由於缺乏別人的偏好,他永遠不會被推薦。這就是推薦系統中所謂的—— 冷啟動 問題。基於用戶評價的系統就會出現這種問題。
冷啟動 問題的解決方案之一就是 基於物品屬性的過濾 來進行推薦:對物品自身的屬性進行歸納總結,並以此進行物品推薦。基於物品屬性的過濾存在一個問題同樣是量綱的不統一。如果量綱不統一極端值將會對推薦系統造成大麻煩。解決方法也很簡單:歸一化。此章使用的是z-評分。
使用z得分也存在問題,就是極易受到離群值的影響。這里可以使用 改進的標准分數 來緩解這個問題:
什麼時候可以進行歸一化呢?
這里用曼哈頓距離舉例基於物品屬性的過濾:
在上一章最後一節對於用戶是否喜歡某件item的判別中,實際上包含了分類器的思想:分類器就是利用對象屬性判定對象屬於哪個組或類別的程序。這里簡單用另一個小項目來說明。
簡單來說就是根據運動員的某些指標來判斷這位運動員屬於什麼類別的運動員。
准確率有0.8。
5. 為何說大數據精準廣告並不靠譜
為何說大數據精準廣告並不靠譜
一、大數據精準廣告內涵
大數據目前已經成為整個IT界(包含Internet Technology 以及Information Technology)最熱的詞彙之一,似乎任何一個話題,只要提到大數據,瞬間變得高大上。一夜之間,大數據已經代替主觀的理性思考,成為智慧洞察的代名詞。
但是當我們走過對大數據的頂禮膜拜階段,揭開大數據實際應用的面紗,反而逐漸對充斥著話語世界的大數據進行反思。因為大數據在經濟發展中的巨大意義並不代表其能取代一切對於社會問題的理性思考,科學發展的邏輯不能被湮沒在海量數據中。著名經濟學家路德維希·馮·米塞斯曾提醒過:「就今日言,有很多人忙碌於資料之無益累積,以致對問題之說明與解決,喪失了其對特殊的經濟意義的了解。
以大數據的廣告應用為例,精準廣告投放應該是大數據最早的也是最容易產生直接收益的應用,如今少有廣告公司沒有宣稱自己是大數據科技公司。大數據精準廣告的核心內涵是什麼?一言以蔽之,那就是程序化定向投放。其中定向是核心,程序化是手段。
以微信朋友圈為例,不定向區域,年初的公開價格CPM(每千次曝光成本,朋友圈廣告價格遠超一般媒體)40元,定向核心城市140元,定向重點城市90元,如果疊加定向性別,附加10%,再疊加H5外鏈(流量引導效果更好),再附加20%。就像進口化妝品一樣,先按一定比例徵收關稅,後按含稅價格再徵收增值稅,再按含稅價格徵收消費稅。
對於微信來說,客戶地域、性別雖然也需要數據分析解讀,但確認相對比較容易。對於其它數據公司來說,地域依然可以通過IP或手機終端GPS獲取,但性別更可能就是一個數據分析出的可能屬性。當然大數據並不僅僅分析如此簡單的標簽,對於媒體聯盟而言,媒體選擇項目眾多,還會分析客戶媒體偏好標簽,還有時間段、人群屬性、設備類型、偏好類型等多種定向組合方式。
好了,上面對於精準廣告有了一個粗淺的介紹。那麼大數據精準廣告能帶來什麼樣的價值?通常如下的故事是大數據廣告公司經常提及的。
假如一個網站的廣告位,每小時有1萬人來瀏覽,則一小時曝光量為1萬,之前的CPM為5元,那麼一個手機廣告主投放一小時廣告,成本50元。這是傳統廣告投放的結果。現在有個大數據公司,來幫助該廣告媒體更好的運營。該公司宣稱它能夠精準識別瀏覽客戶的屬性,告訴手機廣告主,雖然1萬人瀏覽該廣告位,但真正適合投放手機的只有6千人次,剩下4千人次的曝光為無效曝光,因為剩下的人群只對服裝感興趣。
大數據公司建議廣告主按照程序化投放,過濾掉不適合投放手機的4千人,僅對適合投放手機的6千人付費,假如單價不變,那麼在保證相同效果的前提下,成本降低至30元。剩下的4千人大數據公司將其銷售給服裝廣告主,成本為20元。由此,在相同的效果情況下,大數據廣告大幅降低廣告主的成本。當然事實上,由於RTB(實時競價)機制的存在,當價格(效果相同)低到一定程度,不同手機廣告主的相互競價,使得真實價格一般高於30元,但肯定介於30元到原有預期成本50元之間,由此形成多方共同獲益的理想局面。
這樣的案例看上去Perfect,無懈可擊。因為它解決了傳統廣告的低效問題,比如看起來有用,但又說不清楚到底有用在哪裡,這個正是各公司財務總監所深惡痛絕的。是的,通過大數據廣告,讓一切花在廣告上的錢更有依據,可以在線評估一條廣告到底造成多少的印象(Impressions),甚至多少點擊,多少因此而下載使用,多少因此產生交易。
有問題嗎?沒問題。有問題嗎?你什麼意思,難道你要懷疑真理?
二、大數據精準廣告沒有看上去那麼美好
本著證偽的原則,真理只有被證明為謬誤的時候(理解其應用的局限及條件),才算真理。因此我們必須先回答一個問題,廣告是用來做什麼的?
按照以前的共識,廣告被視為品牌用來向那些無法面對面溝通的消費者去傳達品牌的特性。因此廣告雖然對銷售有促進作用,但通常時候,廣告的內容並不直接說服消費者去購買,就如中國移動曾經的獲獎廣告「溝通從心開始」一樣。2010年出版的《品牌如何增長》(How Brands Grow)一書(說明,筆者未讀過,希望將來能讀到),作者南澳大利亞大學教授拜倫在書中指出,廣告要達到最好的效果,往往不需要去說服或灌輸,只要讓人在購買的時候回想起品牌的名字就可以了。市場研究機構Milward Brown創始人高登(Gordon Brown)就指出,廣告的功能就是讓一個擺在貨架上的品牌變得「有趣」。
好吧,再回到大數據精準廣告案例,其中一個最為關鍵的問題在於,大數據如何分析出這6千個瀏覽用戶適合投放手機廣告?對於這個問題,廣告公司早有準備,給出如下的種種答案。
第一,從歷史記錄中尋找曾經使用過同類產品的客戶進行匹配。通常使用的演算法叫「協同過濾」,即由某些經驗的相關性,找到潛在的適合用戶。比如你玩過某款游戲,因此可認為你對該類型的其它游戲也有相同的需求。筆者並不否認該演算法對某些領域確實有作用,比如游戲付費用戶基本就是之前重度游戲使用用戶。
但是拋開這些特殊領域,該演算法內涵思想「品牌依靠忠誠的消費者發展壯大」與拜倫的理論完全矛盾。拜倫通過對銷售數據進行統計學分析,他指出在所有成功的的品牌當中,大量的銷售來自「輕顧客」(Light buyer):也就是購買產品相對不那麼頻繁的顧客。可口可樂的生意並非依靠每天都喝可樂的人,而是數百萬每年喝一次或兩次的顧客。這種消費者模式在各個品牌、商品品類國家和時期都適用。無論是牙刷還是電腦,法國汽車或是澳大利亞銀行,品牌依靠的是大規模人口——換句話說,大眾——那些偶爾購買他們的人。
這個理論意義十分深遠。這意味著你永遠無法通過精準營銷現有顧客來增加品牌的市場份額。而對現有顧客的精準營銷,正是數字媒體所擅長的。
本著批判的精神來看待新出現未經檢驗的思想,筆者希望引用一下廣東移動最近公布的用戶換機特徵數據。廣東移動對旗下用戶的終端遷移分析表明,使用蘋果的用戶升級終端,繼續使用蘋果手機的佔比64%,忠誠度最高。但除蘋果以外,其餘忠誠度表現最好的華為、小米手機,更換4G後持續使用同品牌的佔比不到30%。
這說明,你向蘋果4或5用戶推廣蘋果6是可行的,果粉效應推翻拜倫的理論,證實在部分領域依靠忠誠的消費者發展壯大是可行的。但除此以外,你向任何一個當前品牌的用戶推廣同品牌的手機終端都是不合時宜的。
因此,希望通過歷史的電商數據分析推斷用戶下一步可能需要是無效的。就如向曾經購買過服裝的用戶推廣服裝,或許不如推廣一卷紙或一桶油更為有效。
相反,成功的品牌需要找到一種方式來到達目標市場之外的群體。品牌的廣告一定要用某種方式獲得這部分人的興趣——只有這樣,當他們在准備購買的時候,該品牌才能自動出現在消費者的腦海中。
第二,如果「協同過濾」存在局限,廣告公司會告訴你還有第二種演算法,並不基於客戶的歷史行為記錄,而是客戶本身特徵相似性,來找到與種子客戶最為相似的客戶群體。簡稱「Lookalike」。先需要廣告主提供本則廣告起到作用的典型用戶,以手機為例,受廣告影響感興趣點擊瀏覽或預購某手機的用戶,大約幾百或幾千個。大數據公司通過Lookalike演算法(專業的術語更可能是稀疏矩陣),尋找與這幾百/千個用戶高度相似的其它數十萬/百萬客戶群進行投放。
這類演算法真正考驗大數據平台的計算能力,因為並不是經驗性的協同過濾,而是利用數十數百甚至上千個變數進行回歸計算。最後按照相似性的概率打分,按照由高到低選擇合適的用戶群。
該模型的內涵其實很簡單,就是廣告要傳達給應該傳達的客戶。比如奶粉廣告目標用戶就是養育0-3歲孩子的父母。如果知道要到達用戶的具體身份,一切問題迎刃而解。但是對於網站或APP應用來說,並不清楚用戶身份,唯一清楚的是客戶的歷史行為數據。而且由於數據本身的分割,有的專注於運營商,有的專注於APP聯盟採集,有的專注於電商,有的專注於銀行,要從分割的數據中推斷出客戶的身份信息,Lookalike就是不可避免的手段。
唯一的問題是,如果由幾百個種子用戶推斷出新的幾百個目標用戶,准確性可能高達9成,但如果如某廣告公司宣稱,對康師傅辣味面進行移動DSP投放時,根據歷史投放數據分析挖掘,形成樣本庫,再通過Lookalike技術進行人群放大,找到與目標受眾相似度最高的潛在客戶,擴展人群1367萬,實際投放受眾ID2089萬。廣告效果投放是最大化了,那麼效果呢?在此,請允許我杜撰一個數字,很可能點擊率由0.2%上升至0.3%,精準度提升50%。有意義嗎?或許有,但絕對沒有想像的那麼明顯。
第三,如果你們持續懷疑我們演算法的有效性,那麼我們可以就效果來談合作,你們可以按照點擊量(CPC)或者激活量(CPA)付費,如果達不到既定效果,我們會補量。這是大數據廣告的終極武器。
終極武器一出,意味著廣告的投放徹底淪陷為做點擊、做激活的渠道,廣告的「溝通消費者」初衷早被拋棄得一干二凈。
通常一般消費決策遵行S(Solution)、I(Information)、V(Value)、A(Access)規則,意思是當用戶產生一個需求,內心先就滿足這個需求形成一個解決方案。比如說3G手機不好用,速度很慢覆蓋不好,需要換一個4G終端就成為一個Solution。那麼4G終端有哪些,重點考慮那些終端?消費者還是搜集信息,並非從網上搜索,而是根據以往的經歷、品牌效應、周邊朋友口碑自動回想那些品牌、哪些款式。傳統廣告的最重要功效應該就是這個階段,當用戶需要的時候,自動進入到用戶視線。然後從多維度比較選擇,確定首選購買品牌。最後就是去哪兒買,搜索哪兒有促銷活動,哪裡優惠力度最大。
根據SIVA模型,真正的以效果為導向的廣告本質解決的是Access問題,最後的臨門一腳。在這方面,搜索廣告是真正的效果導向廣告,比如淘寶的每一款商品後面都有超過1萬家商戶提供,到底用戶去哪裡購買,得付錢打廣告,這就是效果廣告。曾有報告對比過,搜索廣告點擊率高達40%以上。想一想網路、阿里靠什麼為生,臨門一腳的廣告價格自然高到沒邊,據說一些醫院購買網路性病、人流之類的搜索廣告,單次流量價格高達數十或數百元。
搜索廣告只有少數壟斷接入公司才有的生意,大部分廣告仍為展示類廣告。如果展示類廣告也朝效果類靠攏,從商業規律上屬於本末倒置。
最後結果是,一方面,廣告的內容充滿人性的貪婪(優惠/便宜)與色慾(大胸美女),被改造得不倫不類,上過一次當後,在溝通消費者方面反而起到負面作用。另一方面,廣告公司淪落為做流量、做點擊的公司,與北京望京、中關村著名的刷流量一條街沒有本質的差異,最後誰真正點擊了這些有效流量?曾有大數據公司分析過某款高端理財軟體的階段性用戶群,與刷機、貪圖小便宜的極低端用戶高度相似。
三、多用靠譜的身份識別可能更有利於提升廣告效果
寫了這么多,大數據精準廣告一無是處嗎?不,懷疑真理是為了更好的應用真理。大數據廣告的核心「程序化」與「定向投放」沒有錯,這代表移動互聯網發展的趨勢,也與滿足特定市場、特定用戶群的商品或服務廣告傳播需求完全匹配。問題在於目前的大數據實際能力與宣稱的雄心還有巨大的差距。也就是說沒有看上去的那麼好。
所以,我們更應該回歸廣告的本來目的——更好的溝通消費者,來看待精準投放,而不是迷信大數據精準投放這樣的噱頭。那麼什麼最重要?顯然不是不靠譜的協同過濾規則,也不是根本不知道原因的Lookalike,既然最重要的就是到達目標消費者,那麼靠譜的身份識別應該就是精準廣告的核心。
什麼是靠譜的身份識別?對微信而言,判斷重點活動城市是靠譜的,分析性別也相對靠譜,但如果微信告訴你說能夠通過社交判斷該用戶是中產白領還是鄉村農民,那一定是不靠譜的。因為朋友圈裡宣稱正在法國酒庄旅遊的優雅女人或許正在出門買油條豆漿。
有時候用戶使用的媒體本身就透露客戶的身份特徵。比如經常使用理財軟體的在支付能力上較為靠譜,而使用孕寶APP的80%以上應該就是准媽媽,經常使用蜜芽的一定是寶寶出生不久的媽媽。有大數據公司給出過案例,對媒體本身進行定向和綜合分析定向的效果相差無幾,這就說明媒體定向是有效的,但是其它需求定向都等同於隨機選擇。
由於大數據本身就是不關注因果,只關注相關性,如果經過大數據洞察證實的協同規則,也可以算作靠譜的規則。比如游戲付費用戶群基本上可以確定為一兩千萬ID的重度使用用戶。
而要准確識別客戶身份,多數據源的匯集與綜合不可避免,圍繞客戶身份的各種洞察、相關性分析也是能力提升的必修功課,這或許更應該是大數據廣告公司應持續修煉的核心能力。
6. 基於物品的協同過濾
參考書本: 項亮, 推薦系統實踐. 2012
本文系閱讀筆記
1.網站用戶基數增多,矩陣難以構造,時空復雜度增加。
2.難以對推薦結果做出解釋。
該演算法會因為你購買過《數據挖掘導論》而給你推薦《機器學習》。不過, ItemCF 演算法並不利用物品的內容屬性計算物品之間的相似度,它主要通過分析用戶的行為記錄計算物品之間的相似度。 該演算法認為,物品 A 和物品 B 具有很大的相似度是因為喜歡物品 A 的用戶大都也喜歡物品B 。
基於物品的協同過濾演算法可以利用用戶的歷史行為給推薦結果提供推薦解釋,比如給用戶推薦《天龍八部》的解釋可以是因為用戶之前喜歡《射鵰英雄傳》。
基於物品的協同過濾演算法主要分為兩步。
(1) 計算物品之間的相似度。
(2) 根據物品的相似度和用戶的歷史行為給用戶生成推薦列表。
具體公式(ij直接的相似度):
N(i)表示喜歡物品i的用戶數。
但是如果物品j很熱門,幾乎每個人都喜歡,則關系度會接近於1。(如可能很多人都會買《新華字典》或《哈利波特》)
為了避免推薦熱門物品,則有公式:
這個公式懲罰了物品j的權重,減輕了熱門物品會和很多物品相似的可能性。
盡管上面的公式分母已經考慮到了 j 的流行度,但在實際應用中,熱門的 j 仍然會獲得比較大的相似度。因此可在分母上進行懲罰。
但不能完全解決,兩個不同領域的最熱門物品之間往往具有比較高的相似度。這個時候,僅僅靠用戶行為數據是不能解決這個問題的,因為用戶的行為表示這種物品之間應該相似度很高。此時,我們只能依靠引入物品的內容數據解決這個問題,比如對不同領域的物品降低權重等。這些就不是協同過濾討論的范疇了。
可以首先建立用戶-物品倒排表,即每一個用戶建立一個包含他喜歡的物品的列表。
比如電影,一般來說,同系列的電影、同主角的電影、同風格的電影、同國家和地區的電影會有比較大的相似度。
在得到物品之間相似度後,itemCF運用以下公式計算用戶u對一個物品j的興趣:
S(j,K) 與物品j最相似的K個物品的集合
為物品相似度。 即用戶u對物品i的興趣程度,這里可看做有過行為為1。
對既屬於用戶喜歡的物品,又在與j物品相似的物品集合內的每一個物品,得到權重相加和(即相似度乘感興趣程度)。
精度(准確率和召回率) 可以看到 ItemCF 推薦結果的精度也是不和 K 成正相關或者負相關的,因此選擇合適的 K 對獲得最高精度是非常重要的。
流行度 和 UserCF 不同,參數 K 對 ItemCF 推薦結果流行度的影響也不是完全正相關的。
隨著 K 的增加(流行物品相對增多),結果流行度會逐漸提高,但當 K 增加到一定程度,流行度就不會再有明顯變化。
覆蓋率 K 增加會降低系統的覆蓋率(流行率增加)。
A.
假設有這么一個用戶,他是開書店的,並且買了當當網上 80% 的書准備用來自己賣。那麼,他的購物車里包含當當網 80% 的書。假設當當網有 100 萬本書,也就是說他買了 80 萬本。從前面對 ItemCF 的討論可以看到,這意味著因為存在這么一個用戶,有 80 萬本書兩兩之間就產生了相似度,也就是說,內存里即將誕生一個 80 萬乘 80 萬的稠密矩陣。
John S. Breese 在論文中提出了一個稱為 IUF ( Inverse User Frequence ),即用戶活躍度對數的倒數的參數,他也認為活躍用戶對物品相似度的貢獻應該小於不活躍的用戶,他提出應該增加 IUF參數來修正物品相似度的計算公式:ItemCF-IUF演算法
同ItemCF相比,降低了流行度,提高了推薦結果的覆蓋率。
B.
物品相似度歸一化。
Karypis 在研究中發現如果將 ItemCF 的相似度矩陣按最大值歸一化,可以提高推薦的准確率。
其研究表明,如果已經得到了物品相似度矩陣 w ,那麼可以用如下公式得到歸一化之後的相似度矩陣 w' :
相似度的歸一化可以提高推薦的多樣性。[解釋看原書]
7. 協同過濾(2): KDD2020- HyperGraph CF 基於超圖
協同過濾推薦系統是當今眾多推薦系統中最流行和最重要的推薦方法之一。
盡管已經被廣泛採用,但是現有的基於 cf 的方法,從矩陣分解到新興的基於圖的方法, 在訓練數據非常有限的情況下表現不佳 (數據稀疏問題)。
本文首先指出了造成這種不足的根本原因,並指出現有基於 CF 的方法固有的兩個缺點,即: 1)用戶和物品建模不靈活; 2)高階相關性建模不足。
在這種情況下,文中提出了一個雙通道超圖協同過濾(DHCF)框架來解決上述問題。
首先,引入 雙通道學習策略 (Dual-Channel),全面利用分治策略,學慣用戶和物品的表示,使這兩種類型的數據可以優雅地相互連接,同時保持其特定屬性。
其次, 利用超圖結構對用戶和具有顯式混合高階相關性的物品進行建模 。提出了跳躍超圖卷積(JHConv)方法,實現高階關系嵌入的顯式和有效傳播。
推薦系統的核心是一系列的推薦演算法,這些演算法能夠**根據用戶的個人特徵有效地從爆炸式信息篩選出信息。協同過濾是目前最受歡迎和廣泛採用的方法之一。
CF 持有一個基本的假設,當向用戶提供推薦時: 那些行為相似的人(例如,經常訪問同一個網站)很可能在物品(例如,音樂、視頻、網站)上分享相似的偏好。
為了實現這一點,一個典型的基於 CFbased 方法執行一個兩步策略: 它首先利用歷史交互區分相似的用戶和項目; 然後基於上面收集的信息,向特定用戶生成推薦。
現有的 CF 方法可以分為三類。
雖然 CF 方法已經研究了多年,但仍然存在局限性,特別是在訓練的先驗知識非常有限的情況下。為了理解這些缺陷,深入挖掘現有 CF 方法的內在機製得到以下局限性:
基於這些生成的連接組,即超邊,可以分別為用戶和物品構造兩個超圖,即兩個通道的表示。本文提出了一種新的跳躍超圖卷積演算法(JHConv) ,該演算法通過聚合鄰域的嵌入並引入先驗信息,有效地在超圖上進行信息傳播。(與傳統的基於圖的方法對比,用戶超圖和項目超圖,可以更靈活地進行復雜的數據關聯建模,並與不同類型的數據結合。)
超圖定義為 ,V表示圖節點, 表示超邊集合,超圖鄰接矩陣 描述節點與超邊的關系
在高層次上,DHCF 首先通過一個雙通道超圖框架學慣用戶和物品的兩組嵌入,在此框架上,DHCF 通過計算用戶和物品嵌入查找表的內積,進一步計算出用戶-項目偏好矩陣。基於這樣的偏好矩陣,DHCF 估計用戶對某個商品感興趣的可能性。
總體分為三步:
構建用戶和物品嵌入矩陣:
為了在預定義的混合高階關繫上聚合相鄰消息,執行以下高階消息傳遞:
為了提取有區別的信息,我們對用戶和物品定義為
綜上所述,上述兩個過程構成了一個集成的DHCF 層,允許對用戶和物品進行明確的建模和編碼,並通過強大的嵌入功能進一步更新和生成更精確的嵌入超圖結構。這種精細嵌入可以進一步應用於推薦系統中的各種下游任務。
與 傳統 HGNNConv 相比,JHConv 允許模型同時考慮其原始特徵和聚合相關表示,在另一方面,這樣的 resnet結構的跳躍連接使模型能夠避免由於集成了許多其他連接而導致的信息稀釋。
引入高階關聯來實現構建超邊,根據自定義的規則分別對用戶和物品進行高階關聯提取
定義1: 物品的 k 階可達鄰居。在用戶-物品交互圖,更具體地說是二部圖中,如果在 itemi 和 itemj 之間存在一個相鄰頂點序列(即一條路) ,且該路徑中的用戶數小於 k,itemi (itemj)是 itemi (itemi)的 k 階可達鄰居。
定義2: 物品的 k階可達用戶。在物品-用戶二部圖中,如果用戶 j 和物品 k 之間存在直接交互作用,則用戶 j 是 itemi 的 k 階可達鄰居,而物品 k 是 itemi 的 k 階可達鄰居。
對於 itemi,其 k 階可達用戶集稱為 。從數學上講,超圖可以定義在一個集簇上,其中每個集代表一個超邊。因此,這里可以通過物品的 k 階可達用戶集構建超邊。
然後在用戶 k 階可達規則的基礎上構造高階超邊組,該超邊組可表示為:
假設通過K階可達規則,構造a個超邊組,最後的超圖需要將這a個超邊組做融合,見上面的總體框架中的描述。
同理,按照相似的K階可達的規則,對物品進行分析,構成物品的超邊(N個用戶,M個物品)
在實驗中,每個用戶觀察到的交互中的10% 被隨機選擇用於訓練,其餘的數據用於測試。這樣的設置增加了 CF 任務的難度,因為模型只能獲取非常有限的觀察到的交互。此外,由於數據的高度稀疏性,它可以很好地評價模型從有限的隱式數據集中挖掘有用信息的能力。對於所有四個數據集,每個用戶至少有兩個用於訓練的交互。
這篇工作基於超圖結構,提出了一種新的CF框架,與基於圖神經網路的CF相比,超圖結構更符合實際情況;此外,雙通道的思路也值得借鑒,之前也分析的一篇雙通道BPR的論文。近年來,基於圖神經網路的推薦已經成為研究主流,而其中超圖相關的工作少之又少,最近看到的另一篇是SIGIR2020上的一篇Next Item Recommendation with Sequential Hypergraphs,在超圖神經網路上並沒多大的改進,重點仍然在於如何用這種結構去解決存在的問題。
如果覺得有用,歡迎點贊關注贊賞,若對推薦感興趣歡迎評論區/私信交流~~~
8. 協同過濾演算法
用戶行為數據在網站上最簡單的存在形式就是日誌,比如用戶在電子商務網站中的網頁瀏覽、購買、點擊、評分和評論等活動。 用戶行為在個性化推薦系統中一般分兩種——顯性反饋行為(explicit feedback)和隱性反饋 行為(implicit feedback)。顯性反饋行為包括用戶明確表示對物品喜好的行為。網站中收集顯性反饋的主要方式就是評分和喜歡/不喜歡。隱性反饋行為指的是那些不能明確反應用戶喜好 的行為。最具代表性的隱性反饋行為就是頁面瀏覽行為。 按照反饋的明確性分,用戶行為數據可以分為顯性反饋和隱性反饋,但按照反饋的方向分, 又可以分為正反饋和負反饋。正反饋指用戶的行為傾向於指用戶喜歡該物品,而負反饋指用戶的 行為傾向於指用戶不喜歡該物品。在顯性反饋中,很容易區分一個用戶行為是正反饋還是負反饋, 而在隱性反饋行為中,就相對比較難以確定。
在利用用戶行為數據設計推薦演算法之前,研究人員首先需要對用戶行為數據進行分析,了解 數據中蘊含的一般規律,這樣才能對演算法的設計起到指導作用。
(1) 用戶活躍度和物品流行度
(2) 用戶活躍度和物品流行度的關系
一般認為,新用戶傾向於瀏覽熱門的物品,因為他 們對網站還不熟悉,只能點擊首頁的熱門物品,而老用戶會逐漸開始瀏覽冷門的物品。如果用橫坐標表示用戶活躍度,縱坐標表示具有某個活躍度的所有用戶評過分的物品的平均流行度。圖中曲線呈明顯下 降的趨勢,這表明用戶越活躍,越傾向於瀏覽冷門的物品。
僅僅基於用戶行為數據設計的推薦演算法一般稱為協同過濾演算法。學術界對協同過濾演算法進行了深入研究,提出了很多方法,比如基於鄰域的方法(neighborhood-based)、隱語義模型 (latent factor model)、基於圖的隨機遊走演算法(random walk on graph)等。在這些方法中, 最著名的、在業界得到最廣泛應用的演算法是基於鄰域的方法,而基於鄰域的方法主要包含下面兩種演算法。
基於用戶的協同過濾演算法 :這種演算法給用戶推薦和他興趣相似的其他用戶喜歡的物品
基於物品的協同過濾演算法: 這種演算法給用戶推薦和他之前喜歡的物品相似的物品
基於鄰域的演算法是推薦系統中最基本的演算法,該演算法不僅在學術界得到了深入研究,而且在 業界得到了廣泛應用。基於鄰域的演算法分為兩大類,一類是基於用戶的協同過濾演算法,另一類是 基於物品的協同過濾演算法。現在我們所說的協同過濾,基本上就就是指基於用戶或者是基於物品的協同過濾演算法,因此,我們可以說基於鄰域的演算法即是我們常說的協同過濾演算法
(1) 基於用戶的協同過濾演算法(UserCF)
基於用戶的協同過濾演算法的基本思想是:在一個在線個性化推薦系統中,當一個用戶A需要個性化推薦 時,可以先找到和他有相似興趣的其他用戶,然後把那些用戶喜歡的、而用戶A沒有聽說過的物品推薦給A。
Ø 從上面的描述中可以看到,基於用戶的協同過濾演算法主要包括兩個步驟。 第一步:找到和目標用戶興趣相似的用戶集合。 第二步: 找到這個集合中的用戶喜歡的,且目標用戶沒有聽說過的物品推薦給目標用戶。
這里,步驟1的關鍵是計算兩個用戶的興趣相似度,協同過濾演算法主要利用行為的相似度計算興趣的相似度。給定用戶u和用戶v,令N(u)表示用戶u曾經有過正反饋的物品集合,令N(v) 為用戶v曾經有過正反饋的物品集合。那麼我們可以通過以下方法計算用戶的相似度:
基於餘弦相似度
(2) 基於物品的協同過濾演算法(itemCF)
與UserCF同理
(3) UserCF和itemCF的比 較
首先我們提出一個問題,為什麼新聞網站一般使用UserCF,而圖書、電商網站一般使用ItemCF呢? 首先回顧一下UserCF演算法和ItemCF演算法的推薦原理。UserCF給用戶推薦那些和他有共同興 趣愛好的用戶喜歡的物品,而ItemCF給用戶推薦那些和他之前喜歡的物品類似的物品。從這個算 法的原理可以看到,UserCF的推薦結果著重於反映和用戶興趣相似的小群體的熱點,而ItemCF 的推薦結果著重於維系用戶的歷史興趣。換句話說,UserCF的推薦更社會化,反映了用戶所在的小型興趣群體中物品的熱門程度,而ItemCF的推薦更加個性化,反映了用戶自己的興趣傳承。 在新聞網站中,用戶的興趣不是特別細化,絕大多數用戶都喜歡看熱門的新聞。個性化新聞推薦更加強調抓住 新聞熱點,熱門程度和時效性是個性化新聞推薦的重點,而個性化相對於這兩點略顯次要。因 此,UserCF可以給用戶推薦和他有相似愛好的一群其他用戶今天都在看的新聞,這樣在抓住熱 點和時效性的同時,保證了一定程度的個性化。同時,在新聞網站中,物品的更新速度遠遠快於新用戶的加入速度,而且 對於新用戶,完全可以給他推薦最熱門的新聞,因此UserCF顯然是利大於弊。
但是,在圖書、電子商務和電影網站,比如亞馬遜、豆瓣、Netflix中,ItemCF則能極大地發 揮優勢。首先,在這些網站中,用戶的興趣是比較固定和持久的。一個技術人員可能都是在購買 技術方面的書,而且他們對書的熱門程度並不是那麼敏感,事實上越是資深的技術人員,他們看 的書就越可能不熱門。此外,這些系統中的用戶大都不太需要流行度來輔助他們判斷一個物品的 好壞,而是可以通過自己熟悉領域的知識自己判斷物品的質量。因此,這些網站中個性化推薦的 任務是幫助用戶發現和他研究領域相關的物品。因此,ItemCF演算法成為了這些網站的首選演算法。 此外,這些網站的物品更新速度不會特別快,一天一次更新物品相似度矩陣對它們來說不會造成 太大的損失,是可以接受的。同時,從技術上考慮,UserCF需要維護一個用戶相似度的矩陣,而ItemCF需要維護一個物品 相似度矩陣。從存儲的角度說,如果用戶很多,那麼維護用戶興趣相似度矩陣需要很大的空間, 同理,如果物品很多,那麼維護物品相似度矩陣代價較大
下表是對二者的一個全面的表較:
9. 現有推薦系統及優缺點
以滿足不同用戶的不同推薦需求為目的,不同人可以獲得不同推薦為重要特徵的個性化推薦系統
輸入:用戶(User)、物品(Item)、評價(Review)
輸出: 推薦列表、(推薦理由)
User Profile: 1. 性別、年齡、職業等 2. 將User所有打過分的Item Profile的每一項進行加權平均,得到一個綜合的Profile
核心問題:預測和推薦(排序)
一、 基於人口統計學的推薦
當我們需要對一個User進行個性化推薦時,利用第一種User Profile計算其他用戶與其之間的相似度,然後挑選出與其最相似的前K個用戶,之後利用這些用戶的購買和打分信息進行推薦。
二、 基於內容的推薦
構建User Profile,例如將該User曾經打過份的所有Item的Item Profile做一個加權平均,作為該User的profile。計算該用戶未嘗試過的Item與該用戶的User Profile之間的相似度,並按照相似度由大到小的順序生成推薦列表。
三、基於協同過濾的推薦
(一)、 memory-based推薦
1、 基於用戶的推薦(User-Based)
第一步是執行最近鄰搜索(相似偏好),把每一個User看成一個行向量,計算其他所有的User行向量與他的相似度。(Pearson相關性系數、餘弦相似度等),選取與該用戶相似度最高的前K個用戶。推薦方法有兩種:Top-N推薦和關聯推薦
2、基於物品的推薦( Item-Based)
Item-Based 方法是亞馬遜網路商城的專利演算法。第一步執行臨近搜索,把每一個Item看成一個列向量,對於一個Item,我們計算其他所有的Item列向量與它的相似度。有了Item之間的兩兩相似度之後,就可以進行預測和推薦了。
(二)、基於模型的推薦(Model-Based Recommendation)
User-Based 或 Item-Based 方法共有的缺點是資料稀疏,難以處理大數據量下的即時結果,因此發展出以模型為基礎的協同過濾技術:先用歷史數據訓練得到一個模型,再用此模型進行預測。
(三)、混合型推薦方法(Hybrid-Based Recommendation)
指將多種推薦技術進行混合相互彌補缺點,從而可以獲得更好的推薦效果。最常見的是將協同過濾技術和其他技術相結合,以克服
Cold-Start 的問題。
常見混合方法:
加權融合(Weighted):將多種推薦技術的計算結果加權混合產生推薦。
切換(Switch):根據問題背景和實際情況採用不同的推薦技術。
混合(Mix):將多種不同的推薦演算法推薦出來的結果混合在一起,其難點是如何重排序。
特徵組合(Feature Combination):將來自不同推薦數據源的特徵組合起來,由另一種推薦技術採用。
級聯型(Cascade):用後一個推薦方法優化前一個推薦方法。
特徵遞增(Feature Augmentation):前一個推薦方法的輸出作為後一個推薦方法的輸入,它與級聯型的不同之處在於,這種方法上一級產生的並不是直接的推薦結果,而是為下一級的推薦提供某些特徵。
元層次混合(Meta-level hybrid):將不同的推薦模型在模型層面上進行深度的融合,而不僅僅是把一個輸出結果作為另一個的輸入。
10. 協同過濾演算法屬於自然語言處理方向嗎
協同過濾演算法是這一領域的主流。作為基於內容的演算法執行方式,協同版過濾在准確性上具有相權當的優勢,但無法冷啟動、推薦同質化和運算效率低使其依然存在很多不足。
協同過濾演算法的名稱來源於化學上的過濾操作。
原理
利用物質的溶解性差異,將液體和不溶於液體的固體分離開來的一種方法。如用過濾法除去粗食鹽中少量的泥沙
過濾實驗儀器
漏斗、燒杯、玻璃棒、鐵架台(含鐵圈)、濾紙。
過濾操作要領
要做到「一貼、二低、三靠」。
一貼
即使濾紙潤濕,緊貼漏斗內壁,中間不要留下氣泡。(防止氣泡減慢過濾速度。)
二低
1.濾紙邊緣略低於漏斗邊緣。
2.液面低於濾紙邊緣。(防止液體過濾不凈。)
三靠
1.傾倒時燒杯杯口要緊靠玻璃棒上。
2.玻璃棒下端抵靠在三層濾紙處。
3.漏斗下端長的那側管口緊靠燒杯內壁。
過濾注意事項
1.燒杯中的混合物在過濾前應用玻璃棒攪拌,然後進行過濾。
2.過濾後若溶液還顯渾濁,應再過濾一次,直到溶液變得透明為止。
3.過濾器中的沉澱的洗滌方法:用燒瓶或滴管向過濾器中加蒸餾水,使水面蓋沒沉澱物,待溶液全部濾出後,重復2~3次。
希望我能幫助你解疑釋惑。