Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >推荐系统中的常用算法——序列深度匹配SDM

推荐系统中的常用算法——序列深度匹配SDM

作者头像
felixzhao
发布于 2022-03-04 10:09:06
发布于 2022-03-04 10:09:06
2.3K0
举报
文章被收录于专栏:null的专栏null的专栏

1. 概述

推荐系统中的算法通过用户的历史行为数据挖掘用户的偏好,实现对用户偏好的建模,从而达到为用户推荐用户感兴趣的item。用户的兴趣偏好通常是多变的,而且是多样的。然而传统的基于item的协同过滤模型只能考虑用户的静态兴趣,而不能捕获用户的兴趣偏好的动态变化。

序列深度匹配(Sequential Deep Match,SDM)模型是在特定场景下提出的用于对用户动态兴趣偏好建模的算法。SDM模型应用于淘宝的场景中,在淘宝的场景中,用户的行为主要分为两种,第一个是当前的浏览Session,用户在一个Session中,需求往往是十分明确的。另一个是之前的历史行为,一个用户虽然可能不是每次都来买球鞋,但是也可能提供一定的有用信息。因此需要分别对这两种行为序列建模,从而刻画用户的兴趣。

综上,序列深度匹配SDM通过组合用户短期Session和长期行为捕获用户的动态兴趣偏好,实现对用户兴趣的建模。

2. 算法原理

序列深度匹配SDM的模型结构如下图所示:

其中,对于用户u ,通过对长期行为Lu ,得到向量pu ,对短期行为Su 建模得到向量sut ,并通过fusion gate策略将两部分组合在一起,从而得到向量 ,该向量便是用户的兴趣向量。

假设 为item的embedding向量,其中 为item的总数, 为embedding的维数。目标是在 时刻预测top N的候选集,候选集是基于 和每个物品对应的向量 计算匹配分数,并根据分数高低进行召回,分数的计算方法为:

2.1. 长短期Session的划分

对于用户行为序列的划分,文章中给出了按照session的划分规则:

  • 具有同样的Session ID的记录为同一个Session;
  • Session ID不同,但是相邻的行为间隔小于10min,算同一个Session;
  • Session的最大长度为50,超过50的划分到新的Session。

基于上述的Session划分规则,用户 最近一个Session的行为被认为是短期行为,表示为:

其中, 为序列的长度,而用户的长期行为序列为 之前的7天的行为,记为

2.2. item和user的Embedding表示

在构建item的embedding时,不仅考虑到ID特征,同时还包括了leaf category,first level category,brand和shop等side information,最终item的向量表示为

同样的,用户也有对应的属性,如age,gender,life stage。最终user的向量表示为

2.3. 短期行为建模

短期行为建模的整体过程如下图所示:

短期行为是用户在最近的一个Session里的行为。短期行为建模分为三个部分,分别为LSTM建模,Multi-head Self-Attention建模和User Attention。

2.3.1. LSTM

在将物品转换为Embedding向量后,首先通过LSTM来进行建模,LSTM的建模过程如下图所示:

对于给定的的用户短期行为序列 ,通过LSTM建模的结果为:

其中, 分别表示输入门,遗忘门和输出门。 表示的是LSTM在 时刻隐藏层的输出。

2.3.2. Multi-head Self-Attention

在经过LSTM对短期行为序列建模后,得到所有隐含层的输出

。接下来,使用Multi-head Self-Attention对此行为序列建模,目的是能够捕获到用户多种类型的兴趣。Multi-head Self-Attention的建模过程如下所示:

假设Multi-head Self-Attention建模后的结果为 ,则 可以表示为: 其中, 表示head的个数, 。对于每一个 表示 每一个兴趣,其计算方法为: 其中, 分别表示上图中的Q,K,V。令 ,则 为: 其中,

2.3.3. User Attention

对于不同的用户,即使短期的行为序列是一样的,也可能会存在不同的兴趣偏好,为了能够更精准的挖掘用户偏好,使用Attention机制计算不同用户兴趣的偏好,Attention机制如下图所示:

对于用户的多种兴趣 ,通过与用户向量 计算 时刻的兴趣偏好向量

其中

2.4. 长期行为建模

对于长期行为序列,文章中提出从不同角度来刻画用户的兴趣,比如品牌,类别等。因此把长期行为中的所有物品对应的属性集合 划分为不同的子集合,如ID子集合 、leaf category子集合

,first level category子集合 ,shop子集合 、brand子集合 。下图展示了长期行为的建模过程:

通过AttnNet计算在每个子集合上的向量

其中,

最终,将 concat在一起输入到全连接网络中,得到长期兴趣 ,其中

2.5. 兴趣融合

