《Wide and deep learning in Recommender Systems》论文阅读笔记

《Wide and deep learning in Recommender Systems》阅读笔记

  这是Google在2016年发表的一篇关于推荐系统的论文,论文的名字说得很清楚,就是讲 Wide model 和 Deep model 结合起来。如下图,左边是 Wide model,右边是 Deep model,中间是两者的结合。

![这里写图片描述](https://img-blog.csdn.net/20180417222347683?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdiaW54dQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

为什么

  推荐系统的两个目标,就是同时具备很好的记忆能力和泛化能力。所谓记忆能力(memorization),就是模型从历史中总结的能力,比如准确地抓住一位老用户的兴趣点。所谓泛化能力(generalization),就是指模型处理未曾见过的输入的能力,比如揣测一位新用户的兴趣点。

已有方案

  对于广义线性模型GLM(比如LR),以上两个指标是通过交叉变换(cross-product transformation)实现的,往往需要人工做特征工程。memorization可以通过对细粒度稀疏特征提取交叉特征获得,(例如样本 user_installed_app=netflix, impression_app=pandora,那么当且仅当用户安装过netflix而且之后被展示过pandora时,交叉特征的值为1,否则为0)。generalization可以通过粗粒度(less granular)特征的交叉获得,(例如user_installed_category=video, impression_category=music)。这种交叉的方式有一个缺陷,就是对没有出现过的特征pair还是缺乏泛化能力。
  FM和深度学习能够通过学习低维度的、稠密的embedding特征对未见过的query-item pair形成较好的泛化能力,对特征工程的需求没那么高。问题在于,推荐系统中的检索query以及商品特征一般都是很稀疏的,绝大多数query和item之间其实都是没有交互的,但embedding特征会偏向于使模型为所有的query-item pair输出非零概率(或者说不足以约等于零),可能会导致过拟合。

Wide Model

  论文中的 Wide model 就是一个简单的LR,甚至可以没有sigmoid函数,只是简单的对输入的线性加权 y = w T x + b ,不过这里的输入 x 除了原始的特征外,还引入了 cross-product transformation 用于提取交叉特征,其中 c k i { 0 , 1 } .

ϕ k ( x ) = i = 1 d x i c k i

Deep Model

  深度模型就是一个DNN,高维且稀疏的category类特征(例如onehot过)会经过一个映射,变成低维且稠密的实值向量,称作 embedding vector,然后送入NN的隐层,隐层的激活函数选用RELU。

Wide & Deep Model

  把Wide Model和Deep Model输出的对数概率以加权求和的方式融合,作为最终预测概率,然后用logloss作为损失,进行模型训练。这个方法称为“joint training”,不同于集成学习中每个模型单独训练,joint training是同时训练每个模型的所有参数的。Wide & Deep在训练的时候用到了FTRL来做梯度下降,并且加入了L1正则。
  网络结构如下图所示,原始特征包含数值型和类别型特征,数值型特征直接扔进NN,类别型要先做Embedding,另外做交叉输入LR。
这里写图片描述

模型性能与效果

  在offline测试中,Wide&Deep模型比Wide和Deep任何一个单独模型的AUC都要高,另外作为上线的推荐服务,这个系统的延迟不高,实时性很强。
这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/songbinxu/article/details/79981978