FairCDSR: Fairness-Aware Cross-Domain Sequential Recommendation
我的碩士論文:讓推薦系統更公平的一種做法
在碩士期間,我做了一個關於「推薦系統公平性」的研究,最後也很幸運被 IEEE Transactions on Knowledge and Data Engineering (TKDE) 接受發表。這是一個在資料科學與資料工程領域中很具代表性的期刊,長期維持在 SCI Q1。
這篇研究主要在解決一個很實際、但常被忽略的問題: 推薦系統在提升效果的同時,其實可能讓不同使用者族群之間的差距變得更嚴重。
為什麼推薦系統會不公平?
一般的推薦系統會根據使用者過去的行為(例如點擊、購買)去預測下一個可能感興趣的項目。但現實世界中,資料通常是不平衡的。
舉例來說:
- 男生族群在運動物品領域的互動數據比較多
當模型學習這些資料時,就很容易「偏向資料多的族群」,導致:
- 推薦效果對某些人很好
- 但對另一群人明顯較差
而當我們把多個 domain(例如不同類型商品)一起訓練時,這種偏差甚至會被放大。
我做的事情:同時提升準確率與公平性
這篇研究的核心,是提出一個新的模型框架,去同時解兩件事:
- 降低不同族群之間的表現差距
- 提升推薦準確率
方法核心
整個方法其實可以分成兩個層次:
從「資料」層面改善
我們發現弱勢族群(資料少的那群人)最大的問題是 :行為序列太短、太單一
所以我們做了一件事:
- 用一個模型去擴增他們的行為序列
- 插入合理的 item(不是亂加,是根據上下文產生的合理 item)
效果是:
- 讓模型更容易學到這群人的偏好
- 同時增加訓練資料的多樣性
從「模型表示」層面改善
這部分是整篇論文比較關鍵的技術點。 我們用了一種叫 contrastive learning(對比學習) 的方法,透過 hard negative sample idea 來提升模型對弱勢族群特徵的表示能力
具體來說:
- 找出「弱勢族群不常互動的 item」
- 把它替換成「他們比較常互動的 item」
- 讓模型學到更接近這群人的 representation
同時,我們還設計了一個 interest transfer 模組:
- 把不同 domain 的興趣做更公平的 transfer
- 避免知識只偏向資料多的族群
實驗結果
最後的結果其實蠻有意思:
- 推薦準確率提升約 10%
- 不同族群之間的偏差 降低約 70%
我自己的收穫
這篇論文對我來說,其實不只是模型設計,而是三個很重要的體會:
-
Data bias 會被模型放大 : 不是模型壞,而是資料本身就有偏差。
-
fairness 不是「加 constraint」就好
很多方法只是後處理,但效果有限,真正有效的是從 data + representation 同時處理
- representation learning 很關鍵
很多問題本質上不是模型架構,而是 embedding 學錯了東西