1. 程式人生 > 其它 >MeLU Meta-Learned User Preference Estimator for Cold-Start Recommendation閱讀筆記

MeLU Meta-Learned User Preference Estimator for Cold-Start Recommendation閱讀筆記

動機

本文是2019年KDD上的一篇論文。現有的推薦系統探索新使用者偏好時,通常是向用戶提供一系列物品作為候選池,然後根據使用者在候選池中選擇互動的物品提出推薦建議。這樣的方法有一些侷限性:1.對只有少量互動物品的使用者提供的推薦較差。2.候選池中的物品可能並不能真正體現出使用者的偏好。作者提出了一種基於元學習的推薦系統MeLU去克服以上兩個侷限性,並提出了一種選擇候選池的策略。

演算法

本文提出的方法基於MAML,MAML可參考知乎上的這個介紹MAML模型介紹及演算法詳解

使用者偏好估計器

下圖是使用者偏好估計器的結構圖。

首先我們將使用者與物品的屬性轉換為one-hot向量作為輸入,經過embedding層後,可以得到使用者和物品每個屬性的embedding向量。


其中c表示one-hot向量,e表示屬性的embedding矩陣。之後將這些屬性的embedding向量拼接起來,如果是連續值的屬性,直接拼接就好,不需要經過embedding層。
之後,通過一個多層感知機預測使用者對物品的評分或是反饋。

這裡W,b分別是可訓練的權重和偏置。a和\(\sigma\)

是啟用函式。

基於元學習的使用者偏好估計器

這裡的使用者偏好估計器和上述一樣。
元學習需要將使用者的資料劃分為支援集和查詢集,其中支援集用於本地更新,查詢集用於全域性更新。演算法流程如下。

第1-2行,初始化引數,其中\(\theta_1\)是使用者與物品的embedding,\(\theta_2\)是多層感知機的引數。
第4行,隨機取樣一批使用者。
第6-8行,本地更新,針對取樣的每個使用者,首先將\(\theta_2\)複製一份到本地,為\(\theta_2^i\)。根據以下損失函式計算\(\theta_2^i\)的梯度

然後使用梯度下降更新\(\theta_2^i\)
這裡沒有本地更新\(\theta_1^i\)

是為了保證模型穩定性。
第10行,全域性更新\(\theta_1\)\(\theta_2\),這裡是用批量梯度下降的方法。對於\(\theta_2\)的更新,還需要注意一點,這裡梯度下降使用到的梯度是第8行中\(\theta_2^i\)的梯度,但是更新的是\(\theta_2\),這是元學習和普通機器學習不同的地方。

候選池的選擇

使用本地更新的梯度的F-範數和物品流行度兩個指標作為參考(兩個值都是越大越好),選出物品作為候選池。

實驗結果

作者在兩個資料集上,四種情況下做了實驗,四種情況分別是:1.為使用者推薦物品。2.為新使用者推薦物品。3.為使用者推薦新物品。4.為新使用者推薦新物品。本文提出的MeLU在冷啟動場景(2-4)中取得了最好的效果。

MeLU-l代表本地更新了l次。

總結

本文是針對冷啟動問題的一篇論文,作者設計了一個基於元學習的使用者偏好預測器,使得在常見的使用者冷啟動、物品冷啟動及使用者物品冷啟動的情況下,都可以做到一個較好的預測。之後可以向著元學習協同過濾方向研究。