全文共3074字,预计学习时长6分钟

中国最大的电商平台阿里巴巴,不仅是电商界的巨头,在推荐系统研究领域也处于领军地位。其最新论文《阿里巴巴电商推荐系统的行为顺序Transformer模型》(https://arxiv.org/pdf/1905.06874.pdf)成为推动推荐系统发展的又一力作。

在这项研究中,阿里巴巴使用当下流行的Transformer模型捕捉在线购物过程中用户行为的序列信号,以此对用户的下一次点击进行预测。

候选商品排名

推荐系统经常使用两层的检索和排名范式,阿里巴巴也不例外。在检索步骤,阿里巴巴以高召回率筛选整个商品集(当然数量远远大于一百万个)中的一百万个相关候选商品集。在排名步骤,对准确度高的候选商品进行排序。本论文聚焦排名步骤,主要介绍其在阿里巴巴旗下中国最大的C2C平台——淘宝之中如何工作。

序列行为的重要性

当预测用户网上购物的下一次点击时,顺序十分重要。举例来说,用户买了一部iPhone后,往往会惦记手机壳,或者刚买了一条裤子后试图找与之搭配的鞋子。以往的工作要么完全忽视用户行为的序列信号(Cheng et. al, 2016),要么对过往点击商品和候选商品之间的关系进行编码,但并未将用户点击的序列特性并入在内(Zhou et. al, 2017)。然而,由于Transformer模型使用了自注意力,所以它能在用户行为序列中捕捉商品间的相关度以及顺序的重要性。正因如此,阿里巴巴和淘宝团队计划在他们称之为行为序列Transformer模型(BST)中运用这项功能。

BST架构

图1:BST和Transformer层架构

推荐任务建模为一个二元分类问题:给定用户u的点击行为顺序为S(u) = {v1, v2, …, vn},用户点击商品n时,任务是在序列的过往商品中,习得一个函数以预测用户u在时间t时点击目标候选商品v1的可能性。BST模型是谷歌WDL(Wide & Deep Learning)模型的改版(Cheng et. al, 2016),其中过往点击商品和相关特征(类别、价格等)的嵌入都连在一起并嵌入低维向量中,然后送入多层感知器中。BST模型在WDL模型中添加了一个Transformer层,通过捕捉那些点击的序列特性更好地学习用户点击商品的表示。

从下至上,BST模型架构由以下几个部分组成:

嵌入层

在模型的第一层,几种类型的特征都被嵌入到低维向量中,因此得名“嵌入层”。这些特征分别是:1)各种商品级和用户级特征,统称为“其它特征”(论文未作详细阐释),2)用户点击每个商品的序列被称为“用户行为序列”,3)目标候选商品。温馨提示,候选商品源自某个候选级模型,这一点论文中也未提及。

用户行为中每个商品的点击序列被看作是以下两个特征的结合:

1. “序列商品特征”包含item_id 和category_id。文中指出,尽管商品特征很多,但笔者发现使用这两个特征效果最好。

2. “位置特征”用于捕获序列中的顺序信息,因为Transformer架构不像RNN,前者没有序列顺序的定义。商品vi 的位置值表示为pos(vi) = t(vt) - t(vi),其中 t(vt) 代表推荐时间, t(vi) 是用户点击商品 vi时的时间戳。笔者发现这比之前Transformer论文中使用的sin函数和cos函数表现更好。

用户行为序列和目标商品嵌入然后跨过Transformer层,然而“其它特征”并非如此。

Transformer层

Transformer层由两个子层组成(见图1),其中用户行为点击序列和候选商品的嵌入都经历了多次转换。这导致每个商品的嵌入包含点击序列中与其他商品相关的顺序和重要性。依次浏览每个子层:

1. 自注意子层

