推荐系统中的"忘不了"

2020 年 5 月 19 日 AINLP


今天聊聊一个优秀的推荐系统应具备的重要能力--记忆力。


你是否有过这样的经历:上午搜索了夏威夷果,下午刷虎扑就刷到坚果大礼包的广告;昨天点击了火影忍者十大忍术的帖子,今天首页就推荐了四代火影和宇智波鼬谁厉害的分析贴。。。仿佛有人偷窥你的生活,记住了你的一言一行,只能感慨下互联网时代真是毫无隐私啊。


其实一个推荐系统要做到记忆用户行为,根据其历史行为做出更好的推荐,是有很多环节或者说方法要考虑的。比如 session、id mapping、模型等等多个方面。模型而言,大家熟知的 RNN,LSTM,GRU等等都是比较流行的基础算法。上述模型的缺点也很明显,就是对输入数据要求高、计算复杂度高、在线性能开销大阿里和百度都有一些工作来解决这个问题,从而能够在线上使用具有记忆能力的模型。今天介绍的是阿里工作:Click-Through Rate Prediction with the User Memory Network。文章的主角就是 memory augmented DNN (MA-DNN)。


以点击预估模型为例,MA-DNN出发点很简单,就是为了解决传统 DNN 没有记忆能力、而 GRU等模型性能又不行的问题。我们简单回顾下几个模型的对比情况。图1-a 中的结构是传统的 DNN 结构,其训练数据如图2-a 所示,只要把每一条 ins 依次(shuffle 后往往更好)输入即可,模型没有记忆能力。

图1-b 中则是一个典型的 GRU 时序模型,具有记忆能力,但是对训练数据的要求很高如图2-b 所示。需要将用户的点击序列提前处理好后再输入给模型。

并且该模型过于复杂,需要存储计算多个 时刻GRU 模块,基本无法用于线上。MA-DNN 提出在 DNN 的基础上增加一个记忆存储向量,从而使得 DNN 具有记忆能力。


MA-DNN 的结构如下图所示,左边是我添加变量注释的模型结构,右边是模型核心的计算步骤。模型结构很简单,左半边是 DNN ,右半边是2个记忆模块mu1和 mu0, 分别代表着用户的点击(喜欢)记忆特征和不点击(不喜欢)记忆特征。预测的时候,对于一个 userid,查询其 mu1/mu0值,然后拼接到原来的 embedding X 上得到最终的底层特征向量输入给 DNN 预估即可。


模型训练的时候,和预估类似,也是查询 userid 的mu1/mu0后进行前向计算得到 loss1和 loss2。然后 loss1 和 loss2分别进行反向传播更新各自的参数。这里要注意,loss1不影响 mu1/mu0的更新,loss2也不影响左侧 FC layer 的参数更新。loss1就是点击率模型常用的 cross-entropy,loss2则是 mu1/mu0分别拟合 ZL 的结果。当 ins 的 label 是0时,则只和 mu0有关,ins 的 label 是1时,则只和 mu1有关。所以mu1/mu0两个向量特征分别刻画着 click/non-click 或者说 like/dislike 的语义。MA-DNN 就是利用这样一个简单的结构来实现对 userid 维度进行历史行为的记忆。


虽然文章脉络写的很好,想要营造一种" MA-DNN 只在 DNN 基础上稍加改进便实现了 GRU 的能力"。但是实际上,MA-DNN 和 GRU 并无太大关系,也不可能完全实现其记忆能力。MA-DNN 更像是 在传统的 embedding 大法上增加了一个长期的有时间顺序的 feature embedding。不过模型的设计确实简洁高效,用起来工作量也不大,值得在广告和推荐场景下尝试一下。下面是一些实际场景应用时需要考虑的点,应具体问题具体分析,不可盲目套用。

  • 用户漂移是否严重,历史行为是否多,历史窗口时长选择

  • 能否应用到user以外的历史行为类id

  • 扩展到其他含义 label,不仅仅点击和不点击

  • 运用到双塔模型结构中效果是否鲁棒


