“比你还了解你自己”的推荐机制是怎样炼成的?

博文小编

2024-04-12

我们也许都有过这样的经历:

在电商App上购买一款新手机,收货后,再次打开App时发现,首页为你推荐了很多款手机贴膜和手机壳,恰好是在你计划之中,要准备购买的产品。

你近期打算去某个景区游玩,在社交软件上看到了一位旅游博主的游玩攻略,等闲来无事,再次打开软件时,会刷到众多其他游客在该景区的游玩视频。

我们在日常生活中用到的各种App似乎越来越“贴心”了,这是如何做到的?背后又涉及哪些技术呢?

这就不得不提大名鼎鼎的推荐算法,它可以根据用户的历史行为,猜测并推荐与之相关的其他物品给用户,从而大大提升用户体验。在推荐算法中,这被称为“用户行为序列建模技术”,下面我们来详细说说它。

01 行为序列建模的总体架构

用户行为序列(User Behavior Sequence,UBS)建模主要包括特征工程、序列建模和长序列建模。

特征工程是序列建模的基础,主要包括有哪些特征、正反馈和负反馈、短期行为和长期行为,以及全场景建模等方向。

序列建模则包括池化和序列化两种方式,其中池化包括求和(Sum)/最大(Max)/平均(Mean)和基于注意力(Attention)两大类,序列化包括循环神经网络(Recurrent Neural Network,RNN)和Transformer网络两大类。

长序列建模用来捕获用户长期兴趣,可进一步提升序列建模的表达能力和准确性,包括离线法和在线法,后文将详细讲解。用户行为序列建模的知识框架如图1所示。

02 行为序列建模的意义

用户行为序列建模目前已经成为推荐系统的核心优化方向,也是推荐算法工程师的必备技能。

其主要意义如下。

  • 丰富特征工程体系。特征工程是算法模型的基础,特征越丰富越精细,则模型获取的输入信息越多,最终预估也会越精准。用户行为序列可以囊括点击、购买、点赞和收藏等正反馈信息,以及不喜欢和物品曝光未被点击等负反馈信息。它由被行为(例如被点击)的物品ID和属性特征组成,例如物品的品牌ID、卖家ID和价格等。另外,行为序列既可以包括用户的短期行为,也可以包括长期行为。用户行为序列是推荐系统特征工程的重要组成部分,可以极大地丰富特征工程体系。

  • 获得更立体的信息。与很多其他特征只是一个标量不同,行为序列可以被理解为一个向量,其信息更为立体。例如,用户近7天的购买商品数,可以通过其近7天的购买行为序列推导出来。更重要的是,通过行为序列,可以清楚地知道用户在哪几天购买了什么卖家、什么品牌的商品,其信息更为立体。同时,购买行为距离当前的远近代表了用户的活跃度,普通标量特征难以对其进行精准表达,行为序列则可以。

  • 表达用户兴趣演化过程。用户的兴趣迁移有一定的内在逻辑,例如,用户购买了手机,通常会继续购买手机壳和贴膜等。通过用户行为序列,可以清晰地观测到这一变化过程,有利于捕获用户兴趣演化过程,从而更精准地预估其下一次购买行为。

  • 捕捉用户实时兴趣。用户的点击和购买等行为代表了其较强的兴趣倾向。在用户点击了某件商品后,实时推荐与之相关的其他商品通常能取得不错的效果。更重要的是,用户的兴趣转瞬即逝,而且随时可能退出App,因此捕获用户实时兴趣,并做出精准推荐很重要。通过提升行为序列特征的实时性,有助于实现这一目标。

03 行为序列建模的基本范式

行为序列建模主要包括短序列建模和长序列建模。短序列建模主要有池化和序列化两种方案。

  • 池化。分为求和/最大/平均池化和注意力池化两大类。求和/最大/平均池化直接将行为序列特征向量,通过累加、求最大值和求平均等方法进行压缩,典型代表就是YouTubeDNN模型。该方法简单、计算速度快,但缺少了与候选物品的特征交叉,无法做到“千物千面”,同时没有考虑不同行为的重要性差异。以DIN为代表的注意力池化,则先计算各历史行为与候选物品的相关性权重,然后将它们加权求和。通过这种方式,可以有效克服求和/最大/平均池化的上述缺点。


图3 求和池化建模行为序列


图4 DIN:注意力池化建模行为序列

  • 序列化。其本质思想是通过序列模型对用户行为和兴趣的演化过程进行建模,与NLP文本序列有一定的共通之处,主要分为循环神经网络和Transformer网络两大类。DIEN通过GRU网络(RNN的一种实现)建立了行为序列层、兴趣抽取层和兴趣进化层,从而对用户行为之间的关联和演化过程进行建模。BST和DSIN等模型则利用Transformer网络来实现序列建模,从而解决GRU的长程梯度衰减和无法并行计算等问题。


图5 DIEN:GRU循环神经网络建模行为序列


图6 BST:Transformer建模行为序列

