《深度学习推荐算法》——第三章3

3.7.3 NFM—FM 的神经网络化尝试

  在 2.5 节介绍 FM 的局限性时笔者曾经谈到:⽆论是 FM, 还是其改进模型FFM 归根结底是⼀个⼆阶特征交叉的模型受组合爆炸问题的困扰,FM ⼏乎不可能扩展到三阶以上,这就不可避免地限制了 FM 模型的表达能力。那么,有没有可能利用深度神经网络更强的表达能力改进 FM 模型呢?2017 年,新加坡国⽴大学的研究⼈员进⾏了这⽅⾯的尝试,提出了 NFM_模型。
  经典 FM 的数学形式已经由( 式 3-10)给出,在数学形式上,NFM 模型的主要思路是用⼀个表达能力更强的函数替代原 FM 中⼆阶隐向量内积的部分( 如图 3-20所示 )
在这里插入图片描述
  如果用传统机器学习的思路来设计 NFM 模型中的函数f(x), 那么势必会通过⼀系列的数学推导构造⼀个表达能力更强的函数。但进⼈深度学习时代后,由于深度学习网络理论上有拟合任何复杂函数的能力,f(x)的构造⼯作可以交由某个深度学习网络来完成,并通过梯度反向传播来学习。在 NFM 模型中,用以替代 FM ⼆阶部分的神经网络结构如图 3-21所示。
在这里插入图片描述
在这里插入图片描述
始的 Wide&Deep 模型,NFM 模型对其 Deep 部分加⼈了特征交叉池化层,加强了特征交叉。这是理解 NFM 模型的另⼀个⻆度。

3.7.4 基于 FM 的深度学习模型的优点和局限性

  本节介绍了 FNN、DeepFM 、NFM 三个结合 FM 思路的深度学习模型。它们的特点都是在经典多层神经网络的基础上加⼈有针对性的特征交叉操作让模型具备更强的非线性表达能力
  沿着特征⼯程⾃动化的思路,深度学习模型从 PNN ⼀路⾛来,经过了Wide&Deep、 Deep&Cross、 FNN 、DeepFM、 NFM 等模型,进⾏了大量的、基于不同特征互操作思路的尝试。但特征⼯程的思路⾛到这⾥⼏乎已经穷尽了可能的尝试,模型进⼀步提升的空间非常⼩,这也是这类模型的局限性所在。
  从这之后,越来越多的深度学习推荐模型开始探索更多“ 结构” 上的尝试,诸如注意力机制、序列模型、强化学习在其他领域大放异彩的模型结构也逐渐进⼊推荐系统领域,并且在推荐模型的效果提升上成果显著

3.8 注意力机制在推荐模型中的应用

  “ 注意力机制” 来源于⼈类最⾃然的选择性注意的习惯。最典型的例⼦是用户在浏览网⻚时,会选择性地注意⻚⾯的特定区域,忽视其他区域。图 3-22 是⾕歌搜索引擎对大量用户进⾏眼球追踪实验后得出的⻚⾯注意力热度图。可以看出,用户对⻚⾯不同区域的注意力分布的区别非常大。正是基于这样的现象,在建模过程中考虑注意力机制对预测结果的影响,往往会取得不错的收益。
  近年来,注意力机制广泛应用于深度学习的各个领域,⽆论是在⾃然语⾔处理、语⾳识别还是计算机视觉领域,注意力模型都取得了巨大的成功。从 2017年开始,推荐领域也开始尝试将注意力机制引⼊模型之中,这其中影响力较大的⼯作是由浙江大学提出的 AFM[11]和由阿⾥巴巴提出的 DIN[12]。
在这里插入图片描述

