《搜索与推荐中的深度学习匹配》-推荐

《搜索与推荐中的深度学习匹配》-推荐

  • 1 推荐概述
  • 2 传统匹配模型算法
    • 2.1 协同过滤 Collaborative Filtering
    • 2.2 基于特征的通用模型
    • 2.3 损失func
  • 3 深度匹配模型
    • 3.1 Methods of representation learning
    • 3.2 Methods of matching function learning
      • 3.2.1 CF models
      • 3.2.2 Feature-based models

说明:本文是对Deep Learning for Matching in Search and Recommendation中推荐部分的读书笔记,参考了知乎大佬-后青春期的工程师文章《搜索与推荐中的深度学习匹配》之推荐篇

1 推荐概述

通过猜测用户兴趣主动推送,一般为非主动触发。
目标:user 和 item 的匹配。
难点:user-item semantic gap 不同特征表示的不同类型实体,表面上看几乎没有重叠

《搜索与推荐中的深度学习匹配》-推荐_第1张图片
推荐系统流程
《搜索与推荐中的深度学习匹配》-推荐_第2张图片

2 传统匹配模型算法

2.1 协同过滤 Collaborative Filtering

 同质性假设(Homophily assumption):某用户偏好能从跟他/她相似用户中预测

 问题的数学描述:矩阵填充问题,一般采用SVD分解完成,但是应用于推荐领域:矩阵很稀疏但SVD分解对所有数据(缺失的或已知的)一视同仁;SVD分解缺少正则化约束而容易过拟合
《搜索与推荐中的深度学习匹配》-推荐_第3张图片
(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(yuiy^ui)2+λ(uvvvu2+ivvvi2) (除了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=(jRuqqqj)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+jRuqqqj)Tvvvi

2.2 基于特征的通用模型

 CF只考虑了交互矩阵,并没在意背景信息(side info)

FM - Factorization Machines 将每一个特征表示为一个嵌入向量,并对二姐特征交互建模:
《搜索与推荐中的深度学习匹配》-推荐_第4张图片
很多模型均为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的排序来解决:
《搜索与推荐中的深度学习匹配》-推荐_第5张图片

3 深度匹配模型

3.1 Methods of representation learning

《搜索与推荐中的深度学习匹配》-推荐_第6张图片
双塔模型,用合适的DNN学习user和item所有可获得的特征数据

3.1.1 CF

(1)DeepMF - Deep Matrix Factorization
《搜索与推荐中的深度学习匹配》-推荐_第7张图片
 input:user(矩阵行)、item(矩阵列)均为multi-hot

(2)AutoRec - Autoencoders Meeting CF
《搜索与推荐中的深度学习匹配》-推荐_第8张图片
 理解:隐层作为user表示,和 w \pmb{w} www 获得其对各 item 评分,因此 w \pmb{w} www 可以作为item的编码矩阵
 注意:隐层可以用非线性激活func,但是输出层不行;

(3)CDAE - Collaborative Denoising Autoencoder
《搜索与推荐中的深度学习匹配》-推荐_第9张图片
与(2)的区别:输入层加了userID但是输出层不重构

3.1.2 CF +Side Info
(1)DCF - Deep Collaborative Filtering via Marginalized DAE
《搜索与推荐中的深度学习匹配》-推荐_第10张图片
 从 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贡献程度不一样
《搜索与推荐中的深度学习匹配》-推荐_第11张图片
  user表示:历史交互过的item对用户的表示贡献度不一样
《搜索与推荐中的深度学习匹配》-推荐_第12张图片

(4)CKE - Collaborative Knowledge Based Embedding
  输入
    user - ID
   item - ID & info in KB
《搜索与推荐中的深度学习匹配》-推荐_第13张图片

3.2 Methods of matching function learning

《搜索与推荐中的深度学习匹配》-推荐_第14张图片

3.2.1 CF models

补充1:Neural Collaborative Filtering Framework(NCF framework)
  NCF是一种用神经网络代替内积作为匹配计算func的通用性框架
《搜索与推荐中的深度学习匹配》-推荐_第15张图片
  然而最直观地用MLP的效果并不好:need to augment DNN with multiplicative relation modeling!

补充2:Translation-based Model
《搜索与推荐中的深度学习匹配》-推荐_第16张图片

(1)NeuMF - Neural Matrix Factorization(Based on NCF framework)
  NeuMF = MF(抓取乘法关系) + MLP(弹性学习匹配func)
《搜索与推荐中的深度学习匹配》-推荐_第17张图片

(2)NNCF - Neighbor-based NCF(Based on NCF framework)
 将 user 和 item 的 neighbor 信息引入。
《搜索与推荐中的深度学习匹配》-推荐_第18张图片
(3)ONCF - Outer-Product based NCF(Based on NCF framework)
 (1)(2)中对user和item的合并采用element-wise product 或者 concatenation,隐含了假设:各维相互独立
《搜索与推荐中的深度学习匹配》-推荐_第19张图片

 为了获得维度间的联系,使用outer-product生成2d交互矩阵,再用MLP在矩阵上学习

(4)ConvNCF - Outer Product-based NCF(Based on NCF framework)
 在(3)的基础上用CNN替换MLP
《搜索与推荐中的深度学习匹配》-推荐_第20张图片

(5)TransRec - Translation-based Recommendation(Based on Translation framework)
 假设用户下一次喜欢的item跟上一次item有关,解决下一个item推荐问题
《搜索与推荐中的深度学习匹配》-推荐_第21张图片

(6)LRML - Latent Relational Metric Learning(Based on Translation framework)
《搜索与推荐中的深度学习匹配》-推荐_第22张图片

  • 用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=(pppqqq)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'} ppp q ′ \pmb{q'} qqq,进行 pairwise ranking 学习: ∣ p + r − q ∣ < ∣ p ′ + r − q ′ ∣ |\pmb{p} + \pmb{r} - \pmb{q}| < |\pmb{p'} + \pmb{r} - \pmb{q'}| ppp+rrrqqq<ppp+rrrqqq

3.2.2 Feature-based models

 关键:

  • 特征向量高维且稀疏;
  • 特征间的交互很关键;

 MLP-based 问题:

  • 只用初始特征(不人工设计交互特征),所有DL模型在学习特征交互上表现不好
  • 容易过拟合;难训;需要好的初值(用FM印象量初始化DNN表现更好)
  • ;编码concatenation对特征交互没有带来信息增益

 FM-based模型可以自动组合特征,DNN可用来学习高阶特征组合,但可解释性差

(1)Wide&Deep(Based on MLP)
《搜索与推荐中的深度学习匹配》-推荐_第23张图片
 Wide&Deep = LR + DNN,LR显式人工特征设计,DNN隐式泛化难抓取特征

(2)Deep Crossing(Based on MLP)
《搜索与推荐中的深度学习匹配》-推荐_第24张图片
比(1)增加了残差连接,使得网络结构能更深

(3)NFM - Neural FM(Based on FM)
《搜索与推荐中的深度学习匹配》-推荐_第25张图片

  • 特征两两组合(element-wise dot),得到n个K-dim向量,加和得到一个K-dim向量
  • 在该向量上用FC学习

(4)Attentional FM(Based on FM)
 为特征间的交互值添加权重
《搜索与推荐中的深度学习匹配》-推荐_第26张图片

(5)DeepFM(Based on FM)
《搜索与推荐中的深度学习匹配》-推荐_第27张图片
FM与DNN共享编码层

你可能感兴趣的:(深度学习,推荐系统)