❶ 協同過濾
協同過濾(Collaborative Filtering,CF)——經典/老牌
只用戶行為數據得到。對於 個用戶, 個物品,則有共現矩陣 :
對於有正負反饋的情況,如「贊」是1和「踩」是-1,無操作是0:
對於只有顯示反饋,如點擊是1,無操作是0:
演算法步驟:
1)得到共現矩陣 ;
2)計算 任意兩行 用戶相似度,得到用戶相似度矩陣 ;
3)針對某個用戶 選出與其最相似的 個用戶, 是超參數;——召回階段
4)基於這 個用戶,計算 對每個物品的得分;
5)按照用戶 的物品得分進行排序,過濾已推薦的物品,推薦剩下得分最高的 個。——排序階段
第2步中,怎麼計算用戶相似度?——使用共現矩陣的行
以餘弦相似度為標准,計算 和 之間的相似度:
第4步中,怎麼每個用戶對每個物品的得分?
假如和用戶 最相似的2個為 和 :
對物品 的評分為1,用戶 對物品 的評分也為1,那麼用戶 對 的評分為:
也就是說:利用用戶相似度對用戶評分進行加權平均:
其中, 為用戶 和用戶 之間的相似度, 為用戶 和物品 之間的相似度。
UserCF的缺點
1、現實中用戶數遠遠大於物品數,所以維護用戶相似度矩陣代價很大;
2、共現矩陣是很稀疏的,那麼計算計算用戶相似度的准確度很低。
演算法步驟:
1)得到共現矩陣 ;
2)計算 任意兩列 物品相似度,得到物品相似度矩陣 ;
3)對於有正負反饋的,獲得用戶 正反饋的物品;
4)找出用戶 正反饋的物品最相似的 個物品,組成相似物品集合;——召回階段
5)利用相似度分值對相似物品集合進行排序,生產推薦列表。——排序階段
最簡單情況下一個物品(用戶未接觸的)只出現在另一個物品(用戶已反饋的)的最相似集合中,那麼每個用戶對每個物品的得分就是相似度。如果一個物品和多個物品最相似怎麼辦?
如用戶正反饋的是 和 ,對於物品 其最相似的是 ,相似度為0.7,對於物品 其最相似的也是 ,相似度為0.6,那麼 相似度為:
也就是說:如果一個物品出現在多個物品的 個最相似的物品集合中,那麼該物品的相似度為多個相似度乘以對應評分的累加。
其中, 是物品p與物品h的相似度, 是用戶u對物品p的評分。
第2步中,怎麼計算物品相似度?——使用共現矩陣的列
以餘弦相似度為標准,計算 和 之間的相似度:
餘弦相似度
皮爾遜相關系數
基於皮爾遜相關系數的改進
UserCF適用於用戶興趣比較分散變換較快的場景,如新聞推薦。
IteamCF適用於用戶情趣不叫穩定的場景,如電商推薦。
優點:直觀,可解釋性強。
缺點:
❷ 協同過濾的演算法簡介
電子商務推薦系統的一種主要演算法。
協同過濾推薦(Collaborative Filtering recommendation)是在信息過濾和信息系統中正迅速成為一項很受歡迎的技術。與傳統的基於內容過濾直接分析內容進行推薦不同,協同過濾分析用戶興趣,在用戶群中找到指定用戶的相似(興趣)用戶,綜合這些相似用戶對某一信息的評價,形成系統對該指定用戶對此信息的喜好程度預測。
與傳統文本過濾相比,協同過濾有下列優點:
(1)能夠過濾難以進行機器自動基於內容分析的信息。如藝術品、音樂;
(2)能夠基於一些復雜的,難以表達的概念(信息質量、品位)進行過濾;
(3)推薦的新穎性。
正因為如此,協同過濾在商業應用上也取得了不錯的成績。Amazon,CDNow,MovieFinder,都採用了協同過濾的技術來提高服務質量。
缺點是:
(1)用戶對商品的評價非常稀疏,這樣基於用戶的評價所得到的用戶間的相似性可能不準確(即稀疏性問題);
(2)隨著用戶和商品的增多,系統的性能會越來越低;
(3)如果從來沒有用戶對某一商品加以評價,則這個商品就不可能被推薦(即最初評價問題)。
因此,現在的電子商務推薦系統都採用了幾種技術相結合的推薦技術。
案例: AMAZON個性化推薦系統先驅 (基於協同過濾)
AMAZON是一個虛擬的網上書店,它沒有自己的店面,而是在網上進行在線銷售。它提供了高質量的綜合節目資料庫和檢索系統,用戶可以在網上查詢有關圖書的信息。如果用戶需要購買的話,可以把選擇的書放在虛擬購書籃中,最後查看購書籃中的商品,選擇合適的服務方式並且提交訂單,這樣讀者所選購的書在幾天後就可以送到家。
AMAZON書店還提供先進的個性化推薦功能,能為不同興趣偏好的用戶自動推薦盡量符合其興趣需要的書籍。 AMAZON使用推薦軟體對讀者曾經購買過的書以及該讀者對其他書的評價進行分析後,將向讀者推薦他可能喜歡的新書,只要滑鼠點一下,就可以買到該書;AMAZON能對顧客購買過的東西進行自動分析,然後因人而異的提出合適的建議。讀者的信息將被再次保存,這樣顧客下次來時就能更容易的買到想要的書。此外,完善的售後服務也是AMAZON的優勢,讀者可以在拿到書籍的30天內,將完好無損的書和音樂光碟退回AMAZON,AMAZON將原價退款。當然AMAZON的成功還不止於此,如果一位顧客在AMAZON購買一本書,下次他再次訪問時,映入眼簾的首先是這位顧客的名字和歡迎的字樣。
❸ 協同過濾演算法
用戶行為數據在網站上最簡單的存在形式就是日誌,比如用戶在電子商務網站中的網頁瀏覽、購買、點擊、評分和評論等活動。 用戶行為在個性化推薦系統中一般分兩種——顯性反饋行為(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需要維護一個物品 相似度矩陣。從存儲的角度說,如果用戶很多,那麼維護用戶興趣相似度矩陣需要很大的空間, 同理,如果物品很多,那麼維護物品相似度矩陣代價較大
下表是對二者的一個全面的表較:
❹ 基於協同過濾的推薦演算法
協同過濾推薦演算法是最經典的推薦演算法,它的演算法思想為 物以類聚,人以群分 ,基本的協同過濾演算法基於以下的假設:
實現協同過濾的步驟:
1). 找到相似的Top-N個人或者物品 :計算兩兩的相似度並進行排序
2). 根據相似的人或物品產生推薦結果 :利用Top-N生成初始推薦結果,然後過濾掉用戶已經有過記錄或者明確表示不喜歡的物品
那麼,如何計算相似度呢?
根據數據類型的不同,相似度的計算方式也不同,數據類型有:
一般的,相似度計算有 傑卡德相似度、餘弦相似度、皮爾遜相關系數
在協同過濾推薦演算法中,我們更多的是利用用戶對物品的評分數據集,預測用戶對沒有評分過的物品的評分結果。
用戶-物品的評分矩陣,根據評分矩陣的稀疏程度會有不同的解決方案。
目的:預測用戶1對於物品E的評分
步驟分析:
實現過程
用戶之間的兩兩相似度:
物品之間的兩兩相似度:
❺ 基於物品的協同過濾演算法用戶對物品的興趣度怎麼算
1概述信息技來術的井噴式發展使我源國的歷史學研究進入了信息化的軌道,歷史資源數量巨大。以辛亥革命為例,辛亥革命是中國近代史上具有劃時代意義的大事件,並且關於辛亥革命的資料文獻眾多,研究者搜尋所需信息的成本越來越高。傳統搜索引擎緩解了信息檢索的壓力,但傳統的搜索引擎將研究者視為一個群體,未考慮個性化差異,難以滿足研究者的個性化需求。因此,需將個性化推薦技術應用於歷史領域中。個性化推薦技術根據已有的用戶數據,對目標用戶進行信息推薦,幫助用戶快捷的檢索到自己所需要的信息。2基於用戶興趣度的協同過濾演算法協同過濾技術是要確定目標用戶的最近鄰居,確定用戶最近鄰居是利用用戶間的相似性,用戶興趣度是衡量用戶相似性最重要的指標。當確定了用戶對某類資源的興趣度時,可以將鄰居用戶中興趣度高的資源進行聚類,從而進行資源推薦。2.1用戶興趣度根據用戶對網頁的瀏覽行為,可以判斷用戶對網頁的興趣度,故可利用用戶瀏覽行為計算用戶興趣度[1]。在歷史領域中,伺服器端..
❻ 協同過濾與分類
[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。
❼ 07_推薦系統演算法詳解
基於人口統計學的推薦與用戶畫像、基於內容的推薦、基於協同過濾的推薦。
1、基於人口統計學的推薦機制( Demographic-based Recommendation)是一種最易於實現的推薦方法,它只是簡單的根據系統用戶的基本信息發現用戶的相關程度,然後將相似用戶喜愛的其他物品推薦給當前用戶。
2、對於沒有明確含義的用戶信息(比如登錄時間、地域等上下文信息),可以通過聚類等手段,給用戶打上分類標簽。
3、對於特定標簽的用戶,又可以根據預設的規則(知識)或者模型,推薦出對應的物品。
4、用戶信息標簽化的過程一般又稱為 用戶畫像 ( User Profiling)。
(1)用戶畫像( User Profile)就是企業通過收集與分析消費者社會屬性、生活習慣、消費行為等主要信息的數據之後,完美地抽象出一個用戶的商業全貌作是企業應用大數據技術的基本方式。
(2)用戶畫像為企業提供了足夠的信息基礎,能夠幫助企業快速找到精準用戶群體以及用戶需求等更為廣泛的反饋信息。
(3)作為大數據的根基,它完美地抽象出一個用戶的信息全貌,為進一步精準、快速地分析用戶行為習慣、消費習慣等重要信息,提供了足夠的數據基礎。
1、 Content- based Recommendations(CB)根據推薦物品或內容的元數據,發現物品的相關性,再基於用戶過去的喜好記錄,為用戶推薦相似的物品。
2、通過抽取物品內在或者外在的特徵值,實現相似度計算。比如一個電影,有導演、演員、用戶標簽UGC、用戶評論、時長、風格等等,都可以算是特徵。
3、將用戶(user)個人信息的特徵(基於喜好記錄或是預設興趣標簽),和物品(item)的特徵相匹配,就能得到用戶對物品感興趣的程度。在一些電影、音樂、圖書的社交網站有很成功的應用,有些網站還請專業的人員對物品進行基因編碼/打標簽(PGC)。
4、 相似度計算:
5、對於物品的特徵提取——打標簽(tag)
- 專家標簽(PGC)
- 用戶自定義標簽(UGC)
- 降維分析數據,提取隱語義標簽(LFM)
對於文本信息的特徵提取——關鍵詞
- 分詞、語義處理和情感分析(NLP)
- 潛在語義分析(LSA)
6、 基於內容推薦系統的高層次結構
7、 特徵工程
(1)特徵( feature):數據中抽取出來的對結果預測有用的信息。
特徵的個數就是數據的觀測維度。
特徵工程是使用專業背景知識和技巧處理數據,使得特徵能在機器學習演算法上發揮更好的作用的過程。
特徵工程一般包括特徵清洗(采樣、清洗異常樣本),特徵處理和特徵選擇。
特徵按照不同的數據類型分類,有不同的特徵處理方法:數值型、類別型、時間型、統計型。
(2)數值型特徵處理
用連續數值表示當前維度特徵,通常會對數值型特徵進行數學上的處理,主要的做法是歸一化和離散化。
* 幅度調整歸一化:
特徵與特徵之間應該是平等的,區別應該體現在 特徵內部 。
例如房屋價格和住房面積的幅度是不同的,房屋價格可能在3000000~15000000(萬)之間,而住房面積在40-300(平方米)之間,那麼明明是平等的兩個特徵,輸入到相同的模型中後由於本身的幅值不同導致產生的效果不同,這是不合理的
* 數值型特徵處理——離散化
離散化的兩種方式:等步長——簡單但不一定有效;等頻——min -> 25% -> 75% -> max
兩種方法對比:
等頻的離散化方法很精準,但需要每次都對數據分布進行一遍從新計算,因為昨天用戶在淘寶上買東西的價格分布和今天不一定相同,因此昨天做等頻的切分點可能並不適用,而線上最需要避免的就是不固定,需要現場計算,所以昨天訓練出的模型今天不一定能使用。
等頻不固定,但很精準,等步長是固定的,非常簡單,因此兩者在工業上都有應用。
(3) 類別型特徵處理
類別型數據本身沒有大小關系,需要將它們編碼為數字,但它們之間不能有預先設定的大小關系,因此既要做到公平,又要區分開它們,那麼直接開辟多個空間。
One-Hot編碼/啞變數:One-Hot編碼/啞變數所做的就是將類別型數據平行地展開,也就是說,經過One-Hot編碼啞變數後,這個特徵的空間會膨脹。
(4) 時間型特徵處理
時間型特徵既可以做連續值,又可以看做離散值。
連續值:持續時間(網頁瀏覽時長);間隔時間(上一次購買/點擊離現在的時間間隔)。
離散值:一天中哪個時間段;一周中的星期幾;一年中哪個月/星期;工作日/周末。
(5) 統計型特徵處理
加減平均:商品價格高於平均價格多少,用戶在某個品類下消費超過多少。
分位線:商品屬於售出商品價格的分位線處。
次序性:商品處於熱門商品第幾位。
比例類:電商中商品的好/中/差評比例。
8、 推薦系統常見反饋數據 :
9、 基於UGC的推薦
用戶用標簽來描述對物品的看法,所以用戶生成標簽(UGC)是聯系用戶和物品的紐帶,也是反應用戶興趣的重要數據源。
一個用戶標簽行為的數據集一般由一個三元組(用戶,物品,標簽)的集合表示,其中一條記錄(u,i,b)表示用戶u給物品打上了標簽b。
一個最簡單的演算法:
- 統計每個用戶最常用的標簽
- 對於每個標簽,統計被打過這個標簽次數最多的物品
- 對於一個用戶,首先找到他常用的標簽,然後找到具有這些標簽的最熱門的物品,推薦給他
- 所以用戶u對物品i的興趣公式為 ,其中 使用戶u打過標簽b的次數, 是物品i被打過標簽b的次數。
簡單演算法中直接將用戶打出標簽的次數和物品得到的標簽次數相乘,可以簡單地表現出用戶對物品某個特徵的興趣。
這種方法傾向於給熱門標簽(誰都會給的標簽,如「大片」、「搞笑」等)、熱門物品(打標簽人數最多)比較大的權重,如果一個熱門物品同時對應著熱門標簽,那它就會「霸榜」,推薦的個性化、新穎度就會降低。
類似的問題,出現在新聞內容的關鍵字提取中。比如以下新聞中,哪個關鍵字應該獲得更高的權重?
10、 TF-IDF:詞頻逆文檔頻率 ( Term Frequency- -Inverse Document Frequency,TF-DF)是一種用於資訊檢索與文本挖掘的常用加權技術。
TFDF是一種統計方法,用以評估一個字詞對於一個文件集或一個語料庫中的其中份文件的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。
TFIDF=TF IDF
TF-IDF的主要思想是 :如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。
TF-DF加權的各種形式常被搜索引擎應用,作為文件與用戶查詢之間相關程度的度量或評級。
詞頻( Term Frequency,TF) :指的是某一個給定的詞語在該文件中出現的頻率。這個數字是對詞數的歸一化,以防止偏向更長的文件。(同一個詞語在長文件里可能會比短文件有更高的詞數,而不管該詞語重要與否。) ,其中 表示詞語 i 在文檔 j 中出現的頻率, 表示 i 在 j 中出現的次數, 表示文檔 j 的總詞數。
逆向文件頻率( Inverse Document Frequency,IDF) :是一個詞語普遍重要性的度量,某一特定詞語的IDF,可以由總文檔數目除以包含該詞語之文檔的數目,再將得到的商取對數得到 ,其中 表示詞語 i 在文檔集中的逆文檔頻率,N表示文檔集中的文檔總數, 表示文檔集中包含了詞語 i 的文檔數。
(11) TF-IDF對基於UGC推薦的改進 : ,為了避免熱門標簽和熱門物品獲得更多的權重,我們需要對「熱門進行懲罰。
借鑒TF-IDF的思想,以一個物品的所有標簽作為「文檔」,標簽作為「詞語」,從而計算標簽的「詞頻」(在物品所有標簽中的頻率)和「逆文檔頻率」(在其它物品標簽中普遍出現的頻率)。
由於「物品i的所有標簽」 應該對標簽權重沒有影響,而 「所有標簽總數」 N 對於所有標簽是一定的,所以這兩項可以略去。在簡單演算法的基礎上,直接加入對熱門標簽和熱門物品的懲罰項: ,其中, 記錄了標簽 b 被多少個不同的用戶使用過, 記錄了物品 i 被多少個不同的用戶打過標簽。
(一)協同過濾(Collaborative Filtering, CF)
1、基於協同過濾(CF)的推薦:基於內容( Content based,CB)主要利用的是用戶評價過的物品的內容特徵,而CF方法還可以利用其他用戶評分過的物品內容。
CF可以解決CB的一些局限:
- 物品內容不完全或者難以獲得時,依然可以通過其他用戶的反饋給出推薦。
- CF基於用戶之間對物品的評價質量,避免了CB僅依賴內容可能造成的對物品質量判斷的干。
- CF推薦不受內容限制,只要其他類似用戶給出了對不同物品的興趣,CF就可以給用戶推薦出內容差異很大的物品(但有某種內在聯系)
分為兩類:基於近鄰和基於模型。
2、基於近鄰的推薦系統:根據的是相同「口碑」准則。是否應該給Cary推薦《泰坦尼克號》?
(二)基於近鄰的協同過濾
1、 基於用戶(User-CF): 基於用戶的協同過濾推薦的基本原理是,根據所有用戶對物品的偏好,發現與當前用戶口味和偏好相似的「鄰居」用戶群,並推薦近鄰所偏好的物品。
在一般的應用中是採用計算「K-近鄰」的演算法;基於這K個鄰居的歷史偏好信息,為當前用戶進行推薦。
User-CF和基於人口統計學的推薦機制:
- 兩者都是計算用戶的相似度,並基於相似的「鄰居」用戶群計算推薦。
- 它們所不同的是如何計算用戶的相似度:基於人口統計學的機制只考慮用戶本身的特徵,而基於用戶的協同過濾機制可是在用戶的歷史偏好的數據上計算用戶的相似度,它的基本假設是,喜歡類似物品的用戶可能有相同或者相似的口味和偏好。
2、基於物品(Item-CF):基於項目的協同過濾推薦的基本原理與基於用戶的類似,只是使用所有用戶對物品的偏好,發現物品和物品之間的相似度,然後根據用戶的歷史偏好信息,將類似的物品推薦給用戶。
Item-CF和基於內容(CB)的推薦
- 其實都是基於物品相似度預測推薦,只是相似度計算的方法不一樣,前者是從用戶歷史的偏好推斷,而後者是基於物品本身的屬性特徵信息。
同樣是協同過濾,在基於用戶和基於項目兩個策略中應該如何選擇呢?
- 電商、電影、音樂網站,用戶數量遠大於物品數量。
- 新聞網站,物品(新聞文本)數量可能大於用戶數量。
3、 User-CF和Item-CF的比較
同樣是協同過濾,在User-CF和ltem-CF兩個策略中應該如何選擇呢?
Item-CF應用場景
- 基於物品的協同過濾( Item-CF ) 推薦機制是 Amazon在基於用戶的機制上改良的一種策略因為在大部分的Web站點中,物品的個數是遠遠小於用戶的數量的,而且物品的個數和相似度相對比較穩定,同時基於物品的機制比基於用戶的實時性更好一些,所以 Item-CF 成為了目前推薦策略的主流。
User-CF應用場景
- 設想一下在一些新聞推薦系統中,也許物品一一也就是新聞的個數可能大於用戶的個數,而且新聞的更新程度也有很快,所以它的相似度依然不穩定,這時用 User-cf可能效果更好。
所以,推薦策略的選擇其實和具體的應用場景有很大的關系。
4、 基於協同過濾的推薦優缺點
(1)基於協同過濾的推薦機制的優點:
它不需要對物品或者用戶進行嚴格的建模,而且不要求對物品特徵的描述是機器可理解的,所以這種方法也是領域無關的。
這種方法計算出來的推薦是開放的,可以共用他人的經驗,很好的支持用戶發現潛在的興趣偏好。
(2)存在的問題
方法的核心是基於歷史數據,所以對新物品和新用戶都有「冷啟動」的問題。
推薦的效果依賴於用戶歷史好數據的多少和准確性。
在大部分的實現中,用戶歷史偏好是用稀疏矩陣進行存儲的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的准確度有很大的影響等等。
對於一些特殊品味的用戶不能給予很好的推薦。
(三)基於模型的協同過濾
1、基本思想
(1)用戶具有一定的特徵,決定著他的偏好選擇
(2)物品具有一定的特徵,影響著用戶需是否選擇它。
(3)用戶之所以選擇某一個商品,是因為用戶特徵與物品特徵相互匹配。
基於這種思想,模型的建立相當於從行為數據中提取特徵,給用戶和物品同時打上「標簽」;這和基於人口統計學的用戶標簽、基於內容方法的物品標簽本質是一樣的,都是特徵的提取和匹配。
有顯性特徵時(比如用戶標簽、物品分類標簽)我們可以直接匹配做出推薦;沒有時,可以根據已有的偏好數據,去發據出隱藏的特徵,這需要用到隱語義模型(LFM)。
2、基於模型的協同過濾推薦,就是基於樣本的用戶偏好信息,訓練一個推薦模型,然後根據實時的用戶喜好的信息進行預測新物品的得分,計算推薦
基於近鄰的推薦和基於模型的推薦
- 基於近鄰的推薦是在預測時直接使用已有的用戶偏好數據,通過近鄰數據來預測對新物品的偏好(類似分類)
- 而基於模型的方法,是要使用這些偏好數據來訓練模型,找到內在規律,再用模型來做預測(類似回歸)
訓練模型時,可以基於標簽內容來提取物品特徵,也可以讓模型去發據物品的潛在特徵;這樣的模型被稱為 隱語義模型 ( Latent Factor Model,LFM)。
(1)隱語義模型(LFM):用隱語義模型來進行協同過濾的目標:
- 揭示隱藏的特徵,這些特徵能夠解釋為什麼給出對應的預測評分
- 這類特徵可能是無法直接用語言解釋描述的,事實上我們並不需要知道,類似「玄學」
通過矩陣分解進行降維分析
- 協同過濾演算法非常依賴歷史數據,而一般的推薦系統中,偏好數據又往往是稀疏的;這就需要對原始數據做降維處理。
- 分解之後的矩陣,就代表了用戶和物品的隱藏特徵
隱語義模型的實例:基於概率的隱語義分析(pLSA)、隱式迪利克雷分布模型(LDA)、矩陣因子分解模型(基於奇異值分解的模型,SVD)
(2)LFM降維方法——矩陣因子分解
(3)LFM的進一步理解
我們可以認為,用戶之所以給電影打出這樣的分數,是有內在原因的,我們可以挖掘出影響用戶打分的隱藏因素,進而根據未評分電影與這些隱藏因素的關聯度,決定此未評分電影的預測評分。
應該有一些隱藏的因素,影響用戶的打分,比如電影:演員、題材、年代…甚至不定是人直接可以理解的隱藏因子。
找到隱藏因子,可以對user和Iiem進行關聯(找到是由於什麼使得user喜歡/不喜歡此Item,什麼會決定user喜歡/不喜歡此item),就可以推測用戶是否會喜歡某一部未看過的電影。
(4)矩陣因子分解
(5)模型的求解——損失函數
(6)模型的求解演算法——ALS
現在,矩陣因子分解的問題已經轉化成了一個標準的優化問題,需要求解P、Q,使目標損失函數取最小值。
最小化過程的求解,一般採用隨機梯度下降演算法或者交替最小二乘法來實現交替最小二乘法( Alternating Least Squares,ALS)
ALS的思想是,由於兩個矩陣P和Q都未知,且通過矩陣乘法耦合在一起,為了使它們解耦,可以先固定Q,把P當作變數,通過損失函數最小化求出P,這就是一個經典的最小二乘問題;再反過來固定求得的P,把Q當作變數,求解出Q:如此交替執行,直到誤差滿足閱值條件,或者到達迭代上限。
(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,在超圖神經網路上並沒多大的改進,重點仍然在於如何用這種結構去解決存在的問題。
如果覺得有用,歡迎點贊關注贊賞,若對推薦感興趣歡迎評論區/私信交流~~~
❾ k近鄰協同過濾和協同過濾演算法的區別
協同過濾演算法
協同過濾(Collaborative filtering, CF)演算法是目前個性化推薦系統比較流行的演算法之一。
協同演算法分為兩個基本演算法:基於用戶的協同過濾(UserCF)和基於項目的協同過濾(ItemCF)。
最近這段時間,多數人都選擇使用被稱為個性化協同推薦(Personalized Collaborative Recommender)的演算法。這也是亞馬遜、Netflix、Facebook 的好友推薦,以及一家英國流行音樂網站 Last.fm 的核心演算法。說它 「個性化」,是因為這種演算法會追蹤用戶的每一個行為(如瀏覽過的頁面、訂單記錄和商品評分),以此進行推薦;它們可不是瞎貓碰上死耗子——全憑運氣。說它 「協同」,則是因為這種演算法會根據許多其他的顧客也購買了這些商品或者對其顯示出好感,而將兩樣物品視為彼此關聯,它不是通過分析商品特徵或者關鍵詞來進行判斷的。
❿ 推薦系統論文閱讀(二十三)-神經圖協同過濾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: