這幾天我的主要任務是除錯和執行之前根據論文《Learning Fair Representations for Recommendation: A Graph-based Perspective》所編寫的程式碼,然後測試該模型的效果並記錄。以下分資料集描述、模型評估策略、超引數調整、測試結果記錄四個部分來描述我的工作。
資料集描述
MovieLens-1M 是一個推薦系統的基準資料集,這個資料集包括6040個使用者對於近4000部電影的近1百萬條評分資訊。使用者具有三個類別型屬性,包括性別(2種類別),年齡(7種類別)和職位(21個類別)。效仿之前的基於公平性的推薦系統,我們在測試時按照9:1的比例劃分訓練集和測試集。
Lastfm-360K是一個音樂推薦資料集,包括了來自音樂網站Last.fm的使用者對音樂製作人的評分。這個資料集包括大約36萬個使用者對29萬個音樂製作人的1700萬條評分資訊。我們將使用者播放音樂的次數做為使用者的評分值。因為評分的值可能在一個大的範圍內,我們先對進行log對數變換,然後將評分規範化到1和5的範圍之間。使用者有著自己的使用者畫像,其資訊包括性別屬性(2種類別)、年齡屬性(7種類別)。和許多經典推薦系統的資料劃分策略一樣,我們將訓練集、驗證集、測試集劃分為7:1:2。
模型評估策略
為了評估推薦系統的表現,我們使用均方根誤差(RMSE)。為了有效度量我們演算法的公平性。我們計算了20%測試使用者的公平性表現。
因為二值型特徵(比如性別)在各資料集上都不平衡,有著70%的男性和30%的女性,我們使用AUC度量來度量二分類的表現。對於多值型屬性,我們使用micro-averaged F1來測量。
AUC或者F1能夠被用於測量是否敏感的性別資訊在表示學習的過程中被暴露。這個這個分類的度量值越小,則說明系統的公平性越好,洩露的敏感資訊更少。
因為我復現的這篇論文中的模型是“上游模型不可知”的(也就是說為了增強其泛用性,將上游模型看做黑盒模型來處理),並且能夠被應用於許多多屬性的推薦場景,故我們按照不同的模型評價設定設計了許多測試。
首先,我們選擇了目前最先進的(state-of-the-art)圖卷積網路(GCN)的推薦模型做為我們的基準模型。因為基於GCN的推薦模型最開始被設計成基於排名的損失函式,我們將其修改為基於評分的損失函式,並在圖卷積的過程中新增了更詳細的評分值來方便我們的設定。
超引數調整
在實際的模型實現中,我們選擇多層感知機(MLP)做為每個過濾器和判別器具體的架構,過濾器的embedding size被設定為\(D=64\)。
對於MovieLens資料集,每個過濾器網路有3層,其中隱藏層的維度分別是128和64。判別器有4層,隱藏層的維度分別是16和8和4。
對於Lastfm-360K資料集,每個過濾器網路有4層,隱藏層維度分別為128,64,32。每個判別器
有4層,隱藏層維度分別是16,8和4。
我們使用LeakyReLU做為啟用函式。在MovieLens資料集上將平衡引數\(\lambda\)設定為0.1,在Lastfm-360K資料集上將平衡引數設定為0.2。所有目標函式中的引數都是可微的。我們使用Adam優化器,將初始學習率調整到0.005。
測試結果記錄
下面的兩張表是我們對模型的測試結果。在測試的過程中,為了簡單起見,我們採取了簡單的自中心圖結構表示,並用一階加權整合。根據模型的測試結果我們可以看出,GCN模型如果直接考慮敏感資訊過濾器會將推薦系統的表現降低5%到10%,因為我們需要排除任何對於打分有用的隱向量維度,但是可能會暴露敏感資訊。
在MovieLens-1M資料集上的訓練過程如下:
ga0--train-- 383.52958726882935
epoch:1 time:383.5 train_loss f:-192.2718 d:19.5616val_loss f:-192.8258 d:19.2919
val_rmse:0.9045 test_rmse:0.895
train data is end
ga0--train-- 360.9422023296356
epoch:2 time:360.9 train_loss f:-191.72 d:19.4652val_loss f:-200.0517 d:20.0125
val_rmse:0.7063 test_rmse:0.6894
train data is end
ga0--train-- 363.16574025154114
epoch:3 time:363.2 train_loss f:-200.8263 d:19.2499val_loss f:-203.8944 d:20.4799
val_rmse:2.8324 test_rmse:2.8068
train data is end
ga0--train-- 355.92360401153564
epoch:4 time:355.9 train_loss f:-189.3184 d:19.3741val_loss f:-180.7054 d:18.0778
ga0 clf_age/4
no model save path
val_rmse:0.7821 test_rmse:0.7787age f1:0.4683 0.4683 0.4683 0.4683
train data is end
ga0--train-- 356.7487156391144
epoch:5 time:356.7 train_loss f:-198.0661 d:19.8271val_loss f:-190.4692 d:19.0536
ga0 clf_age/5
no model save path
val_rmse:0.7407 test_rmse:0.7326age f1:0.469 0.469 0.469 0.469
對於不同的自中心結構的不同摘要網路在資料集MovieLens-1M上的表現,這裡的“常數”表示恆定的區域性的函式聚集,“可學習的”表示引數可學習的聚集。
敏感屬性 | RMSE | AUC/F1 |
---|---|---|
性別 | 0.8553 | 0.8553 |
年齡 | 0.8553 | 0.3948 |
職業 | 0.8553 | 0.1556 |
在Lastfm-360K資料集上的訓練過程如下:
ga0
--------training processing-------
train data is end
ga0--train-- 380.44703578948975
epoch:0 time:380.4 train_loss f:-200.3726 d:19.7304val_loss f:-193.2152 d:19.3319
val_rmse:0.9439 test_rmse:0.9304
train data is end
ga0--train-- 383.52958726882935
epoch:1 time:383.5 train_loss f:-192.2718 d:19.5616val_loss f:-192.8258 d:19.2919
val_rmse:0.9045 test_rmse:0.895
train data is end
ga0--train-- 360.9422023296356
epoch:2 time:360.9 train_loss f:-191.72 d:19.4652val_loss f:-200.0517 d:20.0125
val_rmse:0.7063 test_rmse:0.6894
train data is end
ga0--train-- 363.16574025154114
epoch:3 time:363.2 train_loss f:-200.8263 d:19.2499val_loss f:-203.8944 d:20.4799
val_rmse:2.8324 test_rmse:2.8068
train data is end
ga0--train-- 355.92360401153564
epoch:4 time:355.9 train_loss f:-189.3184 d:19.3741val_loss f:-180.7054 d:18.0778
ga0 clf_age/4
no model save path
val_rmse:0.7821 test_rmse:0.7787age f1:0.4683 0.4683 0.4683 0.4683
train data is end
以下是在Lastfm-360K上的表現。
敏感屬性 | RMSE | AUC/F1 |
---|---|---|
性別 | 0.7358 | 0.5642 |
年齡 | 0.7358 | 0.4953 |
參考文獻
- [1] Wu L, Chen L, Shao P, et al. Learning Fair Representations for Recommendation: A Graph-based Perspective[C]//Proceedings of the Web Conference 2021. 2021: 2198-2208.