自注意操作首先将序列中的商品嵌入作为输入,然后为每个商品创建query、key和value向量。这三个向量通过将嵌入和三个训练时习得的投影矩阵相乘得出,其中d表示商品嵌入的维度。所有商品的query、key和value都可以表示为矩阵形式,嵌入矩阵E中的每行对应用户行为点击序列中的每一件商品。接下来,将Q、K、V矩阵输入到缩放点积注意层中,获得一个输出,其定义如下:

运行操作一次以上后,可以将其看作一个attention的“头”。与原始的Transformer论文一样,其中运用到了多头注意(MH),对各种随机初始化投影矩阵, 进行了attention操作,随后结果合并到一起,并与另一个权重矩阵相乘, 此过程如下所示:

其中的h代表多头的数量,最终结果S将传递给Transformer模型中的下一子层。

2. 前馈网络子层

与原始的Transformer相关论文一样,自注意子层的输出S会通过逐点前馈神经网络。

3. 合并子层

对每个子层进行处理后,要进行层规范化、LeakyReLU和dropout。自注意和FFN子层的整体输出如下:

其中是可学习的参数。

Transformer层的结果是矩阵F,其代表用户行为点击序列中商品的嵌入,以及包含用户点击序列特性的目标商品。

MLP

“其它特征”的嵌入和Transformer层的输出向量相连,然后使用ReLU激活函数和sigmoid激活函数通过三个完全连接的层,由此,可预测出用户点击目标商品v_tvt的可能性。为训练此模型,此处使用了交叉熵(cross-entropy)损失函数:

函数中的D代表所有样本;表示用户是否点击了某个商品,y为1时表示用户已点击,y为0则未点击;p(x)是BST网络的输出值,表示用户点击候选商品x的概率。

实验

表1: BST模型的参数

BST模型和基准线是用Python 2.7和Tensorflow 1.4实现的,并选用“Adagrad”作为优化器。模型参数如表1所示。

使用淘宝app的8天运行日志进行实验,前7天用于训练,最后1天用于测试。数据集的数据如下表2所示:

表2: 来自淘宝数据集的数据

实验中使用的基准线是WDL、DIN和整合序列信息的WDL——WDL(+Seq),这些基准线包含过往已点击商品的嵌入平均值。AUC用于评估模型离线时的表现。对于在线A/B测试,使用CTR和平均应答时间(RT,对于给定query生成推荐所需的花费)评估模型。

结果如表3所示。在离线实验中,把WDL比作WDL(+Seq)时,很显然,即使用简单的平均方式,合并序列信息也很重要。结果表明,BST模型对基准线所做的改进很有必要。作者指出,由于此RT与WDL和DIN的RT差不多,因此保证了在现实世界大型案例中将RT等复杂模型部署到生产中的可行性。

表3: 实验结果。BST(b=1)表示含一个自注意模块的BST模型,经发现其可以提供最佳离线和在线结果。

结论

阿里巴巴的研究员强调了另一案例,即NLP中的想法可以成功地应用于推荐系统。本论文作出了两项主要贡献。第一,BST模型与以往模型不同,前者可通过把Transformer模型并入一个标准多层感知器中,成功捕获用户网上购物行为中的序列信号。第二,大规模的在生产中部署BST模型不仅是一个可行方法,同时还适合阿里巴巴和淘宝当前的生产模式。阿里巴巴推荐系统搜索团队接下来会做些什么,让我们拭目以待。

留言 点赞 关注

我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

