今天来介绍一篇阿里在WSDM2022上中稿的文章,与之前的用户兴趣建模的论文引入单点用户行为序列不同,本文引入了页面级的用户行为序列,充分建模用户反馈的上下文信息和页面兴趣演化过程。出发点较新颖,一起来研究一下。
1、背景
电商场景下,搜索扮演着十分重要的角色。典型的搜索场景如下图所示,当用户输入搜索关键词后,搜索引擎会选择一堆物品并以翻页( Search Result Page,简称SRP)的形式展现给用户。每当用户翻到页面的底端或者重新输入搜索关键词,搜索引擎会展示新的SRP。在用户最终下单前,通常会浏览多个SRP同时与多个item产生交互行为。为了达到更好的推荐效果,建模用户在这些SRP上的反馈显得十分重要。
传统的用户行为建模,大都建模用户正向的反馈(只使用点击或下单序列),如DIN,DIEN。而在DFN(Deep Feedback Network)中,证明了同时建模用户正向反馈和负向反馈能够取得更好的效果。但是,上述的方法只引入了用户的单点反馈信息,同时将用户的反馈信息拆成单独的队列,忽略了展现在同一SRP上不同item的相互影响以及其他的上下文信息。
那么为了解决上述所提出的问题,将传统的单点行为序列建模升级为页面级用户行为建模,充分建模用户反馈的上下文信息。
那么,这种页面级历史行为的建模核心是什么呢?论文从两方面展开:
1)页面内上下文信息建模(Intra-page context information):用户对item的反馈受相邻展示的item的影响。建模页面的上下文信息能够更好的推测用户的兴趣。一方面,用户的正向反馈是存在一定噪声的,举例来说,如果页面上展示的大部分是同一品牌的item,那么用户的点击行为并不一定能代表用户对该品牌的偏好。另一方面,用户通常会对同一页面上的物品进行相互比较,如果页面上展示了许多不同品牌的item,那么用户的点击行为更能反应用户对该品牌的偏好。 2)页面间用户兴趣演化(Inter-page interest evolution):论文对用户在不同页面上的兴趣演化做出了一定的假设。用户在搜索时的意图和兴趣可以认为是一个逐渐收敛的过程,用户在之前页面中的动态意图可以通过后续页面中的交互进行去噪,因为后续页面中的交互与最终的决策更加相关。这样假设个人感觉是合理的,用户在刚进入搜索时可能只知道想买某一类型的商品,如情人节礼物,但具体买何种礼物不太清楚。随着不断的下刷,不断的对比,用于可能逐渐明确哪种礼物比较适合,意图逐渐清晰(例子可能不太恰当,欢迎一体探讨)。
为了建模上述两方面的信息,论文提出了RACP(Recurrent Attention over Contextualized Page se- quence),通过一种层级结构建模用户的页面级行为反馈。下一节对具体的细节进行介绍。
2、RACP介绍
2.1 整体介绍
如下图所示,RACP的主要结构从下到上主要包含四部分:Embedding Layer, Intra-page Context-aware Interest Layer, Inter-page Interest Backtracking Layer和Page-level Interest Aggregation Layer。接下来对这几部分进行分别介绍。
2.2 Embedding Layer
模型的输入包含以下几方面:
目标item特征:item特征包括item id,品类id,品牌id,店铺id和一些统计特征(点击数和下单数)等等 用户特征和Query特征:用户画像特征包括年龄,性别,购买力等级等。Query特征包含query id,query字符串,分词信息以及预测的query对应的品类id等特征。 用户页面级历史行为SRPs:用户的页面级历史行为序列并非只包含带有正反馈的页面序列,如果一个页面没有用户的反馈,也同样会包含在历史行为中。每一个SRP包含展示的item列表信息,页面对应的query特征等。
这里要注意一点是,用户的页面级行为序列经过特殊处理,即对应页面的query要和当次搜索的query的品类需要相同,从而避免无关的搜索行为对预测产生影响,这相当于SIM中的Hard-Search的方法对历史行为进行过滤。
2.3 Intra-page Context-aware Interest Layer
Intra-page Context-aware Interest Layer主要建模页面内的信息,引入了页面粒度的attention机制。计算过程如下:
pi是最终的页面信息表示,那么公式中的其他符号代表的含义是什么呢?Qi代表的是用户当前页面的意图表示,具体的计算过程在下一节介绍。xi,j代表页面中第j个item的特征,fi,j代表用户对页面中第j个item的反馈特征(点击与否),ci,j代表页面中第j个item对应的上下文信息,论文中给出了5个方面的上下文信息:1)query以及query对应的品类,2)页面中与第j个item相同品类的item的个数,3)页面中与第j个item相同品牌的item的个数,4)页面中与第j个item相同卖家的item的个数,5)第j个item在价格,展示位置,销量等信息上的相对排序。
2.4 Inter-page Interest Backtracking Layer
Inter-page Interest Backtracking Layer主要建模用户的兴趣演进过程,这里比较有意思的点是,与DIEN建模用户兴趣演化不同,这里采用的是兴趣回溯的方式,即从用户的最后一个页面信息,对用户在每个页面上的兴趣进行回溯(Backtracking)。这里采用GRU结构,计算过程如下:
这里使用GRU同时采用回溯的方式,基于我们前文所介绍的假设,即认为用户的兴趣在搜索过程中是一个不断收敛的过程,使用用户在后续页面的交互行为可以推测用户在前面页面的兴趣。上面公式中的符号这里稍作解释,Qt代表用户第t个页面历史行为对应的意图表示,通过GRU计算得到,初始的兴趣表示QT为用户特征,当前搜索特征以及target item特征的拼接,为用户当前的意图表示。pt为第t个页面历史行为的页面向量。
这里个人感觉公式有些混乱,pt应该改为pt 1是更加合理的。
2.5 Page-level Interest Aggregation Layer
经过上面的介绍可以看出,每个页面的表示是通过Intra和Inter两个模块共同得到的,接下来就是类似于DIN的过程,与当前用户意图更相近的页面信息能够对预测产生更大的影响。计算公式如下:
2.6 模型训练
最后,用户特征u,query向量qT,目标item特征xt和加权页面行为表示s进行拼接,输入到MLP层得到点击率预估值,并使用logloss进行训练:
3、实验结果
论文将RACP与许多经典的Baseline方法在两个数据集上进行了对比,均取得了一定程度的提升:
4、总结
在用户行为建模逐渐进入深水区的情况下,论文创新性的引入了页面级的历史行为序列,充分考虑页面中item的相互影响以及页面兴趣的演化过程,具有一定的借鉴意义。不过个人认为还是存在一些值得考虑的问题,首先,CTR预估为单点兴趣预估,无法获取到同一页面中相邻展示的item信息,那么使用页面向量与单一item向量做attention的方式是否合理?这种页面兴趣反馈是否更加适用于重排等阶段?其次,即使对页面行为限定在同一品类的搜索词下,将用户兴趣回溯运用在不同的搜索过程中是否合理?是否可以考虑类似DSIN的方式,用户意图在同次搜索下进行回溯?以上是我个人的一些想法,可能存在不合理的地方,欢迎大家一起交流想法!