Neural Collaborative Filtering(神經協同過濾)

目錄

1.背景:論文提出的背景
2.矩陣分解:解釋了矩陣分解以及其缺點,引出NCF框架
3.NCF框架:解釋了NCF框架是什么,提出了3個NCF的應用,GMF、MLP和NeuMF
4.實驗測試:包含實驗數據和評估方法NDCG的說明,同時根據3個問題解答NCF的作用

1、 背景

論文討論的主要是隱性反饋協同過濾解決方案,先來明確兩個概念:顯性反饋和隱性反饋:

顯性反饋行為包括用戶明確表示對物品喜好的行為
隱性反饋行為指的是那些不能明確反應用戶喜好

舉例來說:


很多應用場景,并沒有顯性反饋的存在。因為大部分用戶是沉默的用戶,并不會明確給系統反饋“我對這個物品的偏好值是多少”。因此,推薦系統可以根據大量的隱性反饋來推斷用戶的偏好值。

根據已得到的隱性反饋數據,我們將用戶-條目交互矩陣Y定義為:

但是,Yui為1僅代表二者有交互記錄,并不代表用戶u真的喜歡項目i,同理,u和i沒有交互記錄也不能代表u不喜歡i。這對隱性反饋的學習提出了挑戰,因為它提供了關于用戶偏好的噪聲信號。雖然觀察到的條目至少反映了用戶對項目的興趣,但是未查看的條目可能只是丟失數據,并且這其中存在自然稀疏的負反饋。
在隱性反饋上的推薦問題可以表達為估算矩陣 Y中未觀察到的條目的分數問題(這個分數被用來評估項目的排名)。形式上它可以被抽象為學習函數:

--

為了處理缺失數據,有兩種常見的做法:要么將所有未觀察到的條目視作負反饋,要么從沒有觀察到條目中抽樣作為負反饋實例。

2、矩陣分解及其缺陷

傳統的求解方法是矩陣分解(MF,Matrix Factorization),為每個user和item找到一個隱向量,問題變為:

這里的 K表示隱式空間(latent space)的維度。正如我們所看到的,MF模型是用戶和項目的潛在因素的雙向互動,它假設潛在空間的每一維都是相互獨立的并且用相同的權重將它們線性結合。因此,MF可視為隱向量(latent factor)的線性模型。

論文中給出了一個例子來說明這種算法的局限性:


1(a)是user-item交互矩陣,1(b)是用戶的隱式空間,論文中強調了兩點來理解這張圖片:
1)MF將user和item分布到同樣的隱式空間中,那么兩個用戶之間的相似性也可以用二者在隱式空間中的向量夾角來確定。
2)使用Jaccard系數來作為真實的用戶相似性。
通過MF計算的相似性與Jaccard系數計算的相似性也可以用來評判MF的性能。我們先來看看Jaccard系數

上面的示例顯示了MF因為使用一個簡單的和固定的內積,來估計在低維潛在空間中用戶-項目的復雜交互,從而所可能造成的限制。解決該問題的方法之一是使用大量的潛在因子 K (就是隱式空間向量的維度)。然而這可能對模型的泛化能力產生不利的影響(e.g. 數據的過擬合問題),特別是在稀疏的集合上。論文通過使用DNNs從數據中學習交互函數,突破了這個限制。

3、NCF

論文先提出了一種通用框架:

針對這個通用框架,論文提出了三種不同的實現,三種實現可以用一張圖來說明:

image

GMF
上圖中僅使用GMF layer,就得到了第一種實現方式GMF,GMF被稱為廣義矩陣分解,輸出層的計算公式為:

MLP
上圖中僅使用右側的MLP Layers,就得到了第二種學習方式,通過多層神經網絡來學習user和item的隱向量。這樣,輸出層的計算公式為:

NeuMF
結合GMF和MLP,得到的就是第三種實現方式,上圖是該方式的完整實現,輸出層的計算公式為:

4、模型實驗

論文的實驗用于回答以下研究問題:

RQ1 我們提出的NCF方法是否勝過 state-of-the-art 的隱性協同過濾方法?

RQ2 我們提出的優化框架(消極樣本抽樣的log loss)怎樣為推薦任務服務?

RQ3 更深的隱藏單元是不是有助于對用戶項目交互數據的學習?

接下來,首先介紹實驗設置,其次是回答上述三個問題。

4.1 實驗設置

數據集使用了兩個公開的數據集:MovieLens 和 Pinterest 兩個數據集,它們的特征總結在表1中

1.MovieLens:這個電影評級數據集被廣泛地用于評估協同過濾算法。論文使用的是包含一百萬個評分的版本,每個用戶至少有20個評分。 雖然這是顯性反饋數據集,但論文有意選擇它來挖掘(模型)從顯式反饋中學習隱性信號的表現。為此,論文將其轉換為隱式數據,其中每個條目被標記為0或1表示用戶是否已對該項進行評級。

2.Pinterest:這個隱含的反饋數據的構建用于評估基于內容的圖像推薦。原始數據非常大但是很稀疏。 例如,超過20%的用戶只有一個pin(pin類似于贊一下),使得難以用來評估協同過濾算法。 因此,論文使用與MovieLens數據集相同的方式過濾數據集:僅保留至少有過20個pin的用戶。處理后得到了包含55,187個用戶和1,580,809個項目交互的數據的子集。 每個交互都表示用戶是否將圖像pin在自己的主頁上。

