AI上推荐 之 AFM与DIN模型(当推荐系统遇上了注意力机制)

1. 前言

随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:

  • 信息消费者:如何从大量的信息中找到自己感兴趣的信息?
  • 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注?

为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协同过滤,矩阵分解,LR, FM, FFM, GBDT)到深度学习的浪潮之巅(DNN, Deep Crossing, DIN, DIEN, Wide&Deep, Deep&Cross, DeepFM, AFM, NFM, PNN, FNN, DRN), 现在正无时无刻不影响着大众的生活。

推荐系统通过分析用户的历史行为给用户的兴趣建模, 从而主动给用户推荐给能够满足他们兴趣和需求的信息, 能够真正的“懂你”。 想上网购物的时候, 推荐系统在帮我们挑选商品, 想看资讯的时候, 推荐系统为我们准备了感兴趣的新闻, 想学习充电的时候, 推荐系统为我们提供最合适的课程, 想消遣放松的时候, 推荐系统为我们奉上欲罢不能的短视频…, 所以当我们淹没在信息的海洋时, 推荐系统正在拨开一层层波浪, 为我们追寻多姿多彩的生活!

这段时间刚好开始学习推荐系统, 通过王喆老师的《深度学习推荐系统》已经梳理好了知识体系, 了解了当前推荐系统领域各种主流的模型架构和技术。 所以接下来的时间就开始对这棵大树开枝散叶,对每一块知识点进行学习总结。 所以接下来一块目睹推荐系统的风采吧!

这次整理重点放在推荐系统的模型方面, 前面已经把传统的推荐模型梳理完毕, 下面正式进入深度学习的浪潮之巅。在2016年, 随着微软的Deep Crossing, 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出, 推挤系统和计算广告领域全面进入了深度学习时代, 时至今日, 依然是主流。 在进入深度学习时代, 推荐模型主要有下面两个进展:

  1. 与传统的机器学习模型相比, 深度学习模型的表达能力更强, 能够挖掘更多数据中隐藏的模式
  2. 深度学习模型结构非常灵活, 能够根据业务场景和数据特点, 灵活调整模型结构, 使模型与应用场景完美契合

所以, 后面开始尝试整理深度学习推荐模型,它们以多层感知机(MLP)为核心, 通过改变神经网络结构进行演化,它们的演化关系依然拿书上的一张图片, 便于梳理关系脉络, 对知识有个宏观的把握:

AI上推荐 之 AFM与DIN模型(当推荐系统遇上了注意力机制)
今天是深度学习模型的第五篇,这篇文章会介绍两个带有注意力机制神经网络的两个模型, 一个是FM的增强变体AFM(Attentional Factorization Machines), 这个其实算是NFM的一个延伸,在NFM的特征交叉层与池化层中间加了一个注意力网络, 为低阶特征交互特征根据其对预测结果的不同影响程度加上了注意力权重以更加符合实际的推荐场景, 本来想把AFM和FM的那几个哥们放一块,但是感觉那样上一篇篇幅太长了,所以就放到了注意力这部分, 算是承上启下吧, 毕竟从AFM开始, 大佬们不再仅仅局限于特征交互了,而是探索更新的一些结构,与时俱进了嘛。 第二个模型是来自于阿里的知名推荐模型DIN(Deep Interest Network),这个模型基于业务观察的模型改进, 相比较与学术派的深度模型,这个模型更加有业务气息, 当然也是加入了Attention机制, 所以今天整理一下Attention的这两个模型了。

"Attention Mechanism"这个词现在已经不是新东西了,它来源于人类自然的选择注意习惯, 最典型的例子就是我们观察一些物体或者浏览网页时,不会聚焦于整个物体或者页面,而是会选择性的注意某些特定区域,忽视一些区域,往往会把注意力放到某些显眼的地方。 如果在建模过程中考虑到注意力机制对预测结果的影响,往往效果会更好。 近年来,注意力机制在各个领域大放异彩,比如NLP,CV等, 2017年开始,推荐领域也开始尝试将注意力机制加入模型, 就比如今天的这俩哥们, 和前面的逻辑一样, 首先对这两个模型的原理和结构进行描述,然后使用pytorch进行复现进一步加深细节上的理解。

这篇文章的篇幅很长(破4万字了),也是第一次写这么长貌似,因为DIN模型非常之重要(面试常考),所以这里花了点时间看了一些细节,也用了大量篇幅进行整理,包括理论和复现的相关细节,所以依然还是基于大纲,各取所需即可

上一篇:召回模型


下一篇:GNN教程:采样模型GraphSage理解(工业上图模型的雏形)