前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超长序列推荐:如何让推荐系统“读懂”你的“人生轨迹”

超长序列推荐:如何让推荐系统“读懂”你的“人生轨迹”

作者头像
秋枫学习笔记
发布2023-12-13 14:41:16
2990
发布2023-12-13 14:41:16
举报
文章被收录于专栏:秋枫学习笔记秋枫学习笔记

© 作者|张高玮

机构|中国人民大学

研究方向|推荐系统

一、引言

随着电商平台数据的不断积累,每个用户都会积累大量的历史行为数据,形成一个超级长的行为序列。超长序列推荐的问题应运而生,其研究在用户行为序列非常长的情况下,如何利用这些历史数据来预测用户的兴趣并进行推荐。这种情况在许多领域中都很常见,比如基因组学、金融和自然语言处理。然而,传统的推荐系统往往难以处理这些超长序列。因此,研究人员们近年来一直在探索各种方法来解决这个问题。本文聚焦于方法层面,将相关工作分为两类进行介绍:基于记忆增强网络的方法和基于检索的方法。

二、研究背景

推荐系统的一个核心目标是用户建模,它通过学习每个用户的历史行为数据或其他辅助信息来分析每个用户。然而随着互联网的不断发展,电商平台积累了越来越多的用户,每个用户也从注册起积累了大量的行为数据。一般来说,用户行为数据有三个特征。首先,不同用户由于不同的活跃度或注册时间会拥有不同的行为序列长度,正如图1左图所示。其次,随着序列长度增加,用户兴趣品味可能会发生剧烈的变化。最后,用户的行为历史中存在着长期依赖性。用户早期的一些行为可能会对用户兴趣建模产生关键作用。如图1的右图所示,早期(长度<200)行为也有很大可能会影响用户的最终决策。

图1: Alibaba2018年4-9月的用户行为数据统计

因此如何从用户超长行为序列中建模用户兴趣品味的变化,并捕获行为序列中存在的长期依赖性是如今推荐系统中亟需解决的问题,这也就是超长序列推荐要解决的问题。从方法层面来说,如今超长序列推荐的相关工作大致可以分为两类:基于记忆增强网络的方法和基于检索的方法,下面将进行详细介绍。

三、基于记忆增强网络的方法

记忆增强网络最初用于自然语言处理(NLP)任务,其将提取的知识显式地存入外部记忆当中。外部记忆可以看作是一个非常大的数组,其中的每个元素用来记忆某个特定信息。其具有读取和写入两个基本操作,用以实时更新。而在超长序列推荐场景中,提取的知识一般是用户兴趣表示,模型在建模过程中根据用户行为记录对其进行读取和更新。本节将具体介绍几篇该类型的代表文章:RUM, KSR, MIMN。

1. Sequential Recommendation with User Memory Networks (RUM, WSDM 2018)

图2: RUM模型架构

RUM通过一个记忆矩阵M来增强用户表示。具体来说,用户嵌入由两部分组成:内在嵌入和记忆嵌入。内在嵌入不受用户交互历史影响,一般是指id embedding;记忆嵌入通过读取记忆矩阵M来获取,在读取时通过计算每个记忆向量与目标商品的相似度来进行聚合,读取完成后会对M进行更新。RUM可以分别在商品层级和特征层级进行增强。当在商品层级增强时,M存储的是用户最近交互的D个商品的embedding,采取先进先出的方式进行更新;当在特征层级进行增强时,模型借助神经图灵机的思想,利用擦除向量和更新向量进行记忆的更新。RUM模型的目标是解决传统的推荐系统只考虑用户最近行为的缺点,将商品显式地存储,在推荐时细粒度地给予不同历史交互不同的关注度。

2. Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks (KSR, SIGIR 2018)

图3: KSR模型架构

类似于RUM在特征层级进行的增强,KSR通过引入知识库来在特征层级进行表示增强。如图3所示,记忆网络采用键值对的形式 (KV-MN) 进行构建。假设所有商品具有相同的属性,例如商品都有标题,价格等属性。此时记忆网络可以表示为Key矩阵和Value矩阵,其中Key代表属性,在所有商品间共享,可以预处理;Value代表属性的值,不同用户具有不同的Value,即用户对某个属性具有个性化偏好。KSR采用GRU作为基线模型,在每个时刻t将GRU的隐向量作为记忆网络的查询向量,实现对Key的寻址,进而完成Value的聚合实现记忆读取操作:

而每当收到一个新的交互时,记忆网络需要进行更新:

更新方式参考知识图谱中的TRANSE方式,将商品的实体表示分解到各个属性()层级进行更新。

3. Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction (MIMN, KDD 2019)

图4: MIMN模型架构

如图4所示,整个网络右侧是传统的embedding+MLP的经典CTR结构,左侧是详细展开的用户长期兴趣建模网络,类似于RUM和KSR,同样是通过神经图灵机的记忆网络来实现显式的记忆存储,结合GRU实现对用户兴趣的捕获。记忆网络通过控制器生成擦除向量和更新向量来完成整个网络的更新。此外,MIMN引入了记忆网络的正则化来提高记忆网络的利用率。一般来说,记忆网络的元素利用率很低。例如某个商品在经过计算后,第一个记忆单元的权重值很大,则第一个记忆单元进行大幅度更新;而如果该商品比较热门,则该记忆单元会频繁更新,但其他元素却几乎没有更新,导致网络利用率极低。因此MIMN在记忆更新时对于写权重引入正则化,正则化的结果如图5所示,可以看到记忆单元的利用率变得更加均衡。

图5: MIMN正则化前后结果对比

四、基于检索的方法

