阿里深度序列匹配模型SDM:如何刻画大型推荐系统的用户行为?

2019 年 9 月 10 日 AI100

作者 | 石晓文
来源 | 小小挖掘机(ID:wAIsjwj)


今天给大家介绍的论文是:《SDM: Sequential Deep Matching Model for Online Large-scale Recommender System》


论文下载地址:

https://arxiv.org/abs/1909.00385v1



1、背景


像淘宝这样的大规模的推荐系统,需要快速和准确的响应用户当前的需求。淘宝推荐系统一般采用两阶段的方式。首先在召回阶段召回可能的候选集,然后在排序阶段进行精准排序推荐。


目前在淘宝的召回模型中,基本上采用的模型的基础是基于物品的协同过滤模型。但是协同过滤模型只能考虑用户的静态兴趣,而不能捕获用户的动态兴趣。这些兴趣主要通过用户的行为来体现。


在淘宝的场景中,用户的行为主要分为两种,第一个是当前的浏览session,用户在一个session中,需求往往是十分明确的,比如你想买球鞋,往往只会关注球鞋类的商品。另一个是之前的记录,一个用户虽然可能不是每次都来买球鞋,但是也可能提供一定的有用信息,比如用户只买阿迪的鞋子或者只买帆布鞋等等。因此分别建模这两种行为序列来刻画用户的兴趣,是十分有用的。


接下来,我们就来学习下如何分别刻画用户的两种行为序列,以及如何将二者融合,并最后进行物品召回的。


2、SDM模型


2.1 问题定义


用户集合U和物品集合I就不说啦,然后我们主要看看对用户行为序列的划分,按照session进行划分的规则如下:


1)日志中标记了同样的session ID
2)虽然session ID不相同,但是相邻的行为间隔小于10min
3)最长的session长度为50,超过50的划分到前一个session(我猜测是从后往前划分session 的吧)


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




m是序列的长度,而与Su相隔一周以内的行为认为是用户的长期行为Lu。

根据如上定义,整个的匹配框架如下:



基于用户的短期行为,通过模型计算得到向量表示su,基于用户的长期行为,得到向量表示pu,二者在进行融合,最终得到用户的行为表示ou。通过ou和每个物品对应的向量vi计算匹配分数,并根据分数高低进行召回:



2.2 物品和用户的Embedding表示


在淘宝的推荐中,用户不仅仅关注物品本身,一些属性如品牌、店铺、价格等都是用户关注的属性。因此,我们使用不同的属性来刻画物品,如物品ID、叶子结点分类、一级分类、品牌、店铺等等,并将不同属性对应的embedding进行拼接得到物品的embedding表示:




同样的,用户也有对应的属性,如年龄区间、性别、蜂窝(学生/白领等等)。用户的embedding如下:




2.3 短期行为建模


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




对于短期行为,即用户最近的一个session里的行为。在将物品转换为embedding后,首先通过LSTM来进行建模:


这样,每一个物品又一个对应的hidden state的输出h。接下来,是最近经常被使用的multi-head attention,主要有两点原因:


1)用户的行为中存在一些误点击行为,通过self-attention来降低这种影响;
2)用户可能对不同物品的关注点不同。


个人感觉前面的LSTM有点多余,可以在multi-head attention中加入序列信息的吧,这样性能可能好一点。而multi-head attention的过程咱们就不多说了,可以参考我之前的文章通俗易懂!使用Excel和TF实现Transformer!。经过multi-head attention,对应的序列输出为:




随后又是一层attention,这一次主要的关注点是用户可能对不同的物品偏好程度不同:




这样,用户的短期行为我们就通过一个向量su表示了。


2.4 长期行为建模


对于长期行为,咱们不像刚才那么搞,主要是性能撑不住啊,还像短期行为那么搞的话,有点像之前介绍的DSIN模型,参数有点多。我们主要关注的点在于通过长期行为来从不同角度来刻画用户的兴趣,比如用户经常逛某种类型的店铺、经常复购同一类型的商品等等。因此把长期行为中的所有物品对应的属性集合划分为不同的set,如物品IDset、物品店铺set、物品品类set等等。下图展示了长期行为的建模过程:




对于不同的set,都经过一个attention层进行建模,如用户可能对不同的店铺偏好程度不同,对不同的品类偏好程度不同:




