
推薦系統
引言
推薦系統的目標是「預測用戶 (user) 對某物件 (item) 的喜好」,最簡易的推薦方式不外乎隨機推薦、熱門推薦,但效益不好。目前主流的推薦系統可分為
- Content Based Filtering: 基於 特徵 feature 推薦
- Collaborative Filtering: 基於 共通喜好 rating 推薦
- Memory Based: 喜好相似 user 或 item
- user based
- item based
- Model Based: 建模描述 user 和 item 的相似
- Neural Networks
- Graph Networks
- Deep Learging
- Memory Based: 喜好相似 user 或 item
- Hybrid Approach: 混合法
- Two Tower Embedding: 一塔表示 use,另一塔表示 item
Content Based Filtering (CB)
基於 特徵推薦「甚麼產品跟這個產品很像」


優點 | 缺點 |
---|---|
不需要其他使用者的評分,僅需要 user 歷史紀錄 新 item 只要有相同特徵就能被推薦 | 需要詳細 item 特徵 |
較廣度 item 的探索性 | 較沒有深度 item 的探索性 |
沒有同溫層效應 | 不能捕捉到 user 的興趣演變 |
Collaborative Filtering (CF)

基於 users 共同喜好推薦「買了這東西的人也買了什麼?」,推薦分為2種
優點 | 缺點 |
---|---|
不需要 item 有深入特徵,僅需要 user 的評分 | cold start: 需要靠 user 行為確認 item 相似度 對新 user / item 不友善 |
較深度 item 的探索性 | 較沒有廣度 item 的探索性 |
捕捉到 user 的興趣演變 | 同溫層: 對立觀點相似度低,算法不推薦 |
User Based
根據 user 的資訊 (評價、購買紀錄),計算 user 之間的相似度,把相似 user 也喜好的 item 推薦給其他 user,常推薦熱門 item
Item Based
根據 user 喜歡 item 1 也喜歡 item 2, 3, 4 的機率,計算 item 之間的相似度,把相似的 item 推薦給其他 user,常推薦 long-tail item (購買聲望不高,但持續購買)
Networks
Neural Networks

Graph Networks

也能考慮 Latent Dirichlet Allocation (LDA)
Hybrid Approach
結合不同推薦方法,降低單一方法的缺點,例如 Two Tower Embedding 建構兩座獨立的塔,一座塔描述 item ,可能使用 content based filtering;另一座塔描述 user,可能使用 collaborative filtering
Two Tower Embedding
建構兩座塔,用於刻劃 user 和 item,常用 deep learning、neural network 建構
- Query Tower : user 的特徵
- Candidate Tower : item 的特徵

例如某 user 的特徵可能被刻劃成 ,其中
特徵 | 描述 | 數值 |
---|---|---|
數學喜好 | 1 | |
爆炸喜好 | 0.9 | |
體育喜好 | -0.6 |
某影片 item 的特徵則寫成 ,其中
特徵 | 描述 | 數值 |
---|---|---|
有數學 | 1 | |
有爆炸 | 1 | |
無體育 | 0 |
藉由捕捉特徵把 user 與 item 向量化,用此可以描述 user-user / user-item / item-item 的距離關係,常用的方式有
- Inner product: 數值越大,相似度越高
- Euclidean distance: 數值越大,相似度越低
因此無論對 user 需要推薦 item,或是 item 需要找到目標 user,都能藉由此方式推薦。例如以 inner product 作為距離關係,在考慮推薦 user 何種 item 時,僅需在對 item 的 inner product 排序即可。
挑戰: 沒有歷史數據導致
- novel: 新 item,沒
- cold start: 新 user ,沒
Augmentations Contrastive Learning (ACL)
Sparse 導致建模問題
- feature sparsity: user 或 item 特徵太少
- interaction sparsity: 擁有某特徵的 user 或 item 太少
解法:
- data augmentations: 相近組成一組,減輕 feature sparsity
- contrastive learning: 分辨相似/不相似,減輕 interaction sparsity