導航:首頁 > 凈水問答 > 協同過濾knn

協同過濾knn

發布時間:2024-10-12 16:12:41

A. Neural Collaborative Filtering(神經協同過濾

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

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

舉例來說:

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

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

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

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

傳統的求解方法是矩陣分解(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從數據中學習交互函數,突破了這個限制。

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

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

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

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

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

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

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

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

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

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

數據集使用了兩個公開的數據集: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通過將較高分數指定為頂級排名來計算命中的位置。論文計算了每個測試用戶的這兩個指標,並求取了平均分。

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

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

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

累計增益(CG)

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

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

折損累計增益(DCG)

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

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

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

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

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

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

實際的例子

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

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

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

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

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

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

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

閱讀全文

與協同過濾knn相關的資料

熱點內容
樂山污水處理設備批發多少錢 瀏覽:43
如何維修污水浸泡的牆 瀏覽:164
中國凈水服務網平台怎麼樣 瀏覽:891
怎樣去滴定硫酸根離子濃度 瀏覽:194
樹脂釋迦佛小的 瀏覽:638
廢水處理怎麼學 瀏覽:465
17款思域空調濾芯怎麼換 瀏覽:282
凈水器排水孔是干什麼用的 瀏覽:657
AS樹脂高溫分解生成什麼 瀏覽:454
怎麼處理飲水機水桶里的水垢 瀏覽:255
如何處理濃氟廢水 瀏覽:32
GE和bwt即熱凈水機哪個好 瀏覽:738
一個車間每天產生多少廢水 瀏覽:541
寶雞市十里鋪污水招標 瀏覽:740
飛利浦凈水器怎麼拆除 瀏覽:448
過濾管壁上的孔數計算 瀏覽:360
嘉定新城金茂府凈水器是什麼牌子 瀏覽:948
一米二魚缸底濾加裝雙重過濾 瀏覽:502
城市污水處理廠如何運行 瀏覽:43
生活污水處理後形成再生水 瀏覽:613