3.8.1 AFM—引⼊注意力机制的 FM

  AFM 模型可以被认为是 3.7 节介绍的 NFM 模型的延续。在 NFM 模型中,不同域的特征 Embedding 向量经过特征交叉池化层的交叉,将各交叉特征向量进⾏“ 加和”,输⼈最后由多层神经网络组成的输出层。问题的关键在于加和池化( Sum Pooling ) 操作,它相当于 “ ⼀视同仁” 地对待所有交叉特征,不考虑不同特征对结果的影响程度,事实上消解了大量有价值的信息。
  这⾥ “ 注意力机制” 就派上了用场,它基于假设——不同的交叉特征对于结果的影响程度不同,以更直观的业务场景为例,用户对不同交叉特征的关注程度应是不同的。举例来说,如果应用场景是预测⼀位男性用户是否购买⼀款键盘的可能性,那么“ 性别=男且购买历史包含⿏标” 这⼀交叉特征,很可能⽐“ 性别=男且用户年龄=30” 这⼀交叉特征更重要,模型投⼊了更多的 “ 注意力” 在前⾯的特征上。正因如此,将注意力机制与 NFM 模型结合就显得理所应当了。
  具体地说,AFM 模型引⼊注意力机制是通过在特征交叉层和最终的输出层之间加⼊注意力网络 (Attention Net )实现的。AFM 的模型结构图如图 3-23所示,注意力网络的作用是为每⼀个交叉特征提供权重,也就是注意力得分。
在这里插入图片描述
在这里插入图片描述

3.8.2 DIN—引⼊注意力机制的深度学习网络

  相⽐于之前很多“ 学术⻛” 的深度学习模型,阿⾥巴巴提出的 DIN 模型显然更具业务⽓息。它的应用场景是阿⾥巴巴的电商广告推荐,因此在计算⼀个用户是否点击⼀个广告 a 时,模型的输⼈特征⾃然分为两大部分:⼀部分是用户 u的特征组(如图 3-24中的用户特征组所示 ),另⼀部分是候选广告 a 的特征组( 如图 3-24中的广告特征组所示 )。⽆论是用户还是广告,都含有两个非常重要的特征**’ 商品 id(good_id )和商铺 id(shop_id )。 用户特征⾥的商品 id 是⼀个序列,代表用户曾经点击过的商品集合**,商铺 id 同理;⽽广告特征⾥的商品 id 和商铺id 就是广告对应的商品 id 和商铺 id (阿⾥巴巴平台上的广告大部分是参与推广计划的商品)。
  在原来的基础模型中( 图 3-24 中的 Base 模型 ),用户特征组中的商品序列和商铺序列经过简单的平均池化操作后就进⼈上层神经网络进⾏下⼀步训练,序列中的商品既没有区分重要程度,也和广告特征中的商品 id 没有关系
  然⽽事实上,广告特征和用户特征的关联程度是非常强的,还以 3.7节介绍的案例来说明这个问题。假设广告中的商品是键盘,用户的点击商品序列中有⼏个不同的商品 id 分别是⿏标、T 恤和洗⾯奶。从常识出发,“ ⿏标” 这个历史商品 id 对预测 “ 键盘” 广告的点击率的重要程度应大于后两者。从模型的⻆度来说,在建模过程中投给不同特征的“ 注意力” 理应有所不同,⽽且“ 注意力得分” 的计算理应与广告特征有相关性
在这里插入图片描述
  将上述“ 注意⼒” 的思想反映到模型中也是直观的。利⽤候选商品和历史⾏为商品之间的相关性计算出⼀个权重,这个权重就代表了“ 注意⼒” 的强弱,加⼈了注意⼒权重的深度学习⽹络就是 DIN 模型,其中注意⼒部分的形式化表达如( 式 3-16)所示。
在这里插入图片描述
在这里插入图片描述
  可以看出 , 激活单元的输⼊层是两个 Embedding 向 量 , 经过元素减(element-wise minus )操作后,与原 Embedding 向量⼀同连接后形成全连接层的输⼈,最后通过单神经元输出层⽣成注意⼒得分。
  如果留意图 3-24中的红线,可以发现商铺 id 只跟⽤户历史⾏为中的商铺 id序列发⽣作⽤商品 id 只跟⽤户的商品 id 序列发⽣作⽤,因为注意⼒的轻重更应该由同类信息的相关性决定。
  DIN 模型与基于 FM 的 AFM 模型相⽐,是⼀次更典型的改进深度学习⽹络的尝试,⽽且由于出发点是具体的业务场景,也给了推荐⼯程师更多实质性的启发。

