聊一下 Wide & Deep

2020 年 10 月 29 日 AINLP

更多NLP文章在这里:
https://github.com/DA-southampton/NLP_ability
谈到WDL,一个经常看到的总结是:Wide and Deep 模型融合 wide 模型的记忆能力和 Deep 模型的泛化能力,进行两个模型的联合训练,从而兼顾推荐的准确性和多样性。
理解上面这句话,还是要先弄清楚:什么是记忆能力,什么是泛化能力?

1. 什么是记忆能力与泛化能力

1.1记忆能力

我们先说记忆能力,从中文的角度理解,记忆能力就是之前做过的事情,在后面做同样的事的时候会利用到之前的经验和教训。
进一步,记忆能力就是对之前学习到的经验或者说规律的遵守。
原论文是这么说的:
Memorization can be loosely defined as learning the frequent co-occurrence of items or features and exploiting the correlation available in the historical data.
从这段话可以看出来记忆能力分为两个部分:
  1. 从历史数据中学习共现的物体/特征组合--->这就对应到上面谈到的经验规律
  2. 在预测的时候利用到这种学习到的这种相关性--->这就对应到上面谈到的对经验的遵守。
在这里,我想提一下,在第一点中提到的 “学习共现的物体/特征组合” 的主体是谁?
最开始我认为是模型,后来认为不是。
因为LR模型属于广义线性模型,本身不具备对特征之间非线性关系进行建模。
所以需要我们从历史数据中找到有用的特征组合(当然我们也可以使用一些工具来找到哪些特征组合是有效的),人为的加入到模型中,给LR模型增添非线性建模能力。
简单来说,记忆能力是一种共现规律,表现方式为特征交叉,它需要人为或者通过工具从历史数据中找到,并放入到模型中作为新的特征,从而增加非线性建模能力。
记忆能力过强会出现一个问题,就是推荐物体的单一化。
原文是这么说的:
Recommendations based on memorization are usually more topical and directly relevant to the items on which users have already performed actions.

1.2泛化能力

对于泛化能力,原论文是这么说的:
Generalization, on the other hand, is based on transitivity of correlation and explores new feature combinations that have never or rarely occurred in the past.
关键词是: 从未或者很少出现的特征组合
神经网络无需人为构建组合特征,有着自动做特征组合的方式。可以通过对类别特征做embedding,这样就是在测试集中出现在训练集中没有出现过的特征组合方式,也可以使用embedding进行计算得到对应的值。
综合来说,LR模型有着更强的记忆能力,Deep模型有着更强的泛化能力。

2.模型架构图

整个模型分为三个部分,左边的Wide模型,右边的Deep模型,最后输出的Softmax/sigmoid函数。
Wide使用的是LR模型,这里需要注意的点是LR的输入特征包含两部分:
  1. 原始特征
  2. 特征交叉之后的特征(特征交叉之前各自特征需要one-hot)
Deep模型使用的是前馈神经网络,会对类别特征做embedding,连续特征不动直接输入就好(需要提前做好特征工程)。
联合训练,Wide使用FTRL算法进行优化,Deep模型使用AdaGrad进行优化。
在实际中,Wide和Deep部分直接使用一个优化器就可以。

3.实践

3.1 实践架构
这个是原论文中的架构图,我们自己在实践的时候不一定完全遵守。比如架构图中Wide部分只是使用了交叉特征,我们在使用的时候可以把原始的离散特征或者打散后的连续特征加过来。
3.2 多模态特征的加入
有些时候对于用户或者待推荐的物体会有Text和Image,为了增加效果,可能会使用到多模态特征。
(是否需要加入多模态特征需要大家亲自试,很有可能吭哧吭哧写了好久代码调试通了,最后发现效果提升不多甚至还会降低,哭了)
我这里给几个简单的思路。
  1. Text 和 Image 的 embedding 向量,采用 和Wide模型一样的方式加入到整体模型中就可以了。至于 两者的Embedding向量如何获取,就看你自己了。
  2. Text和Image之间使用attention之后再加入
  3. Text和Image 和Deep 模型的输出拼接之后再做一次处理
  4. 多看 Paper-给个关键词: Multimodal Fusion