除了显式存储用户兴趣以外,工业界还有一种简单有效的方法来实现超长序列推荐,即基于检索的方法。对于一般的CTR模型,在建模用户行为序列时,通过计算目标商品与序列中商品的注意力来实现对序列所有商品的聚合。而在该类方法中,模型通过目标商品对用户的整个长期序列进行检索,用检索出的更短的行为序列来作为长期序列的代表,实现超长序列的压缩。由于在推荐时序列进行了压缩,因此序列建模效率得到了大大提高。但相应地如何设计高效准确的检索算法成为了该类方法的关键。本节将具体介绍几篇该类型的代表文章:SIM, ETA, SDIM。

1. Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction (SIM, CIKM 2020)

图6: SIM模型结构

如图6所示,SIM采用两级检索来对用户超长行为序列进行建模:首先利用目标商品将超长序列降维至百量级,再借助target attention与目标商品交互完成建模。

第一阶段:GSU,该阶段用于离线选择topK个重要商品组成较短序列。具体来说,给定用户行为序列(序列总长度T是一个较大的数) 。GSU单元会根据目标商品对序列中每个行为计算相关性分数,其中是目标商品,和分别代表行为和商品所属的类别。

具体的策略有两种:hard-search和soft-search。hard-search会将所有与目标商品同类别的商品检索出来形成一个更短的子序列,不需要任何参数,类似于结构化属性倒排索引;soft-search计算目标商品的嵌入与超长序列中每个商品的内积,通过向量内积检索topK个商品形成更短的子序列。论文的实验表明,hard-search虽然方案简单,但其检索结果与soft-search高度重合,证明了其有效性。

第二阶段:ESU,该阶段用于对筛选后的序列进行兴趣建模。由于筛选序列中的商品来自各个不同的时间段,因此模型记录每个商品与目标商品的时间差信息,与商品嵌入信息结合起来进行兴趣建模。

2. End-to-End User Behavior Retrieval in Click-Through Rate Prediction Model (ETA, arxiv 2021)

ETA整体上也是先检索再交互的逻辑,但无需建立离线索引,实现了端到端建模,如图所示:

图7: ETA模型架构

其创新之处在于利用Locality-sensitive SimHash (LSH) 来实现高效检索,而无需离线建立索引。LSH是一种高维向量快速检索K近邻的方法,示意图如下所示:

图8: LSH示意图

具体来说,ETA选用只有两个hash桶的hash函数,每个原始向量hash映射后的结果是0或1的二进制位。假设x和y都只有两个投影维度,那么每次hash操作可以看作图中的一次旋转。图中以4个hash函数为例,在进行多次hash后得到一个4位二进制编码。两个向量x和y在原始向量空间中越接近,hash后二进制编码重合的位数就越多。此时x和y的相似性计算可以用两个二进制编码的汉明距离度量,实现高效检索。由于LSH算法不涉及任何可训练参数,随着embedding部分的训练和更新,对应的hash结果也会更新,保障模型一致性,从而实现端到端训练和更新。

3. Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction (SDIM, CIKM 2022)

SDIM沿着ETA采用的SimHash思路更进一步,将hash transform与sample-based attention进行结合,用来代替topK检索和target attention的过程,如下图所示:

图9: SDIM模型结构

其首先也采用SimHash的方法,随机使用m个hash函数将商品转化为二进制编码,图中m取值为4. 之后作者将m-bit的二进制编码每隔个位置分隔成组,再将具有相同分组的商品进行聚合 (相加、L2正则),如此便将行为序列存储成若干个桶,而针对目标商品即可利用查表操作来代替target attention。具体来说,将目标商品经过SimHash后的二进制编码也拆分成个组别,对于每个组别去提取对应桶的聚合向量,经过简单的池化即完成了用户兴趣的提取。举例来说,图中示例,黄色方块为一个组别,绿色方块为一个组别。分别为序列中的两个商品,对应的编码分别为[1,-1,1,-1]和[-1,-1,1,-1],二者的第一组编码不同,被分到不同的桶中;二者的第二组编码相同([1,-1]),被分到相同的桶中。图中的目标商品二进制编码为[-1,-1,-1,-1],拆分成黄色和绿色两个组别后分别进行查表操作即可。

总体来说,SDIM由于没有检索过程,并且用查表操作代替attention过程,实现了更加高效的计算,计算速度上非常接近仅使用短期序列的DIN。

五、总结与讨论

总结来说,超长序列推荐是一个重要的研究领域,在近年来得到了广泛的关注。基于记忆增强网络的方法和基于检索的方法是解决超长序列推荐问题的两种主要途径。基于记忆增强网络的方法虽然能够有效建模行为序列中的长期依赖关系,但是网络结构通常非常复杂,并且需要较高的计算复杂度和额外的存储,难以部署在实际系统当中;而基于检索的方法通常更加简洁高效,可以拓展到极长的序列长度,便于在实际系统当中部署,但是由于近邻检索压缩的特性,不可避免地会带来一定的信息损失。因此如何在二者之间进行权衡,利用彼此的优点,仍是值得思考与研究的问题。

更多推荐

交流群:点击“联系作者”--备注“研究方向-公司或学校” 欢迎|论文宣传|合作交流 往期推荐 LLM时代如何提升自己 ControlRec:对齐LLM和推荐系统之间的语义差异 UHGEval:无约束生成下的中文大模型幻觉评估 GDCN:Deeper, Lighter, Interpretable的CTR预测网络

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 交流群:点击“联系作者”--备注“研究方向-公司或学校” 欢迎|论文宣传|合作交流 往期推荐 LLM时代如何提升自己 ControlRec:对齐LLM和推荐系统之间的语义差异 UHGEval:无约束生成下的中文大模型幻觉评估 GDCN:Deeper, Lighter, Interpretable的CTR预测网络
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档