阿里深度序列匹配模型SDM:如何刻画大型推荐系统的用户行为?
今天给大家介绍的论文是:《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 ID2)虽然session ID不相同,但是相邻的行为间隔小于10min3)最长的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%:
谷歌NIPS论文Transformer模型解读:只要Attention就够了
阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路
开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍
你在北边的西二旗被水淹没,我在东边的八通线不知所措
为什么说边缘计算的发展比5G更重要?
C/C++ 最易受攻击、70% 漏洞无效,揭秘全球开源组件安全现状
首批共享单车死于 2019
公钥加密、加密Hash散列、Merkle树……区块链的密码学你知多少?
阿里深度序列匹配模型SDM:如何刻画大型推荐系统的用户行为?相关推荐
- 深度树匹配模型(TDM)
深度树匹配模型(TDM) 算法介绍 Tree-based Deep Match(TDM)是由阿里妈妈精准定向广告算法团队自主研发,基于深度学习上的大规模(千万级+)推荐系统算法框架.在大规模推荐系统的 ...
- 「NLP-语义匹配」详解深度语义匹配模型DSSM
2019-12-29 11:05:55 所谓语义匹配,就是在语义上衡量文本的相似度,在产业界有很多的应用需求.例如,在FAQ场景中需要计算用户输入与标问之间的相似度来寻找合适的答案.本文介绍一种经典的 ...
- 【NLP-语义匹配】详解深度语义匹配模型DSSM
所谓语义匹配,就是在语义上衡量文本的相似度,在产业界有很多的应用需求.例如,在FAQ场景中需要计算用户输入与标问之间的相似度来寻找合适的答案.本文介绍一种经典的语义匹配技术,DSSM,主要用于语料的召 ...
- 详解深度语义匹配模型DSSM和他的兄弟姐妹
一只小狐狸带你解锁NLP/ML/DL秘籍 正文作者:郭耀华 正文来源: https://www.cnblogs.com/guoyaohua/p/9229190.html 前言 在NLP领域,语义相似度 ...
- nmt模型源文本词项序列_「自然语言处理(NLP)」阿里团队--文本匹配模型(含源码)...
来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-14 引言 两篇文章与大家分享,第一篇作者对通用文本匹配模型进行探索,研究了构建一个快速优良的文本 ...
- antd 文本域超长问题_「自然语言处理(NLP)」阿里团队--文本匹配模型(含源码)...
来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-14 引言 两篇文章与大家分享,第一篇作者对通用文本匹配模型进行探索,研究了构建一个快速优 ...
- DSSM深度语义匹配模型
DSSM DSSM的结构 DSSM 最大的卖点在检索场景下 使用点击数据来训练语义层次的匹配,简单的来说,传统检索场景下的匹配主要有: 字面匹配: TFIDF . BM25 等 使用 LSA 类模型进 ...
- 【推荐实践】腾讯推荐系统中的深度匹配模型
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年6月热门报告合集从零开始了解推荐系统全貌机器学习在B站推荐系统中的应用实践微信视频号实时推 ...
- 搜索和推荐系统中的深度匹配模型
文章作者:辛俊波 腾讯 高级研究员 编辑整理:DataFunTalk 导读:推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景.而无论是搜索还是推荐,本质其实都是匹配,搜索 ...
最新文章
- MySQL/MariaDB查询执行路径
- spoj Find Log
- xamarin学习之路 一、vs2015 环境搭建
- Python标准库的强大功能的相关介绍
- 为什么下拉框拉不下来_为什么体重降不下来?4个饮食方法降低热量摄入,让体重降下来...
- UTF-8格式的文本文件程序读取异常
- 16、Python与设计模式--模板模式
- 判断一个无符号整数是不是2的幂
- 懒与馋的平衡:餐饮O2O市场广阔,发展不易
- mysql first value_开窗函数 First_Value 和 Last_Value
- 中国量子计算机 是纠缠,量子纠缠获得突破,中国量子计算机问世,民营企业立下显著功勋...
- keras load model 并保存特定层 (pop) 的权重save new_model
- Windows系统、下的MySQL、版本升级、实操
- 用Python 操作Web 前端 基础 1
- 用计算机作一首歌,我想用电脑创作一首歌。需要什么软件啊?
- 工程项目常见风险及其22种最佳管理实践
- 傲盾linux防火墙,linux 挂载数据盘指引
- YoLov3目标检测代码C++版本运行
- jovi语音助手安装包_jovi语音助手安装包2016
- 亚马逊测评自养号环境系统的介绍和用法