这样每一个set可以得到一个对应的向量,进行拼接后再经过一层全连接层得到用户的长期行为表示:




2.5 兴趣融合


接下来的过程就很巧妙了,并非将长短期兴趣向量直接拼接,而是借鉴了LSTM或GRU中的门的概念,对短期兴趣向量和长期兴趣向量进行一个加权,过程如下:



具体的计算过程如下:






这样我们就得到了用户的兴趣表示ou。


2.6 训练


得到了用户的兴趣表示ou之后,根据日志我们可以得到用户下一个交互的物品,作为正例,接下来,采样K-1个负例物品。将K个物品对应的embedding,分别于用户兴趣表示计算内积,作为每个物品的得分。并最终通过softmax和交叉熵来计算损失,并进行模型训练:




2.7 整体结构


最后再来看一下整个模型的结构:




3、实验结果


本文的实验的代码和数据地址在:https://github. com/alicogintel/SDM.

数据集选择的是淘宝和京东的两个数据集。离线实验的评价指标包括HITRatio、精确率、召回率、F1值:




而线上模型的评价指标主要有三个CTR、GMV和Discovery:




离线效果如下:




除了基准的模型外,SDM模型有许多变体,这里也简单介绍一下:





在线效果对比如下,pCTR、pGMV和discovery分别提升了7.04%, 4.50% and 24.37%:




(*本文为AI科技大本营转载文章,转载请联系作者)


推荐阅读


你点的每个“在看”,我都认真当成了喜欢

登录查看更多
20

相关内容

数据挖掘是从数据中发现有价值的知识的计算过程,是现代数据科学的核心。它在许多领域有着巨大的应用,包括科学、工程、医疗保健、商业和医学。这些字段中的典型数据集是大的、复杂的,而且通常是有噪声的。从这些数据集中提取知识需要使用复杂的、高性能的、有原则的分析技术和算法。这些技术反过来又需要在高性能计算基础设施上的实现,这些基础设施需要经过仔细的性能调优。强大的可视化技术和有效的用户界面对于使数据挖掘工具吸引来自不同学科的研究人员、分析师、数据科学家和应用程序开发人员以及利益相关者的可用性也至关重要。SDM确立了自己在数据挖掘领域的领先地位,并为解决这些问题的研究人员提供了一个在同行评审论坛上展示其工作的场所。SDM强调原则方法和坚实的数学基础,以其高质量和高影响力的技术论文而闻名,并提供强大的研讨会和教程程序(包括在会议注册中)。 官网地址:http://dblp.uni-trier.de/db/conf/sdm/
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
68+阅读 · 2020年4月7日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
34+阅读 · 2020年4月5日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
76+阅读 · 2020年2月3日
推荐系统(一):推荐系统基础
菜鸟的机器学习
25+阅读 · 2019年9月2日
深度 | 推荐系统如何冷启动?
AI100
17+阅读 · 2019年4月7日
基于深度交叉特征的推荐系统
微信AI
9+阅读 · 2019年2月1日
如何将知识图谱特征学习应用到推荐系统?
微软研究院AI头条
7+阅读 · 2018年6月5日
【推荐系统】融合 MF 和 RNN 的电影推荐系统
产业智能官
23+阅读 · 2018年1月4日
融合 MF 和 RNN 的电影推荐系统
PaperWeekly
7+阅读 · 2017年12月28日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
6+阅读 · 2018年7月29日
Arxiv
3+阅读 · 2018年6月19日
Arxiv
12+阅读 · 2018年1月28日
Arxiv
5+阅读 · 2017年11月13日
VIP会员
相关资讯
推荐系统(一):推荐系统基础
菜鸟的机器学习
25+阅读 · 2019年9月2日
深度 | 推荐系统如何冷启动?
AI100
17+阅读 · 2019年4月7日
基于深度交叉特征的推荐系统
微信AI
9+阅读 · 2019年2月1日
如何将知识图谱特征学习应用到推荐系统?
微软研究院AI头条
7+阅读 · 2018年6月5日
【推荐系统】融合 MF 和 RNN 的电影推荐系统
产业智能官
23+阅读 · 2018年1月4日
融合 MF 和 RNN 的电影推荐系统
PaperWeekly
7+阅读 · 2017年12月28日
Top
微信扫码咨询专知VIP会员