查看原文
其他

【综述专栏】从2022年的这几篇论文看推荐系统序列建模的趋势

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

来源:知乎—猫的薛定谔
地址:https://zhuanlan.zhihu.com/p/480216815

最近看了22年几篇顶会的序列建模的文章,模型无不复杂高深,但细细看后,发现这些文章本质上均是输入的变化,模型只为了配合输入。看看最近的顶会是怎么玩的吧。


00

背景

序列建模的目的是从用户的历史行为中挖掘用户的兴趣,进而给用户推荐感兴趣的物品。

先介绍两篇序列建模的经典文章。

第一篇是我认为的开山之作--阿里的DIN,模型结构如下图所示。该论文认为在选择target item时,user behaviors中的item应该具有不同的权重,并采用了target-attention的方式计算权重。DIN的user behavior是一个一维的item序列,emb之后多一个emb维度,希望大家能记住这种输入格式,后面的算法就是在丰富这种格式。

DIN

第二篇是长序列的经典文章--阿里的SIM,模型结构如下图所示。在DIN的基础上,将用户行为序列变长,如果计算资源允许,无脑采用DIN的方式也未尝不可。回到SIM,论文是这么做的:依旧保留短期行为序列,采用DIEN(DIN的一种变体)的方式提取用户短期兴趣;长序列则采用两阶段方法,召回得到topk个item后,再计算target-attention。

SIM

插句题外话,阿里的MIMN已经证明,序列越长,auc越高。


01

玩法一:序列加side info

这是eBay在WSDM2022上的文章

原文:Sequential Modeling with Multiple Attributes for Watchlist Recommendation in E-Commerce

https://arxiv.org/pdf/2110.11072.pdf

之前的序列都只是item的序列,eBay额外加了item的属性,比如价格;这个属性是变化的,例如当价格变动时,用户可能会感兴趣。

因此输入由一维序列变成了2维矩阵,对应的计算attention的方式也变成了2D的--attention2D,模型结构如下图。

attention2D

具体的计算过程:

  1. Embedding Layer -- 输入加了属性信息,是个2D的矩阵;embedding之后多了emb维,shape为    ,N为序列长度,C为属性个数;

  2. 多了个属性维度后,emb如何转变为QKV呢?本文对每种属性(也叫channel) 进行相同的线性变换,即:

Linear2D,i代表item,j代表属性

3. 那2D的QK如何计算attention score呢?本文介绍了3种粒度的计算方式:    是4维数据,代表了第i个item的第j个属性与第i‘个item的第j’个属性的交互,是最细粒度的交互;    是2维数组,对item的所有channel求和,表示的是item维度的交互;    是2维数组,对channel的所有item求和,表示的是channel维度的交互。将这三种score加权求和就是最后的score了(加权系数也是学出来的)。

2D的attention score

4. 到目前为止,计算了attention之后,输出仍有2维,属性维和emb维。降维处理是在prediction layer之前,对属性维进行pooling,将仅剩的emb维松儒mlp。


02

玩法二:序列加宽

这是阿里在WSDM2022上的文章

原文:Triangle Graph Interest Network for Click-throughRate Prediction

https://arxiv.org/pdf/2202.02698.pdf

序列再长也只是这一个用户的序列,这篇论文直接从别的用户的行为中寻找item。用所有用户的行为序列构建一个item图,图上的每个节点都是一个item,item有边代表有用户依次点击过这两个item。

本文首先定义了一个图上的triangle,triangle的定义不是重点,可以把triangle简单的理解为图上的邻居。

triangle

TGIN的模型结构如下图,看着复杂,其实很简单。下图中的红框部分就是一个类似于DIN的计算attention的网络,左边是处理triangle的,有边是计算多阶triangle(理解为图上的多阶邻居)attention的网络。

TGIN

某阶的TriangleNet:每一阶会有多个triangle,每个triangle会有3个item,所以就先内部聚合(intra),简单的avg pooling;再外部聚合(inter),multi-head self-attention。

TriangleNet


03

玩法三:序列分段并加标签

阿里 WSDM 2022

原文:Modeling Users’ Contextualized Page-wise Feedback for Click-Through Rate Prediction in E-commerce Search

https://guyulongcs.github.io/files/WSDM2022_RACP.pdf

序列以page的形似分段,page内不仅有点击poi(正反馈),还有未点击poi(负反馈),捕获页面内的context信息和页面间的兴趣演变。页面信息能学到什么?用户不点击可能不是因为不喜欢,而是页面中有一个同类型但更便宜的。

模型结构如下图。一般像这种两层结构的输入,模型也是有两层,一层提取页内信息(intra),一层聚合页间信息(inter)。这个模型有三层,中间加了一层backtrack层。还有一个细节,page是经过过滤的,将其限制在与当前查询向量同类别的范围内。

RACP

重点解释一下兴趣回溯层,即上图中的绿色部分。一般的模型只注重了长期兴趣与target item的相关性,而忽略了短期兴趣的一致性。具体到这篇论文,短期兴趣指的就是每个page所代表的兴趣。

在这一层引入了一个用户当前兴趣的查询向量    (这是一篇搜索的文章,所以有查询向量),其余的    不再是真正的查询向量,而是attention query vector。attention query vector通过GRU一层一层往左传,影响page内的attention计算。


04

总结

前面介绍了几种序列在输入侧的玩法,

玩法一:加item的属性。这个属性的选择非常有讲究,得是变化的、且用户非常敏感的,比如价钱、比如补贴;不能是那种无关痛痒的属性。

玩法二:加更多的item,不过不是加长,而是通过图(本质是通过其他用户),引入一些用户以前没见过(或没交互过)但可能感兴趣的item;这种加item的方式可以离线完成,可以用一些“高大上”的方法吹牛逼。个人感觉,这种方法有效的本质是学习了更多的共现关系。之前在给user选择poi时,只学习了user自己历史内的poi的共现关系;通过某种合理的方式(如其他用户的历史行为)引入更多共现关系可以拓宽模型的视野。

玩法三:序列分段(分page、分session),混合序列(不仅仅是点击序列),最真实地还原用户做选择的环境,推理用户在段内的点击逻辑,分析用户的选择心理。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存