以上是今天的分享笔记~


推荐阅读

AINLP年度阅读收藏清单

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

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

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

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

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

这门斯坦福大学自然语言处理经典入门课,我放到B站了

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

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


登录查看更多
1

相关内容

【SIGIR 2020】 基于协同注意力机制的知识增强推荐模型
专知会员服务
88+阅读 · 2020年7月23日
近期必读的6篇顶会WWW2020【推荐系统】相关论文-Part3
专知会员服务
57+阅读 · 2020年4月14日
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
68+阅读 · 2020年4月7日
专知会员服务
85+阅读 · 2020年1月20日
六篇 CIKM 2019 必读的【图神经网络(GNN)】长文论文
专知会员服务
37+阅读 · 2019年11月3日
【推荐系统/计算广告/机器学习/CTR预估资料汇总】
专知会员服务
86+阅读 · 2019年10月21日
推荐召回算法之深度召回模型串讲
AINLP
22+阅读 · 2019年6月14日
深度 | 推荐系统如何冷启动?
AI100
17+阅读 · 2019年4月7日
深度 | 推荐系统评估
AI100
24+阅读 · 2019年3月16日
推荐系统
炼数成金订阅号
28+阅读 · 2019年1月17日
推荐系统中的矩阵分解技术
AINLP
9+阅读 · 2018年12月24日
如何将知识图谱特征学习应用到推荐系统?
微软研究院AI头条
7+阅读 · 2018年6月5日
深度学习在推荐系统上的应用
AI研习社
7+阅读 · 2018年1月24日
深度学习时代的推荐系统
大数据技术
8+阅读 · 2018年1月6日
如何成为一名推荐系统工程师
机器学习研究会
9+阅读 · 2017年11月20日
Arxiv
21+阅读 · 2019年8月21日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
10+阅读 · 2019年2月19日
Learning Recommender Systems from Multi-Behavior Data
Arxiv
6+阅读 · 2018年5月18日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
5+阅读 · 2017年11月13日
VIP会员
相关VIP内容
【SIGIR 2020】 基于协同注意力机制的知识增强推荐模型
专知会员服务
88+阅读 · 2020年7月23日
近期必读的6篇顶会WWW2020【推荐系统】相关论文-Part3
专知会员服务
57+阅读 · 2020年4月14日
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
68+阅读 · 2020年4月7日
专知会员服务
85+阅读 · 2020年1月20日
六篇 CIKM 2019 必读的【图神经网络(GNN)】长文论文
专知会员服务
37+阅读 · 2019年11月3日
【推荐系统/计算广告/机器学习/CTR预估资料汇总】
专知会员服务
86+阅读 · 2019年10月21日
相关资讯
推荐召回算法之深度召回模型串讲
AINLP
22+阅读 · 2019年6月14日
深度 | 推荐系统如何冷启动?
AI100
17+阅读 · 2019年4月7日
深度 | 推荐系统评估
AI100
24+阅读 · 2019年3月16日
推荐系统
炼数成金订阅号
28+阅读 · 2019年1月17日
推荐系统中的矩阵分解技术
AINLP
9+阅读 · 2018年12月24日
如何将知识图谱特征学习应用到推荐系统?
微软研究院AI头条
7+阅读 · 2018年6月5日
深度学习在推荐系统上的应用
AI研习社
7+阅读 · 2018年1月24日
深度学习时代的推荐系统
大数据技术
8+阅读 · 2018年1月6日
如何成为一名推荐系统工程师
机器学习研究会
9+阅读 · 2017年11月20日
相关论文
Arxiv
21+阅读 · 2019年8月21日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
10+阅读 · 2019年2月19日
Learning Recommender Systems from Multi-Behavior Data
Arxiv
6+阅读 · 2018年5月18日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
5+阅读 · 2017年11月13日
Top
微信扫码咨询专知VIP会员