3.8.3 注意⼒机制对推荐系统的启发

  注意⼒机制在数学形式上只是将过去的平均操作或加和操作换成了加权和或者加权平均操作。这⼀机制对深度学习推荐系统的启发重⼤的。因为“ 注意⼒得分” 的引⼊反映了⼈类天⽣的“ 注意⼒机制” 特点。对这⼀机制的模拟,使得推荐系统更加接近⽤户真实的思考过程,从⽽达到提升推荐效果的⽬的。从“ 注意⼒机制” 开始,越来越多对深度学习模型结构的改进是基于对⽤户⾏为的深刻观察⽽得出的。相⽐学术界更加关注理论上的创新,业界的推荐⼯程师更需要基于对业务的理解推进推荐模型的演化

3.9 DIEN——序列模型与推荐系统的结合

  阿⾥巴巴提出 DIN 模型之后,并没有停⽌其推荐模型演化的进程,⽽是于2019年正式提出了 DIN 模型的演化版本——DIEN[13]。模型的应⽤场景和 DIN 完全⼀致,本节不再赘述,其创新在于⽤序列模型模拟了⽤户兴趣的进化过程。下⾯对 DIEN 的主要思路和兴趣演化部分的设计进⾏详细介绍。

3.9.1 DIEN 的“ 进化” 动机

  ⽆论是电商购买⾏为,还是视频⽹站的观看⾏为,或是新闻应⽤的阅读⾏为,特定⽤户的历史⾏为都是⼀个随时间排序的序列。既然是时间相关的序列,就⼀定存在或深或浅的前后依赖关系,这样的序列信息对于推荐过程⽆疑是有价值的。但本章之前介绍的所有模型,有没有利⽤到这层序列信息呢?答案是否定的。即使是引⼊了注意⼒机制的 AFM 或 DIN 模型,也仅是对不同⾏为的重要性进⾏打分,这样的得分是时间⽆关的,是序列⽆关的。

  那么,为什么说序列信息对推荐来说是有价值的呢?⼀个典型的电商⽤户的⾏为现象可以说明这⼀点。对于⼀个综合电商来说,⽤户兴趣的迁移其实⾮常快,例如,上周⼀位⽤户在挑选⼀双篮球鞋,这位⽤户上周的⾏为序列都会集中在篮球鞋这个品类的商品上,但在他完成购买后,本周他的购物兴趣可能变成实⼀个机械键盘。序列信息的重要性在于:
  (1 )它加强了最近⾏为对下次⾏为预测的影响。在这个例⼦中,⽤户近期购买机械键盘的概率会明显⾼于再买⼀双篮球鞋或购买其他商品的概率。
  (2)序列模型能够学习到购买趋势的信息。在这个例⼦中,序列模型能够在⼀定程度上建⽴ “ 篮球鞋” 到 “ 机械键盘” 的转移概率。如果这个转移概率在全局统计意义上是⾜够⾼的,那么在⽤户购买篮球鞋时,推荐机械键盘也会成为⼀个不错的选项。直观上,⼆者的⽤户群体很有可能是⼀致的
  如果放弃序列信息,则模型学习时间和趋势这类信息的能⼒就不会那么强,推荐模型就仍然是基于⽤户所有购买历史的综合推荐,⽽不是针对“ 下⼀次购买”推荐。显然,从业务的⻆度看,后者才是推荐系统正确的推荐⽬标
