《Wide & Deep Learning for Recommender Systems》

推荐系统 CTR预估 CVR预估


0、概述

线性模型被广泛地应用于回归和分类问题,具有简单、快速和可解释性等优点,但是线性模型的表达能力有限,经常需要人工选择特征和交叉特征才能取得一个良好的效果,但是实际工程中的特征数量会很多,并且还会有大量的稀疏特征,人工筛选特征和交叉特征会很困难,尤其是交叉高阶特征时,人工很难实现。DNN模型可以很容易的学习到高阶特征之间的作用,并且具有很好的泛化能力。同时,DNN增加embedding层可以很容易的解决稀疏特征的问题。文章将传统的LR和DNN组合构成一个wide&deep模型,既保留了LR的拟合能力,又具有DNN的泛化能力,并且不需要单独训练模型,可以方便模型的迭代。

1、Wide&Deep解决什么问题

在推荐系统(包括推荐、计算广告)中,当用户来到平台时,需要向用户展示适合用户的物品(商品、广告等),通常的做法是先从海量的物品库(通常是上亿数量)中,筛选出一些跟用户兴趣最相关的物品(通常是千级规模),这个过程叫做召回,召回可以是机器学习模型或者规则;然后再对这上千的物品进行排序,从而展示给用户。因此推荐系统也经常被叫做搜索排序系统。整个系统流程如图:


推荐系统架构

排序的规则有很多,主要是依据业务的目标而言,例如点击、购买等。wide&deep可以应用到此类目标的排序问题中,最经典的就是CTR预估。

2、现有模型的问题

提到CTR预估,最经典的应该是LR模型了,LR模型简单、快速并且模型具有可解释,有着很好的拟合能力,但是LR模型是线性模型,表达能力有限,泛化能力较弱,需要做好特征工程,尤其需要交叉特征,才能取得一个良好的效果,然后工业中,特征的数量会很多,可能达到成千上万,甚至数十万,这时特征工程就很难做,并且特征工程是一项很枯燥乏味的工作,搞得算法工程师晕头转向,还不一定能取得更好的效果。
DNN模型不需要做太精细的特征工程,就可以取得很好的效果,已经在很多领域开始应用了,DNN可以自动交叉特征,学习到特征之间的相互作用,尤其是可以学到高阶特征交互,具有很好的泛化能力。另外,DNN通过增加embedding层,可以有效的解决稀疏数据特征的问题,防止特征爆炸。推荐系统中的泛化能力是很重要的,可以提高推荐物品的多样性,但是DNN在拟合数据上相比较LR会较弱。
为了提高推荐系统的拟合性和泛化性,可以将LR和DNN结合起来,同时增强拟合能力和泛化能力,wide&deep就是将LR和DNN结合起来,wide部分就是LR,deep部分就是DNN,将两者的结果组合进行输出。

3、Wide&Deep模型

wide&deep模型主要分成两部分,wide部分就是传统的LR模型,deep部分就是DNN,整个模型的结构如下图:


wide&deep

上图中最左边是传统的LR模型,最右边是DNN模型,中间的是将LR和DNN结合起来的wide&deep模型。

3.1 Wide部分

wide部分就是LR模型,传统的LR模型:
X=[x_1,x_2,x_3,...,x_d]表示一个有d个特征的样本,W=[w_1,w_2,w_3,...,w_d]表示模型的参数,b表示bia,y表示预测值,有 y=W^TX+b
在实际中往往需要交叉特征,对于这部分定义如下:
\phi_k(X)=\prod_{i=1}^d x_i^{C_{ki}}, c_{ki}\in {0,1}
\phi_k表示第k个交叉特征,C_{ki}表示是第k个交叉特征的一部分。
最终的wide部分为:
y=W^TX+b+\sum_{k=1}^N w_{d+k}\phi_k

3.2 Deep部分

deep部分就是一个普通的神经网络结构,只不过在这个网络中增加embedding层用来将稀疏、高维的特征转换为低维、密集的实数向量,可以有效地解决维度爆炸。先将原始特征经过embedding层转化后,再送入DNN的隐藏层,隐藏层之间的关系定义为:
a^{l+1}=f(W^l a^l + b^l)
上面l表示隐藏层数,f表示激活函数,可以是sigmoid、Relu、than等,目前最常用的是Relu函数。

3.3 Wide join Deep

将wide部分的输出和deep部分的输出相加通过sigmoid函数输出进行预测。整个模型的预测定义如下:
P(Y=1|X)=\sigma(W_{wide}^T[X,\phi(X)]+W_{deep}^Ta^l+b)

3.4 wide&deep的训练方式

wide&deep模型中,wide部分和deep部分是同时训练的,不需要单独训练任何一部分。GBDT+LR模型中GBDT需要先训练,然后再训练LR,两部分具有依赖关系,这种架构不利于模型的迭代。
Join training和ensemble training的区别:(1)ensemble中每个模型需要单独训练,并且各个模型之间是相互独立的,模型之间互相不感知,当预测样本时,每个模型的结果用于投票,最后选择得票最多的结果。而join train这种方式模型之间不是独立的,是相互影响的,可以同时优化模型的参数。(2)ensemble的方式中往往要求存在很多模型,这样就需要更多的数据集和数据特征,才能取得比较好的效果,模型的增多导致难以训练,不利于迭代。而在wide&deep中,只需要两个模型,训练简单,可以很快的迭代模型。

3.5 工程上的实现

目前Tensorflow中已经提供了wide&deep模型的API,参见 https://www.tensorflow.org/tutorials/wide_and_deep,并且官方提供了一个Demo,工程上可以很快的搭建起wide&deep模型。

4 思考

如果你是为业务第一次做CTR预估模型,建议尝试先用交叉特征+LR经典模型取得一个良好的效果,之后可以引入FM来替换交叉特征部分。最后可以考虑采用以下模型优化:

  • GBDT+LR:Facebook提出的CTR预估方法
  • wide&deep:Google 2016年提出的CTR预估方法,目前最主流的方法,很多公司都在用,建议一定去尝试
  • DeepFM:华为诺亚方舟实验室和哈工大 2017年提出的CTR预估方法
  • Deep&Cross:Google 2017年提出CTR预估方法,据说会比wide&deep更好,目前还没有大量应用
  • FFM:台湾大学提出的对FM进行优化的方法,FM可以看成是FFM的一个特例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容