《基于物品的协同过滤演算法ppt课件.ppt》由会员分享,可在线阅读,更多相关《基于物品的协同过滤演算法ppt课件.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用第五章第五章 推薦推薦 王海王海经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用目錄目錄1推薦系統的出現推薦系統的出現2推薦引擎的分類推薦引擎的分類 3主流推薦演算法主流推薦演算法4結束語結束語经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用推薦系統的出現推薦系統的出現推薦:推薦:把使用者模型中興趣需求資
2、訊使用者模型中興趣需求資訊和推薦對象推薦對象的特徵資訊的特徵資訊匹配,同時使用相應的推薦演算法推薦演算法進行計算刷選,找到使用者可能感興趣的推薦對象,然後推薦給使用者。推薦系統應運而生推薦系統應運而生经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用比如,比如,早上買包子的時候,老闆就經常問我要不要來杯豆漿。推薦在生活中無處不在推薦在生活中無處不在经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用推薦在生活中無處不在推薦在生活中無處不在
3、社交網站:社交網站:向他推薦可能感興趣的人;基於社交圖譜的推薦:根據其好友的偏好好友的偏好來向其推薦人、群組、內容、商品等。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用電子商務:個性化推薦電子商務:個性化推薦6推薦在生活中無處不在推薦在生活中無處不在经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用7推薦對企業的價值推薦對企業的價值亞馬遜:亞馬遜:35%的銷售來自推薦。貝索斯:“如果我有一百萬的用戶,我就會做一百萬個不同的網站!”
4、。Netflix:75%的觀看來自推薦。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用推薦與搜索的差別推薦與搜索的差別推薦滿足的是非明確的需求。因此,推薦結果的點擊率低於搜索結果。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用常用推薦演算法常用推薦演算法推薦推薦技術發展至今已經歷了十餘年。開發者們試過各種各樣的方法。經過大量的實踐,人們發現似乎沒有任何一個方法可以獨領風騷、包打天下。不過,目前,協同過濾協同過濾使用最普遍。经营者
5、提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於用基於用戶的協戶的協同過濾同過濾適於物品比用戶多物品比用戶多、物品時效性較強的情形,例如:新聞網站、新網站。否則計算慢推薦結果的個性化較弱、較寬泛,但能實現跨領域、驚喜度高驚喜度高的結果Digg的文章推薦、Last.fm的音樂推薦基於物基於物品的協品的協同過濾同過濾應用最廣泛,尤其以電商電商行業為典型。適於用戶多用戶多、物品少的情形,否則計算慢在物品冷開機、數據稀疏時效果不佳推薦精度高,更具個性化;但傾向於推薦推薦用戶購買過商品的類似商品,所以推薦的多樣性和驚喜度不足
6、驚喜度不足,用戶永遠看不到新穎的物品Amazon等等電商、電商、Netflix、Youtube10经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於內基於內容的演容的演算法算法是最直觀的演算法容易受限於對文本、圖像、音視頻的內容進行描述的詳細程度。常借助文本相似度計算,文本可來自物品描述、UGC等。但推薦精度通常墊底主題過於集中,驚喜度不足新聞網站(例如百度新聞)、百度文檔基於統基於統計思想計思想的方法的方法例如:Slope One、關聯規則、分類熱門推薦。其線上部分計算速度快;直觀。對個性化偏好的描述能力弱(
7、精度低)一些電商網站隱含因隱含因數模型數模型難以即時對模型做增量更新可解釋性差Netflix、Yahoo Music11经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於用戶的協同過濾推薦基於用戶的協同過濾推薦核心思想:核心思想:基於用戶對物品的偏基於用戶對物品的偏好找到相鄰鄰居用戶,好找到相鄰鄰居用戶,然後將鄰居用戶喜歡的然後將鄰居用戶喜歡的推薦給當前用戶推薦給當前用戶经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商
8、品的价款或接受服务的费用和我興趣相似的人喜歡的商品和我興趣相似的人喜歡的商品我也會喜歡。步驟:1.根據用戶對各種物品的偏好值的相似程度,對每兩個用戶之間進行相似度計算,為每個用戶找到與之相似度相似度最高的幾個鄰居用戶鄰居用戶,2.然後將鄰居鄰居用戶對每個物品的偏好值的加權平均作為目標使用者的偏好值的預測值。把預測值最高的多個商品作為目標使用者的推薦把預測值最高的多個商品作為目標使用者的推薦清單。清單。其中,每個鄰居用戶的權重取決於該鄰居使用者與目標使用者之間的相似度相似度。基於協同過濾的推薦基於用戶的協同過濾推薦经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加
9、赔偿的金额为消费者购买商品的价款或接受服务的费用如何計算用戶間的相似度:基於協同過濾的推薦基於用戶的協同過濾推薦設N(u)為用戶u有過正回饋的物品集合,設N(v)為用戶v有過正回饋的物品集合,u和v的興趣相似度可以用Jaccard公式或余弦相似度計算,Jaccard公式公式余弦余弦公式公式经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於用戶的協同過濾推薦基於用戶的協同過濾推薦舉例:舉例:下圖表示用戶A對物品a,b,d有過行為,用戶B對物品a,c有過行為利用余弦相似度計算可得
10、:用戶A和用戶B的興趣相似度為:同理,经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於用戶的協同過濾推薦基於用戶的協同過濾推薦舉例:舉例:下圖表示用戶A對物品a,b,d有過行為,用戶B對物品a,c有過行為給用戶推薦和他興趣最相似的K個用戶喜歡的物品其中,p(u,i)表示用戶u對物品i的感興趣程度,S(u,k)表示和用戶u興趣最接近的K個用戶,N(i)表示對物品i有過行為的使用者集合,wuv表示用戶u和用戶v的興趣相似度,Rvi表示用戶v對物品i的興趣(這裡簡化,所有的Rvi
11、都等於1)。可以算出,用戶可以算出,用戶A對物品對物品c、e的興趣是:的興趣是:经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於使用者的協同過濾的一大缺點形成有意義的鄰居鄰居集合很難。很多用戶兩兩之間只有很少幾個共同評分。而僅有的共同打了分的物品,往往是票房大片。再者,用戶之間的距離可能變得很快。這種離線演算法難以瞬間更新推薦結果。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用R R實戰實戰-基於使用者的協同過濾演算法基於使用
12、者的協同過濾演算法#(0)安裝載入R包install.packages(recommenderlab)library(recommenderlab)#(1)載入數據集data(Jester5k)#該數據集包含5000個樣本數據,來源於Jester線上笑話推薦系統搜集的1999年4月至2003年5月期間的匿名使用者對笑話的評價數據#數據集包含對100個笑話的評價,評分從-10至+10#數據集中所有用戶至少評價36個笑話#Jester5k包含362106個評分#(2)基於用戶的推薦#hist(getRatings(Jester5k),main=Distribution of ratings)rU-
13、Recommender(Jester5k1:1000,method=UBCF)rU经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用R R實戰實戰-基於使用者的協同過濾演算法基於使用者的協同過濾演算法#向第1001和1002用戶推薦的5個物品recomU-predict(rU,Jester5k1001:1002,n=5)recomUas(recomU,list)#預測評分recomU-predict(rU,Jester5k1001:1002,type=ratings)recomUas(recomU,matrix),
14、1:10经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用R R實戰實戰-基於使用者的協同過濾演算法基於使用者的協同過濾演算法#(3)評價方案:1000個樣本,90%作為訓練集,10%作為測試集#測試集中15個物品用於推薦演算法中,另外的用於計算誤差e-evaluationScheme(Jester5k1:1000,method=split,train=0.9,given=15,goodRating=5)e#應用訓練集產生基於用戶的推薦r1-Recommender(getData(e,train),UBCF)#對已
15、知部分的測試數據(每個使用者對15個物品的評分)用基於使用者的推薦演算法計算預測評分p1-predict(r1,getData(e,known),type=ratings)errorU-calcPredictionAccuracy(p1,getData(e,unknown)errorURMSE:標準差MSE:方差MAE:平均絕對誤差经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於物品的協同過濾推薦基於物品的協同過濾推薦核心思想:核心思想:在計算鄰居時採用物品在計算鄰居時採用
16、物品本身,本身,即基於用戶對物品即基於用戶對物品的偏好找到相似的物品,的偏好找到相似的物品,然後根據用戶的歷史偏好,然後根據用戶的歷史偏好,推薦相似的物品給他。推薦相似的物品給他。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用這個方法由亞馬遜公司最早提出。在電商中得到了廣泛使用。基於用戶對物品的偏好計算出物品之間的相似度物品之間的相似度,然後根據當前使用者的偏好,推薦相似的物品給他。例:購買手機的人也都購買了iPad,則說明這兩個物品相物品相似似。當使用者搜索或流覽手機,系統會向他推薦iPad。調參:採用何種相
17、似度相似度度量?基於協同過濾的推薦基於協同過濾的推薦基於物品的協同過濾推薦基於物品的協同過濾推薦其中 是喜歡物品的用戶數,是同時喜歡物品i和物品j的用戶數。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於物品的協同過濾推薦基於物品的協同過濾推薦舉例:用戶A對物品a、b、d有過行為,用戶B對物品b、c、e有過行為,等等;依此構建用戶-物品倒排表:物品a被用戶A、E有過行為,等等经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者
18、购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於物品的協同過濾推薦基於物品的協同過濾推薦在得到物品之間的相似度後,進入第二步:在得到物品之間的相似度後,進入第二步:根據物品的相似度和用戶的歷史行根據物品的相似度和用戶的歷史行為給用戶生成推薦列表:為給用戶生成推薦列表:ItemCF通過如下公式計算用戶u對一個物品j的興趣:其中,puj表示用戶u對物品j的興趣,N(u)表示使用者喜歡的物品集合(i是該用戶喜歡的某一個物品),S(i,K)表示和物品i最相似的K個物品集合(j是這個集合中的某一個物品),wji表示物品j和物品i的相似度,Rui表示用戶u對物品i的興趣(這裡簡化Ru
19、i都等於1)。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦基於物品的協同過濾推薦基於物品的協同過濾推薦舉例:舉例:用戶A喜歡C+Primer中文版和程式設計之美兩本書,然後ItemCF會為這兩本書分別找出和它們最相似的3本書,並根據公式計算使用者對每本書的感興趣程度。比如ItemCF給使用者推薦演算法導論,是因為這本書和C+Primer中文版相似-相似度為0.4,而且這本書也和程式設計之美相似-相似度是0.5。考慮到用戶對C+Primer中文版的興趣度是0.3,對程式設計之
20、美的興趣度是0.9,那麼使用者對演算法導論的興趣度就是1.30.4+0.90.5=0.97。以此類推可得用戶A對C+程式設計思想、代碼大全第二版、Effective C+中文版、程式設計珠璣的感興趣度分別為0.91、0.45、0.78和0.54。基於此便可以確定對使用者A的物品推薦順序為:演算法導論、C+程式設計思想、Effective C+中文版、程式設計珠璣、代碼大全第二版。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用優點:一對物品之間的距離物品之間的距離可能是根據成百上千萬的用戶的評分計算得出,往往能在
21、一段時間內保持穩定穩定。因此,這種演算法可以預先計算距離預先計算距離,其線上部分能更快地生產推薦列表。缺點:不同領域的最熱門物品之間經常具有較高的相似度。這樣,可能會給喜歡演算法導論的同學推薦哈利波特。為此,在運行這種演算法時可以不納入最暢銷商品。基於協同過濾的推薦基於協同過濾的推薦基於物品的協同過濾推薦基於物品的協同過濾推薦26经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用R R實戰實戰-基於物品的協同過濾演算法基於物品的協同過濾演算法#(0)安裝載入R包install.packages(recommende
22、rlab)library(recommenderlab)#(1)載入數據集data(Jester5k)#該數據集包含5000個樣本數據,來源於Jester線上笑話推薦系統搜集的1999年4月至2003年5月期間的匿名使用者對笑話的評價數據#數據集包含對100個笑話的評價,評分從-10至+10#數據集中所有用戶至少評價36個笑話#Jester5k包含362106個評分#(2)基於物品的推薦rI-Recommender(Jester5k1:1000,method=IBCF)rI经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服
23、务的费用R R實戰實戰-基於物品的協同過濾演算法基於物品的協同過濾演算法#向第1001和1002用戶推薦的5個物品recomI-predict(rI,Jester5k1001:1002,n=5)recomIas(recomI,list)#預測評分recomI-predict(rI,Jester5k1001:1002,type=ratings)recomIas(recomI,matrix),1:10经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用R R實戰實戰-基於物品的協同過濾演算法基於物品的協同過濾演算法#(3
24、)評價方案:1000個樣本,90%作為訓練集,10%作為測試集#測試集中15個物品用於推薦演算法中,另外的用於計算誤差e-evaluationScheme(Jester5k1:1000,method=split,train=0.9,given=15,goodRating=5)#應用訓練集產生基於物品的推薦r2-Recommender(getData(e,train),IBCF)#對已知部分的測試數據(每個使用者對15個物品的評分)用基於使用者的推薦演算法計算預測評分p2-predict(r2,getData(e,known),type=ratings)errorI-calcPrediction
25、Accuracy(p2,getData(e,unknown)errorIRMSE:標準差MSE:方差MAE:平均絕對誤差经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦SlopOne核心思想:SlopeOne演算法是由演算法是由 Daniel Lemire教授在教授在2005年提出的一個年提出的一個 Item-Based 推薦推薦演算法。它的思想很簡單,就是用均值化的思想來掩蓋個體的打分差異。和演算法。它的思想很簡單,就是用均值化的思想來掩蓋個體的打分差異。和其它類似演算法相比
26、其它類似演算法相比,它的最大優點在於演算法簡單它的最大優點在於演算法簡單,易於實現易於實現,執行效率高執行效率高,同時推薦的準確性相對很高。同時推薦的準確性相對很高。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦SlopOne例如,用戶X,Y和Z都對Item1-洗衣機打了分.同時用戶X,Y還對Item2-電冰箱打了分,此時用戶Z對Item2可能會打多少分呢?據SlopeOne演算法,使用者對Item j的打分可由如下公式確定其中R(i,j)代表Item i到Item j的平均
27、差,rtj表示目標使用者對Item j的打分,rki、rkj是參與打分Item j的用戶k對Item i跟Item j的打分,nj是參與打分Item j的人數。所以用戶Z對Item 2的打分為:4-(5-10)+(4-5)/2=7。Rating洗衣機電冰箱X510Y45Z4?经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用如果商品數目多於兩項,假設有如果商品數目多於兩項,假設有M項,該如何計算打分值?項,該如何計算打分值?基於協同過濾的推薦基於協同過濾的推薦SlopOne用戶X,Y都對Item1-Item4打了分
28、.同時用戶Z對Item 1、Item 2、Item 4打了分,此時用戶Z對Item 3可能會打多少分呢?Rating洗衣機 電冰箱彩電空調X510105Y45410Z410?5经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用基於協同過濾的推薦基於協同過濾的推薦SlopOne如果商品數目多於兩項,打分規則如下:其中R(i,j)代表Item i到Item j的平均差,rtj表示目標使用者對Item j的打分,rki、rkj是參與打分Item j的用戶k對Item i跟Item j的打分,nj是參與打分Item j的人
29、數。根據公式可得:Rating 洗衣機 電冰箱彩電空調X510105Y45410Z410?5经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用需要預先離線離線計算出每兩個物品之間的偏好值平均差異。其線上線上部分運行很快。沒用到相似度計算。調參工作量大大減少。基於協同過濾的推薦基於協同過濾的推薦SlopOne優缺點:優缺點:34经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用結束語結束語 推薦系統改變了沒有活力的網站與其使用者通信的方式
30、。無需推薦系統改變了沒有活力的網站與其使用者通信的方式。無需提供一種靜態體驗,讓使用者搜索並可能購買產品,推薦系統加提供一種靜態體驗,讓使用者搜索並可能購買產品,推薦系統加強了交互,以提供內容更豐富的體驗。強了交互,以提供內容更豐富的體驗。推薦系統根據使用者過去的購買和搜索歷史,以及其他用戶的推薦系統根據使用者過去的購買和搜索歷史,以及其他用戶的行為,自主地為各個使用者識別推薦內容。行為,自主地為各個使用者識別推薦內容。The EndThe End经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用Thanks for listeninghttp:/