3.9. 2 DIEN 模型的架构
  基于引进 “ 序列” 信息的动机,阿⾥巴巴对 DIN 模型进⾏了改进,形成了DIEN 模型的结构。如图 3-25 所示,模型仍是输⼊层+Embedding 层+连接层+多层全连接神经⽹络+输出层的整体架构。图中彩⾊的 “ 兴趣进化⽹络” 被认为是⼀种⽤户兴趣的 Embedding ⽅法,它最终的输出是这个⽤户兴趣向量。DIEN模型的创新点在于如何构建“ 兴趣进化⽹络”。
在这里插入图片描述
  兴趣进化⽹络分为三层,从下⾄上依次是:
  (1 )⾏为序列层( Behavior Layer , 浅绿⾊部分):其主要作⽤是把原始的 id类⾏为序列转换成 Embedding ⾏为序列
  ( 2)兴趣抽取层( Interest Extractor Layer , ⽶⻩⾊部分):其主要作⽤是通过模拟⽤户兴趣迁移过程,抽取⽤户兴趣
  ( 3)兴趣进化层( Interest Evolving Layer , 浅红⾊部分):其主要作⽤是通过在兴趣抽取层基础上加⼈注意⼒机制模拟与当前⽬标⼴告相关的兴趣进化过程
  在兴趣进化⽹络中,⾏为序列层的结构与普通的 Embedding 层是⼀致的,模拟⽤户兴趣进化的关键在于“ 兴趣抽取层” 和 “ 兴趣进化层”

3.9.3 兴趣抽取层的结构

  兴趣抽取层的基本结构是 GRU ( Gated Recurrent Unit, ⻔循环单元)⽹络。相⽐传统的序列模型 RNN ( Recurrent Neural Network , 循环神经⽹络)和 LSTM( Long Short-Term Memory , ⻓短期记忆⽹络 ),GRU 解决了 RNN 的梯度消失问题(Vanishing Gradients Problem )。与 LSTM 相⽐,GRU 的参数数量更少,训练收敛速度更快,因此成了 DIEN 序列模型的选择。
在这里插入图片描述

3.9.4 兴趣进化层的结构

  DIEN 兴趣进化层相⽐兴趣抽取层最⼤的特点是加⼈了注意⼒机制。这⼀特点与 DIN 的⼀脉相承。从图 3-25 中的注意⼒单元的连接⽅式可以看出,兴趣进化层注意⼒得分的⽣成过程与 DIN 完全⼀致,都是当前状态向量与⽬标⼴告向量进⾏互作⽤的结果。也就是说,DIEN 在模拟兴趣进化的过程中,需要考虑与⽬标⼴告的相关性
  这也回答了 3.9.3 节的问题,在兴趣抽取层之上再加上兴趣进化层就是为了更有针对性地模拟与⽬标⼴告相关的兴趣进化路径。由于阿⾥巴巴这类综合电商的特点,⽤户⾮常有可能同时购买多品类商品,例如在购买“ 机械键盘” 的同时还在查看“ ⾐服” 品类下的商品,那么这时注意⼒机制就显得格外重要了。当⽬标⼴告是某个电⼦产品时,⽤户购买“ 机械键盘” 相关的兴趣演化路径显然⽐购买 “ ⾐服” 的演化路径重要,这样的筛选功能兴趣抽取层没有。
  兴趣进化层完成注意⼒机制的引⼊是通过 AUGRU ( GRU with AttentionalUpdate gate,基于注意⼒更新⻔的 GRU )结构,AUGRU 在原GRU 的更新⻔( update gate )的结构上加⼊了注意⼒得分,具体形式如(式 3-18)所示。
在这里插入图片描述

