CTR 预测理论(二十四):推荐系统中序列(Sequence)与会话(Session)区别

时间:2024-03-25 20:07:25

18-19 年出现了很多建模用户行为序列的文章,代表论文有 DIN、DIEN、DSEN和BST(Behavior Sequence Transformer),其中 DIN、DIEN、BST 旨在建模用户行为序列,DSEN 则进一步深入到会话(Session)层次。本博文旨在对序列建模中遇到的 Sequence 和 Session 做分析介绍。

1. Sequence 和 Session 区别

结论: Session 和 Sequence 本质上都是由 user behaviors 组成,Session 只是根据一定时间规则对 sequence 进行划分的结果(一个 sequence 由 k 个 session 组成 )。

2. 划分 Session 原因

将 Sequence 进一步细化到 Session 原因: 同一 Session 内部用户行为高度相关(同构),不同 Session 间用户行为差异比较大(异构)。

如下图,将用户的点击行为按照时间排序,判断每两个行为之间的时间间隔,前后的时间间隔大于 30min(DSEN论文所取时间,可修改),就进行切分。可以看到,第一个session中,用户查看的都是跟裤子相关的物品,第二个session中,查看的是戒指相关的物品,第三个则是上衣相关。从中可以观察到用户的行为在每一个session中行为是高度相近的(同构),在不同session间行为是差别较大的(异构)。

CTR 预测理论(二十四):推荐系统中序列(Sequence)与会话(Session)区别
这说明用户在同一个 session 下对购买商品有一个明确的、单独的需求,但是一旦开启一个新的 session ,用户的兴趣将会发生很大的变化。正是基于该观察,阿里提出 Deep Session Interest Network(DSIN)尝试更细致建模用户历史行为中的 Session 信息。

3. 如何划分会话(Session)

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