3.3 特征工程小记录
在详细写一个特征工程的文章,写完之后会放出来。

后记

读完整个论文,让我去回顾整个模型,给我这样一个感觉:
对于隐藏在历史数据中的共现特征关系,Deep模型是可以学习到的。但是WDL模型做的是,把其中的一部分(容易观察出来或者通过其他工具找出来的特征组合)放到LR这边,从而显式的加入到模型中。
往极端的方面想一下,LR模型这边更像是一种规则,是对Deep模型输出的补充。


由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入广告/推荐技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注推荐or广告技术

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
4

相关内容

首篇「课程学习(Curriculum Learning)」2021综述论文
专知会员服务
48+阅读 · 2021年1月31日
MIT最新《贝叶斯深度学习》综述论文,37页pdf
专知会员服务
49+阅读 · 2021年1月4日
Transformer模型-深度学习自然语言处理,17页ppt
专知会员服务
98+阅读 · 2020年8月30日
可解释强化学习,Explainable Reinforcement Learning: A Survey
专知会员服务
128+阅读 · 2020年5月14日
深度学习搜索,Exploring Deep Learning for Search
专知会员服务
57+阅读 · 2020年5月9日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
144+阅读 · 2019年10月12日
初学者系列:推荐系统Wide & Deep Learning详解
深度学习详解
人工智能学家
5+阅读 · 2019年4月25日
从Seq2seq到Attention模型到Self Attention(二)
量化投资与机器学习
22+阅读 · 2018年10月9日
深度学习面试100题(第76-80题)
七月在线实验室
6+阅读 · 2018年8月3日
深度学习面试100题(第71-75题)
七月在线实验室
5+阅读 · 2018年8月2日
CTR预估专栏 | 一文搞懂DeepFM的理论与实践
AI前线
13+阅读 · 2018年7月6日
DNN在搜索场景中的应用
机器学习算法与Python学习
8+阅读 · 2018年6月7日
为什么大家都不戳破深度学习的本质?
36大数据
4+阅读 · 2017年12月7日
LibRec 每周算法:DeepFM
LibRec智能推荐
14+阅读 · 2017年11月6日
LibRec 每周算法:Wide & Deep (by Google)
LibRec智能推荐
9+阅读 · 2017年10月25日
A Survey on Bayesian Deep Learning
Arxiv
60+阅读 · 2020年7月2日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Deep Learning for Generic Object Detection: A Survey
Arxiv
13+阅读 · 2018年9月6日
LARNN: Linear Attention Recurrent Neural Network
Arxiv
5+阅读 · 2018年8月16日
Arxiv
3+阅读 · 2018年3月27日
VIP会员
相关VIP内容
相关资讯
初学者系列:推荐系统Wide & Deep Learning详解
深度学习详解
人工智能学家
5+阅读 · 2019年4月25日
从Seq2seq到Attention模型到Self Attention(二)
量化投资与机器学习
22+阅读 · 2018年10月9日
深度学习面试100题(第76-80题)
七月在线实验室
6+阅读 · 2018年8月3日
深度学习面试100题(第71-75题)
七月在线实验室
5+阅读 · 2018年8月2日
CTR预估专栏 | 一文搞懂DeepFM的理论与实践
AI前线
13+阅读 · 2018年7月6日
DNN在搜索场景中的应用
机器学习算法与Python学习
8+阅读 · 2018年6月7日
为什么大家都不戳破深度学习的本质?
36大数据
4+阅读 · 2017年12月7日
LibRec 每周算法:DeepFM
LibRec智能推荐
14+阅读 · 2017年11月6日
LibRec 每周算法:Wide & Deep (by Google)
LibRec智能推荐
9+阅读 · 2017年10月25日
相关论文
A Survey on Bayesian Deep Learning
Arxiv
60+阅读 · 2020年7月2日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Deep Learning for Generic Object Detection: A Survey
Arxiv
13+阅读 · 2018年9月6日
LARNN: Linear Attention Recurrent Neural Network
Arxiv
5+阅读 · 2018年8月16日
Arxiv
3+阅读 · 2018年3月27日
Top
微信扫码咨询专知VIP会员