3.9.5 序列模型对推荐系统的启发

  本节介绍了阿⾥巴巴融合了序列模型的推荐模型 DIEN。由于序列模型具备强⼤的时间序列的表达能⼒,使其⾮常适合预估⽤户经过⼀系列⾏为后的下⼀次动作
  事实上,不仅阿⾥巴巴在电商模型上成功运⽤了序列模型,YouTube、Netflix等视频流媒体公司也已经成功的在其视频推荐模型中应⽤了序列模型,⽤于预测⽤户的下次观看⾏为( next watch )。
  但在⼯程实现上需要注意:序列模型⽐较⾼的训练复杂度,以及在线上推断过程中的串⾏推断,使其在模型服务过程中延迟较⼤,这⽆疑增⼤了其上线的难度,需要在⼯程上着重优化。关于序列模型⼯程化的经验,将在第 8章介绍。

3.10 强化学习与推荐系统的结合

  强化学习( ReinforcementLearning )是近年来机器学习领域⾮常热⻔的研究话题,它的研究起源于机器⼈领域,针对智能体( Agent ) 在不断变化的环境( Environment )中决策和学习的过程进⾏建模。在智能体的学习过程中,会完成收集外部反馈( Reward ),改变⾃身状态( State ),再根据⾃身状态对下⼀步的⾏动( Action )进⾏决策在⾏动之后持续收集反馈的循环简称“ ⾏动-反馈-状态更新” 的循环
  “ 智能体” 的概念⾮常容易让⼈联想到机器⼈,整个强化学习的过程可以放到机器⼈学习⼈类动作的场景下理解。如果把推荐系统也当作⼀个智能体把整个推荐系统学习更新的过程当作智能体“ ⾏动-反馈-状态更新” 的循环,就能理解将强化学习的诸多理念应⽤于推荐系统领域并不是⼀件困难的事情。
  2018 年,由宾夕法尼亚州⽴⼤学和微软亚洲研究院的学者提出的推荐领域的强化学习模型 DRN[141, 就是⼀次将强化学习应⽤于新闻推荐系统的尝试。

3.10.1 深度强化学习推荐系统框架

  深度强化学习推荐系统框架是基于强化学习的经典过程提出的,读者可以借推荐系统的具体场景进⼀步熟悉强化学习中的智能体环境状态⾏动反馈等概念。如图 3-26 所示,框架图⾮常清晰地展示了深度强化学习推荐系统框架的各个组成部分,以及整个强化学习的迭代过程。具体地讲,其中各要素在推荐系统场景下的具体解释如下。
在这里插入图片描述

  智能体:推荐系统本身,它包括基于深度学习的推荐模型、探索( explore )策略,以及相关的数据存储( memory )。
  环境:由新闻⽹站或 App、⽤户组成的整个推荐系统外部环境。在环境中,⽤户接收推荐的结果并做出相应反馈
  ⾏动:对⼀个新闻推荐系统来说,“ ⾏动” 指的就是推荐系统进⾏新闻排序后推送给⽤户的动作
  反馈:⽤户收到推荐结果后,进⾏正向的或负向的反馈。例如,点击⾏为被认为是⼀个典型的正反馈,曝光未点击则是负反馈的信号。此外,⽤户的活跃程度,⽤户打开应⽤的间隔时间也被认为是有价值的反馈信号。
  状态:状态指的是对环境及⾃身当前所处具体情况的刻画。在新闻推荐场景中,状态可以被看作已收到所有⾏动和反馈,以及⽤户和新闻的所有相关信息的特征向量表示。站在传统机器学习的⻆度,“ 状态” 可以被看作已收到的、可⽤于训练的所有数据的集合

  在这样的强化学习框架下,模型的学习过程可以不断地迭代,迭代过程主要有如下⼏步:
  (1)初始化推荐系统( 智能体 )。
  (2)推荐系统基于当前已收集的数据( 状态)进⾏新闻排序( ⾏动 ),并推送到⽹站或 App ( 环境 )中
  (3)⽤户收到推荐列表,点击或者忽略(反馈 )某推荐结果。
  (4)推荐系统收到反馈,更新当前状态或通过模型训练更新模型。
  (5)重复第 2步。
  读者可能已经意识到,强化学习相⽐传统深度模型的优势就在于强化学习模型能够进⾏“在线学习”,不断利⽤新学到的知识更新⾃⼰ ,及时做出调整和反馈。这也正是将强化学习应⽤于推荐系统的收益所在。

3.10.2 深度强化学习推荐模型

  智能体部分是强化学习框架的核⼼,对推荐系统这⼀智能体来说,推荐模型是推荐系统的“ ⼤脑”。在 DRN 框架中,扮演“ ⼤脑” ⻆⾊的是 Deep Q-Network( 深度 Q ⽹络,简称 DQN ),其中 Q 是 Quality 的简称,指通过对⾏动进⾏质量评估,得到⾏动的效⽤得分,以此进⾏⾏动决策
  DQN 的⽹络结构如图 3-27所示,在特征⼯程中套⽤强化学习状态向量和⾏动向量的概念把⽤户特征( user features )和环境特征( context features )归为状态向量,因为它们与具体的⾏动⽆关;把⽤户——新闻交叉特征和新闻特征归为⾏动特征,因为其与推荐新闻这⼀⾏动相关。
在这里插入图片描述
在这里插入图片描述

3.10.3 DRN 的学习过程

  DRN 的学习过程是整个强化学习推荐系统框架的重点,正是由于可以在线更新,才使得强化学习模型相⽐其他“ 静态” 深度学习模型有了更多实时性上的优势。图 3-28以时间轴的形式形象地描绘了 DRN 的学习过程。
在这里插入图片描述

3.10.4 DRN 的在线学习方法——竞争梯度下降算法

  DRN 的在线学习⽅法——竞争梯度下降算法的流程如图 3-29所示。
在这里插入图片描述
在这里插入图片描述

3.10.5 强化学习对推荐系统的启发

  强化学习在推荐系统中的应⽤可以说⼜⼀次扩展了推荐模型的建模思路。它与之前提到的其他深度学习模型的不同之处在于变静态为动态,把模型学习的实时性提到了⼀个空前重要的位置
  它也给我们提出了⼀个值得思考的问题——到底是应该打造⼀个重量级的、“ 完美” 的,但训练延迟很⼤的模型;还是应该打造⼀个轻巧的、简单的,但能够实时训练的模型。当然,⼯程上的事情没有假设,更没有猜想,只通过实际效果说话,“ 重量” 与 “ 实时” 之间也绝⾮对⽴关系,但在最终决定⼀个技术⽅案之前,这样的思考是⾮常必要的,也是值得花时间去验证的。

3.11 总结——推荐系统的深度学习时代

  本章梳理了主流的深度学习推荐模型的相关知识,与章⾸的深度学习模型进化图呼应。本节对深度学习推荐模型的关键知识进⾏总结( 如表 3-2所示 )。
在这里插入图片描述
在这里插入图片描述
  ⾯对如此多可选的深度学习推荐模型,读者不迷失其中的前提是熟悉每个模型之间的关系及其适⽤场景。需要明确的是,在深度学习时代,没有⼀个特定的模型能够胜任所有业务场景,从表 3-2中也能看岀每种模型的特点各不相同。
  正因如此,本章并没有列出任何模型的性能测试,因为不同数据集 、不同应⽤场景、不同评估⽅法和评估指标,不可能形成权威的测试结果。在实际的应⽤过程中,还需要推荐⼯程师针对⾃⼰的业务数据,经过充分的调参、对⽐,选择最适合的深度学习推荐模型。
  深度学习推荐模型从没有停下它前进的脚步。从阿⾥巴巴的多模态、多⽬标的深度学习模型,到 YouTube 基于 session 的推荐系统,再到 Airbnb 使⽤ Embedding技术构建的搜索推荐模型,深度学习推荐模型不仅进化速度越来越快,⽽且应⽤场景也越来越⼴。在之后的章节中,笔者会从不同的⻆度岀发,介绍深度学习模型在推荐系统中的应⽤,也希望读者能够在本章的知识架构之上,跟踪最新的深度学习推荐模型进展。

参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值