深度推荐初体验之AutoRec、DeepCrossing

听张老师说文章开头要放美图才有人看所以就放了个结衣

很多人都把AutoRec看作是深度学习在推荐系统领域的开山之作,它将AutoEncoder这样一个自监督的简单模型引入到了推荐之中,并获得了不错的效果,让人们见识到了深度学习在推荐系统中能发挥的强大作用.而2016年时微软提出的DeepCrossing模型才是真正将深度学习带入推荐系统的完整应用,它完整的解决了特征从特征工程、稀疏向量的稠密化、多层神经网络进行优化目标拟合等一系列深度学习在推荐系统中的应用问题,为后续深度学习在推荐系统的应用研究打下了良好的基础,对以后各种深度推荐系统的设计有很好的借鉴意义.

AutoRec

当然,这里使用的AutoEncoder的结构十分的简单,说是深度学习,网络的层数也不过3层而已(输出层->隐藏层->输出层),结构也全是全连接的形式. 现在看来,可以说是毫无新意可言.这里我主要从我对深度学习的理解的角度,来分析一下AutoRec为什么有效.

AutoRec的学习过程十分简单,实际本质上就是简单的将协同过滤使用神经网络自动学习而已.它也分为基于Item和基于User的两种方式:

  • 基于User就是把user对item的所有评分作为user向量,n个user就有了n个样本,然后用这些样本来训练一个AutoEncoder模型,这样只要输入User的初始向量,就可以得到重建之后的User对所有Item的评分向量,排个序就可以直接推荐了;
  • 基于Item就是把item的所有用户打分作为Item向量,m个Item就有了m个样本,同样用这些样本训练一个AutoEncoder模型,这样把所有的原始Item向量输入到模型,经过计算就可以得到重建之后的所有Item向量,也便间接得到了所有User对所有Item的评分,接下来也是排序推荐.

显而易见的,使用User-AuroRec的好处是一次输入直接出打分结果,而Item-AutoRec却要把全部Item都计算一遍才能出结果;当然,劣势也很明显,User向量往往非常稀疏,很可能会影响模型最终效果.

那么,我们来思考一下,为什么可以通过这种重建函数来达到获得新的得分从而作为推荐排序的依据呢.

这里我说一下我个人的理解.显然,在训练的过程中,优化器想要减小相应的损失,就会最大限度的去拟合尽可能多的特征相一致的结果,于是在不断拟合的过程中,特征相似的Item向量或User向量的重建向量将逐渐趋向于一致.而对于原始的向量,每个User所接触过的Item毕竟是少量的,但是其他有不同空缺Item的User之间相互弥补了相应的打分空缺,因此,在一定程度上相当于找到了最可能的打分.

Deep Crossing

明眼人都能看出来,AutoRec这无脑的简单结构表达能力肯定十分有限,真正的应用端必然难堪大用.于是,我们来看一下,Deep Crossing这个完整的全套的深度学习用于推荐系统的方案,了解了Deep Crossing,想必也就对那些后来的深度学习推荐系统可可见一斑了.

DeepCrossing的应用场景是微软Bing中的搜索广告推荐:用户在使用Bing搜索,输入搜索词后,搜索引擎除了会返回相关的搜索结果,同时会返回搜索词相关的广告,这是大多数搜索引擎的主要盈利模式,因此尽可能的提高广告的点击率,也就是要准确的预测广告点击率,并一次作为广告排序的依据是重中之重,因此DeepCrossing优化的目标就是不断提高广告点击率预估的准确率.

针对这个使用场景,微软使用了这样一些特征:

特征 特征含义
搜索词 用户在搜索框中输入搜索词
广告关键词 广告主为广告添加的描述产品的关键词
广告标题 字面意思..
落地页 点击广告后的落地页面
匹配类型 广告主选择的广告-搜索词匹配类型(包括精准匹配/短语匹配/语义匹配)
点击率 广告的历史点击率
预估点击率 另一个CTR模型的CTR 预估值
广告计划 广告主创建的广告投放计划,包括预算/定向条件等
曝光样例 一个广告曝光的例子,该例子记录了广告在实际曝光场景中的相关信息
点击样例 一个广告点击的例子,该例子记录了广告在实际点击场景中的相关信息

这些特征可以分为三类:

  • 类型特征: 可以被处理成one-hot或者multi-hot向量;
  • 数值型特征: 直接拼接进特征向量;
  • 待处理特征: 进一步处理特征,抽出类型特征或者数值特征(比如广告计划中有一堆特征,预算可以作为数值特征,而定向条件又可以作为类别特征)

经过处理形成特征向量的表达后,就可以通过DeepCrossing模型进行CTR预估了.先来看一下DeepCrossing的网络结构:


DeepCrossing网络结构

主要就是看一下网络这三个隐藏层和输出层到底干了些什么.

  1. Embedding层
    one-hot形式的特征编码过于稀疏,于是增加一个Embedding层来使特征稠密化...
    这个用法在NLP领域里用的实在太多了, 很普遍的一个做法.

2.Stacking层
主要用于解决特征交叉的问题;也是很常规的一个做法,将前面的独立特征拼接到一起,得到一个组合的全新特征.

3.Multi Residual Units层
起始就是加神网络,相当于加了几层没激活的残差网络,让模型可以更加充分的捕捉到各个特征之间的关联,也就是让特征之间得到充分的组合,大概这就是所谓的Crossing吧.

  1. Scoring层
    就是输出相应的得分,可以用来和训练数据的目标计算损失来优化网络参数.对于CTR这样的二分类问题一般就是用一个sigmoid激活函数,而对于多分类问题的话就用softmax比较好.

吐槽

就这样,看完这个网络结构,真的会有: 就这???这种感觉吧...现在看来,这种模型太平平无奇了....甚至,实际上我在2017年做相关的搜索推荐的时候,并没有看过微软这篇论文,也早就用上深度模型/预先训练/embedding之类的东西了.感觉这些都是是个人都能想到的东西..知识别人没把它总结成论文罢了...

感慨一句,说以前的人机会更多并不是没有道理的,特别是对于普通人来说,以前有些成就是普通人凭借一己之力可以达到的,而后来所需要达成的成就,也许就远远超过一个人的能力,而需要依赖集体或是资本的积累了.马云所谓的年轻人机会更多就是瞎扯淡的....

参考资料

  1. 王喆的《深度学习推荐系统》
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352