揭秘!阿里巴巴基于Transformer的推荐系统相关推荐

  1. 基于Transformer的NLP智能对话机器人实战课程培训

    NLP on Transformers 101 One Architecture, One Course,One Universe 本课程以Transformer架构为基石.萃取NLP中最具有使用价值 ...

  2. Recsys2021 | 基于Transformer的会话推荐

    这一回主要讲解Transformers4Rec论文主体提出的方法. 本文提出了一整套序列推荐建模的pipeline,包括了数据预处理/特征工程模块:模型训练和评估模块和Transformers元架构模 ...

  3. 完全基于Transformer的目标检测器,ICLR匿名论文实现视觉、检测统一

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 一种新的集成视觉和检测 Tra ...

  4. 刷爆 AI 圈!基于 Transformer 的 DALL-E 代码刚刚开源了

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | AI科技评论 OpenAI在1月5日公布DALL-E模型以 ...

  5. 无需卷积,完全基于Transformer的首个视频理解架构TimeSformer出炉

    选自Facebook AI 机器之心编译 编辑:小舟.陈萍 Facebook AI 提出新型视频理解架构:完全基于Transformer,无需卷积,训练速度快.计算成本低. TimeSformer 是 ...

  6. PoseFormer:首个纯基于Transformer的 3D 人体姿态估计网络,性能达到 SOTA

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文分享一篇 52CV 粉丝的论文『3D Human Pose Estimation with Spa ...

  7. Chem. Sci. | SyntaLinker: 基于Transformer神经网络的片段连接生成器

    作者 | 杨禹尧 今天给大家介绍的是生物岛实验室陈红明研究员的团队,联合中山大学药学院药物分子设计中心的徐峻教授,发表在英国皇家化学学会出版的化学核心期刊Chemical Science上的一篇论文. ...

  8. 重磅开源!首个基于Transformer的视频理解网络来啦!

    部分转载自:机器之心  |  编辑:小舟.陈萍 Facebook AI 提出新型视频理解架构:完全基于Transformer,无需卷积,训练速度快.计算成本低.最近由Facebook提出的首个完全基于 ...

  9. 基于Transformer的高效、低延时、流式语音识别模型

    从场景上,语音识别可以分为流式语音识别和非流式语音识别.非流式语音识别(离线识别)是指模型在用户说完一句话或一段话之后再进行识别,而流式语音识别则是指模型在用户还在说话的时候便同步进行语音识别.流式语 ...

最新文章

  1. php 类似微信下拉菜单,微信小程序实现下拉框(附代码)
  2. 阿里开源自主研发的 DFSMN 语音识别模型,引谷歌论文引用
  3. 实现简单的网页间的跳转
  4. MYSQL ERROR CODE 错误编号的意义
  5. 过年回家抢不到火车票?教你用 Python 开发 12306 查票神器
  6. java线程太多卡顿_性能优化之卡顿延迟
  7. ASP.NET Core 沉思录 - ServiceProvider 的二度出生
  8. 人生:沉得住气,方成得了器!
  9. 关于博客改版:我的一些想法与初衷
  10. 解读《输赢》:输赢在哪里?
  11. Android 9.0 HIDL接口添加
  12. 计算机蓝屏代码0x0000007b,电脑蓝屏代码0x0000007b 电脑蓝屏0x0000007b怎么解决 - 云骑士一键重装系统...
  13. 微信小程序7-云存储
  14. com.mysql.jdbc.MysqlDataTruncation 报错
  15. Windows PE安装 DiskGenius 备份/恢复系统
  16. TOYOTA MOTOR CORPORATION Programming Contest 2022(AtCoder Beginner Contest 270) AB题解
  17. 看球二三事 - 世界杯征文
  18. 符号“∑”和“Π”的用法
  19. Python将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  20. 【iOS】调用百度、高德地图SDK

热门文章

  1. Google Play ASO 系列 - 用户体验一直为王
  2. Linux搭建YUM仓库
  3. python培训学校-上海python培训学校
  4. dio设置自定义post请求_强大的dio封装,可能满足你的一切需要
  5. 内存分析工具打开报错解决方法An internal error occurred during: “Parsing heap dump from
  6. APT命令行工具的使用
  7. 【期末复习】北京邮电大学《数字内容安全》课程期末复习笔记(5. 社交媒体安全)
  8. 13 1602液晶显示屏
  9. 测站坐标系、地心非惯性系、经纬高互转
  10. 产业区块链一周动态丨新四板跑步上链,国家区块链漏洞库定级细则发布