为了将长短期兴趣向量组合在一起,文中借鉴了LSTM中的门的概念,对短期兴趣向量和长期兴趣向量进行一个加权,过程如下:

2.6. 总结

序列深度匹配SDM通过组合用户短期Session和长期行为捕获用户的动态兴趣偏好,实现对用户兴趣的建模,完整的模型结构如下图所示:

在短期兴趣建模过程中,使用LSTM,Multi-head Self-attention和User Attention建模,在长期兴趣建模过程中,使用User Attention对子集合建模,最终通过gate函数融合长短期兴趣。

3. 疑问

在本文中短期兴趣建模的过程中,作者先用LSTM建模,作者给出的理由是在之前的基于Session的推荐中,效果较好;后面使用Multi-head Self-attention建模,是为了构建用户的多个兴趣维度。这里Multi-head Self-attention也可以直接对序列建模,不知道为什么需要在这里同时使用LSTM+Multi-head Self-attention。这一点在文中并没有给出具体解释。

参考文献

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2019最新进展 | Transformer在深度推荐系统中的应用
。意思是如果序列长度超过n,则使用最近n个行为。如果不足n,则从左侧做padding直到长度为n。
AI科技大本营
2019/12/23
1.9K0
2019最新进展 | Transformer在深度推荐系统中的应用
推荐系统中的常用算法——行为序列Transformer(BST)
Behavior Sequence Transformer(BST)算法是由阿里在2019年提出的算法,应用于淘宝推荐中的ranking阶段。在目前的推荐系统中,主流的深度学习方案,如WDL,并没有充分利用用户的行为序列(User’s Behavior Sequence),在BST算法中,利用Transformer充分挖掘用户的行为序列,实现对用户行为序列的建模。
felixzhao
2022/03/04
5.8K0
推荐系统中的常用算法——行为序列Transformer(BST)
推荐系统(二十一)DIN系列——DIN、DIEN、DSIN深度兴趣网络总结
本文为阿里DIN系列方法的简单总结,这里将会总结DIN系列文章的创新之处,以及相应的方法。DIN提出的原因我们在base model里面介绍。
秋枫学习笔记
2022/09/19
3.6K0
深入理解推荐系统:十大序列化推荐算法梳理
作为【推荐系统】系列文章的第九篇,将以“序列化推荐算法”作为今天的主角,主要介绍相关的模型原理和发展方向。
Coggle数据科学
2021/03/02
2.7K0
深入理解推荐系统:十大序列化推荐算法梳理
KDD'22|序列推荐:多行为超图增强的Transformer
本文主要针对序列推荐场景学习用户动态偏好,以往的方法更多的是关注单一交互类型,本文设计了一个多行为超图增强的 Transformer 框架 (MBHT) 来捕获短期和长期的跨类型行为依赖关系。具体来说,多尺度 Transformer 结合低秩自注意力,从细粒度和粗粒度级别联合编码行为感知序列模式。将全局多行为依赖商品合并到超图神经架构中,捕获分层的长期商品相关性。
秋枫学习笔记
2022/09/19
1.3K0
淘宝搜索的向量召回算法MGDSPR
前面已经介绍了多个搜索召回中的向量召回算法,如Facebook的EBR,Que2Search,京东的DPSR。对于搜索系统来说,召回通常是由倒排召回构成,倒排召回的简单原理如下图所示:
felixzhao
2023/04/02
1K0
淘宝搜索的向量召回算法MGDSPR
WWW'22「快手」序列推荐:解耦长短期兴趣
4. 最后由于长期和短期兴趣的重要性是动态变化的,通过基于注意力的网络自适应地聚合它们进行预测。
秋枫学习笔记
2022/09/19
9540
深入理解推荐系统:超长用户行为序列建模
作为【推荐系统】系列文章的第七篇,将以CIKM2020中的一篇论文“Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction”作为今天的主角,主要介绍针对Lifelong用户行为序列建模的方案,用户行为长度可以达到上万,而且可以像DIN那样,对于不同的候选商品从用户行为里查找有效的信息建模用户的特殊兴趣。
Coggle数据科学
2020/12/16
6K0
深入理解推荐系统:超长用户行为序列建模
从顶会论文看2022年推荐系统序列建模的趋势
最近看了 22 年几篇顶会的序列建模的文章,模型无不复杂高深,但细细看后,发现这些文章本质上均是输入的变化,模型只为了配合输入。看看最近的顶会是怎么玩的吧。
NewBeeNLP
2022/11/11
1.1K0
从顶会论文看2022年推荐系统序列建模的趋势
我还不知道Attention有哪些-公式代码都带你搞定
attention由来已久,让它名声大噪的还是BERT,可以说NLP中,BERT之后,再无RNN和CNN。那么attention到底有哪些呢?hard attention、soft attention、global attention、local attention、self-attention, 啊,这些都是啥?相似度计算的dot、general、concat都是怎么计算的?
百川AI
2021/12/31
1.5K1
我还不知道Attention有哪些-公式代码都带你搞定
精排模型-从MLP到行为序列:DIN、DIEN、MIMN、SIM、DSIN
如下图 [1][2],阿里妈妈的精排模型,经历了从传统 LR、MLR 到深度模型 GwEN,再到用户兴趣建模的过程。
张小磊
2022/10/31
3K0
NIPS'21「微信」推荐系统:结合课程学习的多反馈表征解耦
为了解决上述问题,本文提出CDR,提出利用协同过滤动态路由机制去噪并挖掘不同意图之间的关系,同时利用课程学习,从易到难,并且在标签级别去噪。
秋枫学习笔记
2022/09/19
2920
召回和排序模型中的用户行为序列的建模
用户在使用一个APP或者浏览网页的过程中,都是由一些行为构成的,以资讯类为例,通常对一个帖子感兴趣,对于感兴趣的帖子,通常会点击进入查看,或者点击收藏或者对其进行评论,这一系列行为的背后都体现了用户的兴趣,而对用户行为过的帖子的序列的挖掘,能够对用户兴趣的表征。
felixzhao
2022/12/28
1.6K0
CIKM'21「eBay」推荐系统--利用超图对商品的多模态信息建模
Click-Through Rate Prediction with Multi-Modal Hypergraphs https://dl.acm.org/doi/pdf/10.1145/3459637.3482327 CIKM 2021
秋枫学习笔记
2022/09/19
7340
CIKM'21「华为」推荐系统:用于协同过滤的余弦对比损失
协同过滤(CF)一般包含三个部分:交互编码器、负采样和损失函数。现有的大部分工作集中在设计更强模型上,对负采样和损失函数的改进的相关工作比较少。相较于交互信息的编码而言,另外两者也同样重要,本文作者提出了一个新的损失函数 cosine contrastive loss (CCL) ,将其合并到统一的CF框架中,命名为simpleX 。
秋枫学习笔记
2022/09/19
9730
WSDM'21「蚂蚁」CTR预估:多交互注意力网络
本文涉及的内容相对简单,从题目出发,即通过注意力机制来实现的候选item和各种特征之间的各种交互。时间紧急的小伙伴可以直接看总结部分。
秋枫学习笔记
2022/09/19
3220
「推荐系统」 领域的最新进展你知道么?
本文作者:腾讯微信支付算法研究员 介绍 工业界通用推荐系统包括两个阶段的流程,匹配(match)和排序(rank)。在匹配的过程中主要是根据用户的一些兴趣点,找到可能感兴趣的潜在商品集。由于整个商品集的海量性,对实时访问的用户去计算他对全部商品的感兴趣程度是不实际的,所以需要预先根据一些兴趣、特征策略等来寻找用户可能感兴趣的潜在商品集,在此基础上,再根据特定的模型算法来进行商品集兴趣分深层排序,效果指标往往通过点击率(Click Trough Rate)、转化率、时长等来量化,所以 rank 阶段的主
腾讯技术工程官方号
2019/12/06
6780
「推荐系统」 领域的最新进展你知道么?
用户行为序列推荐模型
导读:今天我们谈谈用户行为序列上的推荐模型。首先我们对序列推荐问题做一个定义和描述,然后主要讲述可以用在序列推荐任务中的 NN 模型,最后给出一点个人看法以及文中相关的参考文献供参阅。
石晓文
2019/12/20
5.2K0
用户行为序列推荐模型
【CTR】DSIN:阿里深度会话兴趣网络
在 CTR 预估中,从用户的行为序列中捕捉用户动态变化的兴趣一直是一个热门课题。然而现在大部分研究都集中在 Sequence 中 而不是 Session。阿里的同学观察到,每个 Session 中的用户行为都是高度同构的,而 Session 之间都是异构的。
阿泽 Crz
2020/07/21
8250
【CTR】DSIN:阿里深度会话兴趣网络
推荐系统遇上深度学习(九十八)-[微信]推荐系统中更好地学习用户-标签偏好
本文介绍CIKM20上微信发表的一篇文章《Learning to Build User-tag Profile in Recommendation System》,主要介绍了微信看一看("Top Stories")中,如何进行用户对标签的兴趣建模,进而提升召回和推荐的效果。
石晓文
2020/11/06
1.9K0
推荐阅读
相关推荐
2019最新进展 | Transformer在深度推荐系统中的应用
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档