Fast-adapting and Privacy-preserving Federated Recommender System閱讀筆記
動機
本文是2021年VLDBJ上的一篇論文。在聯邦推薦系統中,存在著資料異質性的問題,一些使用者與物品有很多互動,而一些使用者與物品互動很少,傳統的聯邦推薦利於活躍使用者的推薦,而幾乎忽略那些不活躍的使用者(這部分使用者佔比非常大)。同時,某些惡意使用者還會嘗試獲取使用者私有資訊。為了解決以上問題,本文作者提出了PrivRec和DP-PrivRec模型,DP-PrivRec是PrivRec加入差分隱私技術的模型,可以更好地保護使用者隱私,這裡的保護隱私主要針對降低惡意使用者識別出參與聯邦學習使用者的可能性。
演算法
本文提出的聯邦推薦方法分為兩個階段,第一階段是利用自監督學習獲得物品的embedding,第二階段用基於一階元學習reptile的方法學習推薦模型(PrivRec、DP-PrivRec)。
自監督學習獲取物品表示
這一階段,我們可以利用使用者的互動序列來獲取物品的表示,這裡的互動序列不包含任何使用者資訊。受到BERT啟發,對於一個互動序列X,我們使用一個不再序列中的物品去替代序列中的一個物品,記作,因此,有以下損失函式
\(f_\Sigma\)和\(f_\psi\)是編碼函式,分別學習物品序列和物品的表示。這個式子的目標是最大化正對(\(\hat{X},v_i\))和負對(\(\hat{X},\hat{v}_i\))之間的分數。我認為可以理解為拉近\(v_i\)和序列之中其它item的距離,同時使得\(\hat{v}_i\)和序列中其它item的距離增大。
還可以使用一段序列去替代一段序列,方法與上述類似。
第一階段學到的物品的表示用於第二階段初始化。
PrivRec
PrivRec是一種基於一階元學習reptile的方法。它和FedAvg非常相似,不同的地方在於,在FedAvg中,在客戶端本地訓練時,每個客戶端本地的資料數量會不同,這樣會導致推薦系統會更利於活躍的使用者,而幾乎忽略了不活躍的使用者,而在PrivRec中,每個客戶端本地訓練的資料數量相同(通過取樣相同數量的互動物品來保證訓練資料數量相同),從而避免出現上述問題。
整體的流程是首先採樣M個客戶端,向每個客戶端傳送模型引數,每個客戶端在本地訓練然後返回梯度,伺服器聚合這些梯度更新模型引數。
DP-PrivRec
我們在PrivRec的基礎上主要通過兩個額外的步驟來構建DP-PrivRec。
在客戶端本地更新的時候,我們需要對上傳的梯度進行一個裁剪,S是一個預定義的閾值。
在伺服器端聚合伺服器傳來的梯度時,我們需要加入噪聲,本文采用從高斯分佈\(N(0,\sigma ^2)\)
DP-PrivRec流程如下
推薦模型
本文使用的推薦模型為DSSM,模型訓練過程可表示為
損失函式為
最後,總的損失函式為
實驗結果
作者在movielens和Frappe兩個資料集上做了實驗,本文提出的方法優於所有文中提到的聯邦推薦基線方法。NCF是一種效果很好的集中訓練的推薦模型,可以認為是本次實驗中的上界,PrivRec-GEN是PrivRec的集中訓練版本。
總結
本文重點在於使用隱私差分解決惡意參與者問題和使用一階元學習解決資料異構問題。因為隱私保護和模型效能是不能兼得的,使用差分隱私技術後模型效能會有一定的下降,本文提出的兩階段學習可以一定程度上緩解這個問題。本文使用的推薦模型是2013年提出的模型,如果換用更先進的模型,我認為效能還會有更大提升。