《搜索与推荐中的深度学习匹配》-推荐
说明:本文是对Deep Learning for Matching in Search and Recommendation中推荐部分的读书笔记,参考了知乎大佬-后青春期的工程师文章《搜索与推荐中的深度学习匹配》之推荐篇
1 推荐概述
通过猜测用户兴趣主动推送,一般为非主动触发。
目标:user 和 item 的匹配。
难点:user-item semantic gap 不同特征表示的不同类型实体,表面上看几乎没有重叠
推荐系统流程
2 传统匹配模型算法
2.1 协同过滤 Collaborative Filtering
同质性假设(Homophily assumption):某用户偏好能从跟他/她相似用户中预测
问题的数学描述:矩阵填充问题,一般采用SVD分解完成,但是应用于推荐领域:矩阵很稀疏但SVD分解对所有数据(缺失的或已知的)一视同仁;SVD分解缺少正则化约束而容易过拟合
(1)MF - Matrix Factorization
预测 y ^ u i = v u T v i \hat{y}_{ui}=\pmb{v}^{T}_{u}\pmb{v}_{i} y^ui=vvvuTvvvi, v u \pmb{v}_{u} vvvu为用户隐变量,而 v i \pmb{v}_{i} vvvi为物品隐变量。
损失函数: L = ∑ u , i w u , i ( y u i − y ^ u i ) 2 + λ ( ∑ u ∣ ∣ v u ∣ ∣ 2 + ∑ i ∣ ∣ v i ∣ ∣ 2 ) L=\sum_{u,i}w_{u,i}(y_{ui}-\hat{y}_{ui})^2 +\lambda(\sum_{u}||\pmb{v}_{u}||^2+\sum_{i}||\pmb{v}_{i}||^2 ) L=∑u,iwu,i(yui−y^ui)2+λ(∑u∣∣vvvu∣∣2+∑i∣∣vvvi∣∣2) (除了L2 loss,还可以用cross-entropy,margin-based pairwise loss等)
(2)FISM - Factored Item Similarity Model
用 user 打分过的 item 的 embedding 1 来表示 user ,实际推荐的 item 用 embedding 2 来表示
预测 y ^ u i = ( ∑ j ∈ R u q j ) T v i \hat{y}_{ui}=(\sum_{j \in R_{u}}\pmb{q}_{j})^{T}\pmb{v}_{i} y^ui=(∑j∈Ruqqqj)Tvvvi
(3)SVD++
预测 y ^ u i = ( v u + ∑ j ∈ R u q j ) T v i \hat{y}_{ui}=(\pmb{v}_{u}+\sum_{j \in R_{u}}\pmb{q}_{j})^{T}\pmb{v}_{i} y^ui=(vvvu+∑j∈Ruqqqj)Tvvvi
2.2 基于特征的通用模型
CF只考虑了交互矩阵,并没在意背景信息(side info)
FM - Factorization Machines 将每一个特征表示为一个嵌入向量,并对二姐特征交互建模:
很多模型均为FM特例:
- FM + input 为userID, itemID = MF
- FM + input 为rated item ID, itemID = FISM
- FM + input 为userID, rated item ID, itemID = SVD++
2.3 损失func
正则化 L2 loss 实现的排序效果并不一定好:
- 损失和排序指标存在差异,推荐本质上是一个个性化排序任务而非打分预测;
- 用户偏向于对喜欢的item打分
用pairwise的排序来解决:
3 深度匹配模型
3.1 Methods of representation learning
双塔模型,用合适的DNN学习user和item所有可获得的特征数据
3.1.1 CF
(1)DeepMF - Deep Matrix Factorization
input:user(矩阵行)、item(矩阵列)均为multi-hot
(2)AutoRec - Autoencoders Meeting CF
理解:隐层作为user表示,和
w
\pmb{w}
www 获得其对各 item 评分,因此
w
\pmb{w}
www 可以作为item的编码矩阵
注意:隐层可以用非线性激活func,但是输出层不行;
(3)CDAE - Collaborative Denoising Autoencoder
与(2)的区别:输入层加了userID但是输出层不重构
3.1.2 CF +Side Info
(1)DCF - Deep Collaborative Filtering via Marginalized DAE
从 user 和 item 的 Side Info 中学习其因曾表示,用内积近似其交互矩阵
(2)DUIF - Deep User-Image Feature
用CNN学item表示,在用MF表示user、item匹配
(3)ACF - Attentive Collaborative Filtering
输入:
user - ID & 历史交互的item
item - ID & 可视特征
item表示:用户对item中不同components具有不同的偏好,即components对item贡献程度不一样
user表示:历史交互过的item对用户的表示贡献度不一样
(4)CKE - Collaborative Knowledge Based Embedding
输入
user - ID
item - ID & info in KB
3.2 Methods of matching function learning
3.2.1 CF models
补充1:Neural Collaborative Filtering Framework(NCF framework)
NCF是一种用神经网络代替内积作为匹配计算func的通用性框架
然而最直观地用MLP的效果并不好:need to augment DNN with multiplicative relation modeling!
补充2:Translation-based Model
(1)NeuMF - Neural Matrix Factorization(Based on NCF framework)
NeuMF = MF(抓取乘法关系) + MLP(弹性学习匹配func)
(2)NNCF - Neighbor-based NCF(Based on NCF framework)
将 user 和 item 的 neighbor 信息引入。
(3)ONCF - Outer-Product based NCF(Based on NCF framework)
(1)(2)中对user和item的合并采用element-wise product 或者 concatenation,隐含了假设:各维相互独立
为了获得维度间的联系,使用outer-product生成2d交互矩阵,再用MLP在矩阵上学习
(4)ConvNCF - Outer Product-based NCF(Based on NCF framework)
在(3)的基础上用CNN替换MLP
(5)TransRec - Translation-based Recommendation(Based on Translation framework)
假设用户下一次喜欢的item跟上一次item有关,解决下一个item推荐问题 <user,current item,next_item>
(6)LRML - Latent Relational Metric Learning(Based on Translation framework)
- 用user p \pmb{p} ppp 和 item q \pmb{q} qqq,计算在memory vector m i \pmb{m}_{i} mmmi上的注意力机制 a i = ( p ⊙ q ) T k i \pmb{a}_{i}=(\pmb{p}\odot\pmb{q})^T\pmb{k}_{i} aaai=(ppp⊙qqq)Tkkki( k i \pmb{k}_i kkki为 m i \pmb{m}_i mmmi的key),再加权获得获得其relation vector r = ∑ i a i m i \pmb{r}=\sum_i\pmb{a}_i\pmb{m}_i rrr=∑iaaaimmmi,
- 随机采样另一对 p ′ \pmb{p'} p′p′p′和 q ′ \pmb{q'} q′q′q′,进行 pairwise ranking 学习: ∣ p + r − q ∣ < ∣ p ′ + r − q ′ ∣ |\pmb{p} + \pmb{r} - \pmb{q}| < |\pmb{p'} + \pmb{r} - \pmb{q'}| ∣ppp+rrr−qqq∣<∣p′p′p′+rrr−q′q′q′∣
3.2.2 Feature-based models
关键:
- 特征向量高维且稀疏;
- 特征间的交互很关键;
MLP-based 问题:
- 只用初始特征(不人工设计交互特征),所有DL模型在学习特征交互上表现不好
- 容易过拟合;难训;需要好的初值(用FM印象量初始化DNN表现更好)
- ;编码concatenation对特征交互没有带来信息增益
FM-based模型可以自动组合特征,DNN可用来学习高阶特征组合,但可解释性差
(1)Wide&Deep(Based on MLP)
Wide&Deep = LR + DNN,LR显式人工特征设计,DNN隐式泛化难抓取特征
(2)Deep Crossing(Based on MLP)
比(1)增加了残差连接,使得网络结构能更深
(3)NFM - Neural FM(Based on FM)
- 特征两两组合(element-wise dot),得到n个K-dim向量,加和得到一个K-dim向量
- 在该向量上用FC学习
(4)Attentional FM(Based on FM)
为特征间的交互值添加权重
(5)DeepFM(Based on FM)
FM与DNN共享编码层