Samuel Toh
Back to blog

FairCDSR: Fairness-Aware Cross-Domain Sequential Recommendation

我的碩士論文:讓推薦系統更公平的一種做法

在碩士期間,我做了一個關於「推薦系統公平性」的研究,最後也很幸運被 IEEE Transactions on Knowledge and Data Engineering (TKDE) 接受發表。這是一個在資料科學與資料工程領域中很具代表性的期刊,長期維持在 SCI Q1。

這篇研究主要在解決一個很實際、但常被忽略的問題: 推薦系統在提升效果的同時,其實可能讓不同使用者族群之間的差距變得更嚴重。

為什麼推薦系統會不公平?

一般的推薦系統會根據使用者過去的行為(例如點擊、購買)去預測下一個可能感興趣的項目。但現實世界中,資料通常是不平衡的。

舉例來說:

  • 男生族群在運動物品領域的互動數據比較多

當模型學習這些資料時,就很容易「偏向資料多的族群」,導致:

  • 推薦效果對某些人很好
  • 但對另一群人明顯較差

而當我們把多個 domain(例如不同類型商品)一起訓練時,這種偏差甚至會被放大。


我做的事情:同時提升準確率與公平性

這篇研究的核心,是提出一個新的模型框架,去同時解兩件事:

  1. 降低不同族群之間的表現差距
  2. 提升推薦準確率

方法核心

整個方法其實可以分成兩個層次:

從「資料」層面改善

我們發現弱勢族群(資料少的那群人)最大的問題是 :行為序列太短、太單一

所以我們做了一件事:

  • 用一個模型去擴增他們的行為序列
  • 插入合理的 item(不是亂加,是根據上下文產生的合理 item)

效果是:

  • 讓模型更容易學到這群人的偏好
  • 同時增加訓練資料的多樣性

從「模型表示」層面改善

這部分是整篇論文比較關鍵的技術點。 我們用了一種叫 contrastive learning(對比學習) 的方法,透過 hard negative sample idea 來提升模型對弱勢族群特徵的表示能力

具體來說:

  • 找出「弱勢族群不常互動的 item」
  • 把它替換成「他們比較常互動的 item」
  • 讓模型學到更接近這群人的 representation

同時,我們還設計了一個 interest transfer 模組

  • 把不同 domain 的興趣做更公平的 transfer
  • 避免知識只偏向資料多的族群

實驗結果

最後的結果其實蠻有意思:

  • 推薦準確率提升約 10%
  • 不同族群之間的偏差 降低約 70%

我自己的收穫

這篇論文對我來說,其實不只是模型設計,而是三個很重要的體會:

  1. Data bias 會被模型放大 : 不是模型壞,而是資料本身就有偏差。

  2. fairness 不是「加 constraint」就好

很多方法只是後處理,但效果有限,真正有效的是從 data + representation 同時處理

  1. representation learning 很關鍵

很多問題本質上不是模型架構,而是 embedding 學錯了東西