評估方案: 為了評價項目推薦的性能,論文采用了leave-one-out方法(留一法)評估,該方法已被廣泛地應用于文獻。即:對于每個用戶,論文將其最近的一次交互作為測試集(數據集一般都有時間戳),并利用余下的培訓作為訓練集。由于在評估過程中為每個用戶排列所有項目花費的時間太多,所以遵循一般的策略,隨機抽取100個不與用戶進行交互的項目,將測試項目排列在這100個項目中。排名列表的性能由命中率(HR)和歸一化折扣累積增益(NDCG)來衡量。 沒有特別說明的話,論文將這兩個指標的排名列表截斷為10。如此一來,HR直觀地衡量測試項目是否存在于前10名列表中,而NDCG通過將較高分數指定為頂級排名來計算命中的位置。論文計算了每個測試用戶的這兩個指標,并求取了平均分。

基準線(Baselines):論文NCF方法(GMF,MLP和NeuMF)和下列方法進行了比較:

?ItemPop。按項目的互動次數判斷它的受歡迎程度,從而對項目進行排名。 這對基于評估推薦性能來說是一種非個性化的方法。
?ItemKNN。這是基于項目的標準協同過濾方法。
?BPR。該方法優化了使用公式的MF模型,該模型具有成對排序損失,BPR調整它使其可以從隱式反饋中學習。它是項目推薦基準的有力競爭者。論文使用固定的學習率,改變它并報告了它最佳的性能。
?eALS。這是項目推薦的 state-of-the-art 的MF方法。

4.2 評估方法

HR(命中率)和 NDCG(歸一化折損累計增益),HR直觀地衡量測試項目是否存在于前10名列表中,而NDCG通過將較高分數指定為頂級排名來計算命中的位置,重點介紹NDCG

4.1 NDCG(Normalized Discounted Cumulative Gain,歸一化折損累計增益)

NDCG這個名字可能比較嚇人,但背后的思想卻很簡單.一個推薦系統返回一些item并形成一個列表,我們想要計算這個列表有多好,每一項都有一個相關的評分值,通常這些評分值是一個非負數,這就是gain(增益).此外對于這些沒有用戶反饋的項我們通常設置起增益為0.

累計增益(CG)

我們將這些增益相加就是Cumulative Gain(累計增益,CG),CG就是將每個推薦結果相關性的分支累加后作為整個推薦列表的得分.

公式4.1

reli 表示處于位置i的推薦結果的相關性,k表示要考察的推薦列表的大小.

折損累計增益(DCG)

CG的一個缺點是沒有考慮每個推薦結果處于不同位置對整個推薦效果的影響,例如我們總是希望相關性高的結果應該排在前面.顯然,如果相關性低的結果排在靠前的位置會嚴重影響用戶的體驗,所以在CG的基礎上引入位置影響因素,即DCG(Discounted Cumulative Gain),這里指的是對于排名靠后推薦結果的推薦效果進行“打折處理”。假設排序越往后,價值越低。到第i個位置的時候,它的價值是 1/log2(i+1),那么第i個結果產生的效益就是 reli * 1/log2(i+1),所以::

公式4.2

從上面的式子可以得到兩個結論:
1.推薦結果的相關性越大,DCG越大
2.相關性好的排在推薦列表前面的話,推薦效果越好,DCG越大.

歸一化折損累計增益(NDCG)

DCG仍然有不足之處,即不同的推薦的推薦列表之間,很難進行橫向的評估,而我們評估一個推薦系統不可能僅使用一個用戶的推薦列表及相應結果進行評估,而是對整個測試機中的用戶及其推薦列表結果進行評估.那么不同的用戶的推薦列表的評估分數就需要進行歸一化,也即NDCG(Normalized Discounted Cumulative Gain,歸一化折損累計增益).
在介紹NDCG之前還需要知道另一個概念,IDCG(Ideal DCG),指推薦系統為某一用戶返回的最好推薦結果列表,即假設返回結果按照相關性排序,最相關的結果放在前面,此序列的DCG為IDCG.因此DCG的值介于(0,IDCG],故NDCG的值介于(0,1]。NDCG計算公式:
 

公式4.3

IDCG為理想情況下最大的DCG值。

公式4.4

其中 |REL| 表示,結果按照相關性從大到小的順序排序,取前p個結果組成的集合。也就是按照最優的方式對結果進行排序。

實際的例子

假設推薦系統返回來的5個結果,其模型評分分別是 1.2、0.7、0.1、0.2、4.0。

id 模型評分 按模型評分排序(i) r(l)) 按Gain排序(j)
1 1.2 2 2 1
2 0.7 3 1 2
3 0.1 5 0 3
4 0.2 4 0 3
5 4.0 1 0 3

我們首先通過公式4.2計算出DCG值為2.39278,按照公式4.4來計算出iDCG的值為3.6309

最后通過公式4.3計算出NDCG為65%

更多的推薦模型評估方法參考:https://statusrank.coding.me/articles/639f7364.html

4.3 性能比較(RQ1)

圖4(Figure 4)顯示了 HR@10 和 NDCG@10 相對于預測因素數量的性能。
圖5(Figure 5)顯示了Top-K推薦列表的性能,排名位置K的范圍為1到10。
總的來看論文提出的NeuMF模型(結合GMF和MLP)效果不錯,對比其他方法都要好。

4.2 對消極采樣使用Log Loss(RQ2)

Figure 6 表示將模型看作一個二分類任務并使用logloss作為損失函數時的訓練效果。
Figure7 表示采樣率對模型性能的影響(橫軸是采樣率,即負樣本與正樣本的比例)。

4.3 深度學習helpful?(RQ3)

上面的表格設置了兩個變量,分別是Embedding的長度K和神經網絡的層數,使用類似網格搜索的方式展示了在兩個數據集上的結果。增加Embedding的長度和神經網絡的層數是可以提升訓練效果的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。