Transformer基于强大的抽取能力和并行计算能力,成为目前序列建模的事实标准,并成为短序列建模的主流方向。长序列建模则在短序列建模的基础上,进一步探索用户更长期的兴趣,其难点在于巨大的计算和存储消耗,以及由此导致的线上推理延迟。


图7 提升行为序列长度对提升模型AUC十分重要!

长序列建模方法包括离线法和在线法。

  • 离线法。提前将长周期行为序列离线建模,当遇到在线请求时直接调用,可以显著减少模型耗时,这就是离线法的核心思想。其典型代表是MIMN模型,它以独特的UIC工程模块设计、NTM神经图灵机和MIU记忆归纳单元,打响了工业界长序列建模的“第一枪”。离线法实现简单,但无法与候选物品进行特征交叉,难以做到“千物千面”。


图8 MIMN:离线法建模长序列

  • 在线法。针对离线法的缺点,在线法利用两阶段范式对长序列进行建模。先从用户长周期序列中快速筛选出与候选物品相关的历史行为,再对得到的短序列进行建模,与推荐系统先召回后排序的思想一脉相承。在线法的重点为如何快速而准确地筛选历史行为。SIM模型通过候选物品的类目进行硬检索(Hard-search),同时构建了一个辅助模型进行软检索(Soft-search)。ETA则利用SimHash和海明距离进一步加快了筛选速度,从而在线构建Top K近邻索引,保证两阶段的一致性。


图9 SIM:在线法建模长序列


图10 ETA:在线法,索引也实现了在线化

04 行为序列建模的主要难点

用户行为序列建模是推荐系统中落地难度较大的方向,其主要难点如下。

  • 实时性要求高。与其他静态和统计类特征(例如用户年龄和性别)不同,行为序列特征
  • 对实时性的要求非常高。由于用户行为密集且瞬息万变,能否快速捕获其行为和兴趣
  • 直接关系到行为序列建模的成败。行为序列特征通常需要达到秒级实时,其他特征则达
  • 到小时级实时即可。这为特征工程体系带来了极大的挑战.

  • 存储和计算消耗大。特别是长周期行为序列,其体积往往能占到所有特征的80%,同时,随着序列长度增加,计算复杂度至少呈线性增加,给线上推理耗时带来了极大的挑战。这一问题是贯穿长周期行为序列建模始终的核心难点。

  • 用户兴趣多样且易变。用户可能对多个品类的物品都有一定的兴趣,且经常变化,同时用户点击等行为有一定的随机性,带来了较大的噪声,这给精准刻画用户兴趣带来了很大挑战。DIN通过计算候选物品和各历史行为的相关性,为用户各行为赋予一定权重,有利于抽取集中兴趣,并能起到过滤噪声的作用。

05 行为序列特征工程

行为序列建模要解决的首要问题就是有哪些行为序列,也就是行为序列特征工程。

作为模型的输入,行为序列特征工程是序列建模的基础,可以从有哪些特征、正反馈和负反馈、短期行为和长期行为,以及全场景建模四个方向进行丰富和完善。

一条序列中可以包括哪些特征呢?

一般来说,肯定会包括被行为(如被点击)的物品ID。为了提升泛化能力,还可以加入物品的各项属性特征,例如物品的品牌ID、卖家ID、类目ID和价格等。

还可以加入一些环境特征,例如该行为距离当前的时间。

这些特征分别经过Embedding转换,被拼接为一个向量,然后和其他所有历史行为拼接起来,形成一个长向量。为了加快模型收敛,通常会让序列中的这些特征共享主模型中对应特征的Embedding向量。

通过用户行为可以构建点击、购买、点赞和收藏等行为序列,这些行为序列表达了用户喜欢什么,属于正反馈。还可以构建用户不喜欢和物品曝光未被点击等负反馈序列,表达用户不喜欢什么。需要注意的是,曝光未被点击行为通常密集,序列很长,而且充满了噪声,给建模带来很大挑战。

从时间周期上看,可以分为Session内行为序列、短期行为序列和长期行为序列三种。Session内行为兴趣集中,而长期行为兴趣多样性强。同时对三者建模,可以捕获不同时间跨度下用户的兴趣分布,有利于提升模型表达能力。

全场景建模也很重要,既可以构建用户在推荐场景中的行为序列,也可以构建用户在搜索等场景中的行为序列,从而获取用户完整的兴趣变化过程。更进一步,如果能挖掘兄弟App,甚至竞争对手App上的用户行为,就更好了。

推荐算法是目前各大公司的核心技术,其中行为序列建模又是关键所在,掌握其技术体系和核心细节十分重要。但行为序列建模也是推荐算法中较为复杂的部分,难度较大。

《精通推荐算法:核心模块+经典模型+代码详解》正是在这样的背景下出版的。第五章中会对行为序列建模进行大篇幅重点讲解,包括总体技术架构、DIN、DIEN、BST、DSIN、MIMN、SIM和ETA等序列建模经典模型,让读者能深入浅出领会行为序列建模的重点和难点,以及如何解决这些难点问题。

↑限时五折优惠↑

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5437 739 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3302 36 0 1
  • czk 2017-07-29
    5874 28 0 1