推荐系统之DIEN模型原理

bdqnwqk2个月前问题11

本文要介绍的是由阿里巴巴团队于2019年提出的DIEN模型,此模型是该团队此前提出的DIN的演化版本。DIEN的应用场景和DIN一模一样,其创新之处在于使用了序列模型来模拟用户兴趣的进化过程。DIN模型直接将用户历史行为数据当成用户的兴趣特征,但是正如我们所知,用户潜在的兴趣很难通过显式的历史行为数据直观反映出来。DIEN正是瞄准了这个难点,深入挖掘历史行为数据背后隐藏的用户兴趣特征,并且捕捉用户兴趣的进化过程。

无论是电商购买行为,还是视频网站的观看行为,或者是新闻应用的阅读行为,特定用户的历史行为都是一个随着时间排序的序列。既然是时间相关的序列,就一定存在或深或浅的前后依赖关系,这样的序列信息对于推荐过程无疑是有价值的。举例来说明这一点,对于一个综合电商来说,用户兴趣的迁移其实非常快。例如,上周以为用户在挑选篮球鞋,这位用户上周的行为序列可能都集中在篮球鞋这个品类的商品上,但在他完成购买之后,本周他的购物兴趣可能会变成买一个机械键盘。序列信息的重要性在于:

如果放弃序列信息,则模型学习时间和趋势这类信息的能力就不会那么强,推荐模型就仍然是基于用户所有购买历史的综合推荐,而不是针对“下一次购买”推荐。显然,从业务的角度来看,后者才是推荐系统正确的推荐目标。

基于引进“序列”信息的动机,阿里巴巴对DIN模型进行了改进,形成了DIEN模型的结构。DIEN模型依旧遵循传统的Embedding层+聚合层+多层全连接神经网络+输出层的结构。DIEN模型整体框架如下图:

后两层才是DIEN比较关键的创新,我们着重分析一下这两层的构造。

在电商系统中,用户的行为数据往往蕴含着用户的兴趣爱好,这些兴趣也会随着用户的购买行为而发生变化,兴趣提取层的目的就是从用户的行为序列中提取出一系列的兴趣状态。
为了平衡效率和性能,作者选择了GRU(Gated Recurrent Unit,门循环单元)网络来对用户行为之间的依赖进行建模。相比传统的RNN和LSTM,GRU能够克服RNN梯度消失的问题,同时比LSTM网络具有更少的参数,训练收敛速度更快,更加适合电商系统。GRU的结构如下:

由于内部和外部环境的影响,用户的兴趣是在不断变化的。以买衣服为例,随着时下流行和用户口味的变化,用户对衣服的品位也会随之变化。用户对衣服偏好的变化会直接影响到对候选衣服的CTR预估。当然,随着用户兴趣的进化,兴趣也可能会发生偏移。举个例子,用户可能在一段时间内喜欢买书,而在另外一段时间内喜欢买衣服。尽管兴趣之间是会互相影响的,但是每个兴趣爱好都有各自的进化历程,并且基本都是独立的。比如,关于书和衣服的品位的变化就基本是独立的。我们在做CTR的时候,只需要关注与目标物品相关的兴趣进化过程。
在兴趣进化层的第一阶段,作者引入了注意力机制,来计算每个GRU的隐状态 与目标广告之间的权重关系,也叫做注意力分数。具体计算公式如下:

待补充