说明:本文是对Deep Learning for Matching in Search and Recommendation中推荐部分的读书笔记,参考了知乎大佬-后青春期的工程师文章《搜索与推荐中的深度学习匹配》之推荐篇
通过猜测用户兴趣主动推送,一般为非主动触发。
目标:user 和 item 的匹配。
难点:user-item semantic gap 不同特征表示的不同类型实体,表面上看几乎没有重叠
同质性假设(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
CF只考虑了交互矩阵,并没在意背景信息(side info)
FM - Factorization Machines 将每一个特征表示为一个嵌入向量,并对二姐特征交互建模:
很多模型均为FM特例:
正则化 L2 loss 实现的排序效果并不一定好:
双塔模型,用合适的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
补充1:Neural Collaborative Filtering Framework(NCF framework)
NCF是一种用神经网络代替内积作为匹配计算func的通用性框架
然而最直观地用MLP的效果并不好:need to augment DNN with multiplicative relation modeling!
(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推荐问题
(6)LRML - Latent Relational Metric Learning(Based on Translation framework)
关键:
MLP-based 问题:
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)