推荐系统中的用户兴趣建模(三):跨sessions间的用户兴趣建模网络——DSIN

第三篇介绍电商推荐场景下一个非常有意思的做法,跨sessions间的用户兴趣建模网络——DSIN(IJCAI 2019)
在前面两篇中,无论是DIN还是DIEN还是BST或BERT4REC,建模的主体都是整个用户行为序列,这忽略了序列内在的结构:序列由sessions组成,其中sessions是发生时间内独立的用户行为。paper指出用户行为在每个会话中都是高度同构的,但跨会话是异构的。
如何理解呢?以某用户行为序列为例,如下图所示。用户通常在一个会话中有一个明确的独特意图,而她的兴趣可以急剧变化当她开始一个新的会话时。不同session存在30分钟以上的时间差。这张现象是普遍存在的。基于以上观察,paper提出了深度会话网络模型(DSIN),利用用户的多个历史会话,对CTR预测任务中的用户顺序行为进行建模。
在这里插入图片描述

模型结构

在这里插入图片描述

总体来说,模型依然遵从Embeddings&MLP范式,在数据喂入MLPs之前,有两部工作要做:

  1. 用户画像和物品集合转换为embedding向量
  2. 用户行为四层处理,如下图所示:
    在这里插入图片描述
    分别来看这四个部分

1.sessions划分层

将用户的历史点击行为序列S进行切分:首先将用户的点击行为按照时间排序,判断每两个行为之间的时间间隔,如果前后的时间间隔大于30min,就进行切分。切分后,我们可以将用户的行为序列S转换成会话序列Q。第k个会话 Q_k = [b_1,b_2,…,b_i,…,b_T] , 其中,T是会话的长度, b_i是会话中第i个行为。(分解的方式可以视实际情况,论文中作者是按间隔时间30分钟来分解的)

2.sessions兴趣抽取层

这一层的目的是寻找session内部的行为之间关系,来进一步提取session interest。
前面说到在同一个session中的行为是高度相近的,而用户在当前session下的随意的一些行为会使得session的兴趣表示变得不准确。所以这里对每个会话都使用Transformer中的多头自注意力机制(multi-head self-attention)来抽取用户session的兴趣特征,捕获行为之间内部关系,减少不大相关行为的影响。
对于一般的self-attention,输入的数据要先做position encoding来利用sequence之间的位置关系的。在这里,对于这类position encoding(PE)做出了优化,命名为bias encoding(BE)。过去的PE 对sequence中每个behavior,以及每个behavior对应的embedding vector的每个unit,进行了处理 。 但在BE,我们输入的是多个sessions,所以除了对PE中两个内容进行处理外,还需要对每个session的位置进行处理 所以对于第k个session中,第t个behavior的embedding vector的第c个unit的偏置项BE如下:
在这里插入图片描述
其中第一项为session的bias vector,第二项为behavior的bias vector,第三项为unit的bias vector。添加BE后,用户的行为会话Q更新如下:
在这里插入图片描述

3.sessions兴趣交互层

这一层用于学习不同sessions之间的前后依赖关系。所以用的是RNN系的模型——Bi-LSTM,
Bi-LSTM在捕获顺序关系是很优秀的,这一点思路和DIEN使用GRU是一样的,Bi-LSTM这里不做介绍,我们的输出是前向和后向隐层输出相加:
在这里插入图片描述
在这里插入图片描述

4.sessions兴趣激活层

这一层就是考虑序列和target item的关系,和之前提到的DIN那些模型一样,考虑到与target item更相关的用户的session interests,对于用户是否点击该target item的影响更大,所以这里拿target item和序列做一下激活softmax(和DIEN一样)。
在这里插入图片描述
这里的Query就是target item,Key和Value是一样的,都是序列embedding。这里需要激活的地方有两个,一个是sessions兴趣抽取层后的兴趣embedding和target item做一个激活,也就是重加权
在这里插入图片描述
另一个是sessions兴趣交互层后,考虑了上下文依赖演变关系的兴趣embedding和target item做一个激活,最终这两个concat起来送到后续的MLPs中。
在这里插入图片描述
参考:
1.https://zhuanlan.zhihu.com/p/89700141
2.https://blog.csdn.net/baymax_007/article/details/91130374

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值