【BST】Behavior Sequence Transformer for E-commerceRecommendation in Alibaba

一、提出背景

传统的Embedding&MLP模型结构将原始特征嵌入到低维向量中,然后将其concat后输入MLP进行最终推荐。DIN提出使用注意力机制来捕获候选项与用户先前点击的项之间的相似性。

然而,大多数这些工作只是连接不同的特征,而没有捕获用户行为序列之间的顺序信息,忽略了用户行为的顺序性,即用户点击的项目的顺序。实际上,顺序对于预测用户未来的点击很重要。

例如,用户在淘宝上买了一部iPhone后,往往会点击手机壳,或者在买了一条裤子后,试图找到一双合适的鞋子。从这个意义上说,在淘宝排名阶段部署预测模型时,如果不考虑这一因素,就会出现问题。

为了解决WDL和DIN面临的上述问题,尝试将用户行为序列的顺序信号纳入RS中。

受自然语言处理(NLP)中机器翻译任务的Transformer的巨大成功的启发,我们应用自注意机制,通过考虑嵌入阶段的序列信息来学习用户行为序列中每个项目的更好表示,然后将它们馈送到MLP中以预测用户对候选项目的响应。Transformer的关键优势在于,它可以通过自注意机制更好地捕捉句子中词与词之间的依赖关系,直观地说,用户行为序列中项与项之间的"依赖关系"也可以通过Transformer提取出来。

二、模型结构

在排名阶段,推荐任务可建模为点击率(CTR)预测问题:给定用户的行为序列S(u)= {v1,v2,.,vn}被用户u点击,我们需要学习函数F来预测点击目标项Vt的概率。

BST和WDL之间的关键区别在于我们添加了Transformer层,通过捕获底层的序列信息来学习用户点击项目的更好表示。

2.1、Embedding层

将所有输入特征嵌入到固定大小的低维向量中。

2.1.1其他特征包括:

将它们嵌入到低维向量中并连接起来。嵌入矩阵Wo ∈ R| D| ×do,其中do是维度大小。

2.1.2行为序列特征

行为序列中每个项目的嵌入,包括目标项目。

使用两种类型的特征来表示一个item:"Sequence Item Features"包括item_id和category_id;以及Positional Features对应于位置embedding。

(一个item往往有数百个特征,而选择所有特征来表示行为序列中的项代价太高,实践中也发现,item_id和category_id对于性能来说已经足够好了,可以选择这两个作为稀疏特征来表示嵌入用户行为序列中的每个item。)

对于每个项目,我们连接Sequence Item FeaturesPositional Features。嵌入矩阵WV ∈ R| v| × dV,其中dV是嵌入的维数大小,以及|v|是项目的数量。我们使用ei ∈ RdV来表示给定行为序列中第i项的嵌入。

2.1.3位置embedding

Transformer提出了一种位置embedding来捕获句子中的顺序信息。同样,用户的行为序列中也存在顺序。因此,可以在底层中添加"位置"作为每个item的输入特征,然后将其投影为低维向量。

项目vi的位置值计算为pos(vi)= t(vt)- t(vi),其中t(vt)表示推荐时间,t(vi)表示用户点击项目vi时的时间戳。

2.2、Transformer 层

Transformer层通过捕获行为序列中与其他项的关系来学习每个项的更深层次的表示。

在我们的场景中,自我注意力操作将项目的embedding作为输入,并通过线性投影将其转换为三个矩阵,并将其馈送到注意力层。

多头注意力:

其中投影矩阵WQ、WK、WV ∈ Rd×d,E是所有项的嵌入矩阵,h是头的数目。

前馈网络Feed-Forward Networks (FFN):F = FFN(S)

为了避免过度拟合并分层学习有意义的特征,我们在自我注意力和FFN中使用dropout和LeakyReLU。然后,自注意和FFN层的总体输出如下:

2.3、MLP层

将Other Features的嵌入和应用于目标项的Transformer层的输出连接起来,我们然后使用三个全连接层来进一步学习密集特征之间的交互。

2.4、损失函数

为了预测用户是否会点击目标itemvt,我们将其建模为二进制分类问题,因此我们使用sigmoid函数作为输出单元。为了训练模型,我们使用交叉熵损失:

其中D表示所有样本,y ∈ {0,1}是表示用户是否点击过某个项目的标签,p(x)是sigmoid单元后网络的输出,表示样本x被点击的预测概率。

三、实验设置

3.1、评估指标

离线结果:AUC

在线A/B测试:CTR、平均RT(RT是响应时间(RT)的缩写,它是为给定查询生成推荐结果的时间成本,即一位淘宝用户的请求。用来评估不同的在线生产环境中的效率)

和DIN之间的关键区别在于,使用Transformer 来学习用户行为序列中每个项目的更深层次的表示,而DIN试图捕捉之前点击的项目和目标项目之间的不同相似性。换句话说,BST模型与Transformer更适合捕捉的顺序信号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云动态摘要 2024-05-08

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]即刻畅享自研SaaS产品 腾讯云 2024-04-25 涵盖办公协同、营销拓客、上云安全保障、数据分析处理等多场景 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

通过自适应提示提升大语言模型的零样本推理能力

随着大模型(LLMs)的快速发展,它们在自然语言处理(NLP)任务上取得了前所未有的成就。特别是,LLMs展现出了强大的推理和规划能力,这得益于它们的少样本和零样本学习能力。然而,现有的方…

spring模块(六)spring监听器(2)@EventListener

一、介绍 监听器的简化写法 二、原理 三、使用 Slf4j Component public class MyTask {EventListenerpublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof ContextRefreshedEvent) {log.info("监听到 ContextRefreshedEvent...");}if…

Seata之XA 模式的使用

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Seata 是一款开源的…

全网最全:一文入门最热的LLM应用开发框架LangChain

f#### 1. LangChain 简介 1.1. LangChain 发展史 LangChain 的作者是 Harrison Chase,最初是于 2022 年 10 月开源的一个项目,在 GitHub 上获得大量关注之后迅速转变为一家初创公司。2017 年 Harrison Chase 还在哈佛上大学,如今已是硅谷的…

CPU基本知识点

目录 1.概念 2.分类 3.运作原理 4.指令系统 1.概念 CPU:英文Central Processing Unit,即中央处理器。 解释和执行指令的功能单元,它是计算机的中枢神经系统(即核心)。 是计算机最核心的部件,主要是运算…

大家都是怎么写毕业论文的? 推荐4个AI工具

写作这件事一直让我们从小学时期就开始头痛,初高中时期800字的作文让我们焦头烂额,一篇作文里用尽了口水话,拼拼凑凑才勉强完成。 大学时期以为可以轻松顺利毕业,结果毕业前的最后一道坎拦住我们的是毕业论文,这玩意不…

Java中包的概念package

Package Package:包 指明方法、类所处的包; 将类分配到不同的包中,方便管理; 用于指明文件中定义的类、接口等结构所在的包; 一个源文件只要一个包的声明语句,必须放到开头; 属于标识符,满足命…

细说夜莺监控系统告警自愈机制

虽说监控系统最侧重的功能是指标采集、存储、分析、告警,为了能够快速恢复故障,告警自愈机制也是需要重点投入建设的,所有可以固化为脚本的应急预案都可以使用告警自愈机制来快速驱动。夜莺开源项目从 v7 版本开始内置了告警自愈模块&#xf…

blender导出gltf模型混乱

最近用户给了几个blender文件,在blender打开是这样的: 我导出成gltf候,在本地打开时,底部发生了改变: 可以看出来,底部由原来的类型box变为了两个平面,后来我查了下blender里的属性设置&#xf…

Python | Leetcode Python题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; class Solution:def sortColors(self, nums: List[int]) -> None:n len(nums)p0, p2 0, n - 1i 0while i < p2:while i < p2 and nums[i] 2:nums[i], nums[p2] nums[p2], nums[i]p2 - 1if nums[i] 0:nums[i], nums[p0] num…

指针与const

指针与const 定义的对象中加上const 关键字&#xff0c; 表达一经初始化就不可修改的特性const 对象必须初始化 指针与constconst char* pc;指向常量的指针pc 初始化可以指向常量字符串&#xff0c; 内容不可以修改&#xff0c;但是指针指向可以修改char* const cp;指向char …

ESD静电问题 | 案例

【转自微信公众号&#xff1a;EMC容冠电磁】

相亲系统功能介绍

相亲系统是一种旨在帮助单身人士寻找合适伴侣的平台&#xff0c;其主要功能通常包括以下几个方面&#xff1a; 实名认证&#xff1a;为了确保双方的权益保障&#xff0c;用户必须进行实名认证后才能使用该系统。这有助于增加系统的安全性和可信度。偏好选择&#xff1a;用户可…

网络安全之ACL

ACL&#xff1a;访问控制列表——控制列表&#xff08;策略列表&#xff09;&#xff0c;是一个控制工具。 功能&#xff1a;&#xff01;、定义感兴趣路由&#xff08;控制层面&#xff09;。2、定义感兴趣流量&#xff08;数据层面&#xff09;。 例如&#xff1a; 假设在该…

数字孪生涉及到的前沿技术:虚拟现实 人工智能 区块链 边缘计算。

数字孪生是各类技术的综合应用&#xff0c;除了咱们常见的传感器、数据采集、清洗、传输、建模、可视化技术外&#xff0c;还有还有一些前沿技术&#xff0c;会让数字孪生更加强大和智能&#xff0c;本文介绍几个。 虚拟现实&#xff08;Virtual Reality&#xff0c;VR&#x…

京东运营大基本功:店铺八大数据分析 | 店铺所有商品API采集接口

数据分析是京东运营的基本功&#xff0c;想要做好京东运营&#xff0c;那么你就一定要掌握数据分析的技能&#xff0c;数据分析我们需要采集大量数据&#xff0c;这时候我们就要京东电商数据采集API接口&#xff0c;今天就重点来给大家讲讲关于数据分析的道与术。 01 一、分析…

抖音小店怎么找达人带货的?分享几个成功率超高的沟通话术!

哈喽~我是电商月月 做抖音小店&#xff0c;特别是无货源的商家想要更多的流量&#xff0c;必定会尝试直播卖货&#xff0c;不会自己直播卖货&#xff0c;就会开通精选联盟&#xff0c;在里面找达人合作 那精选联盟到底是怎样找达人带货的呢&#xff1f; 有的达人打招呼了根本…

五、Redis五种常用数据结构-SET

Redis的Set结构存储的数据和Java中的HashSet类似&#xff0c;都是无序且不重复的。其底层的数据结构有两种&#xff0c;一是当value为整数时&#xff0c;且数据量不大时采用intset来存储。其他情况使用dict字典存储。集合中最多存储232-1(40多亿)个数据。 1、常用命令 sadd k…

游戏行业干货分享 | 游戏行业非技术岗盘点

在游戏行业&#xff0c;除了技术开发岗位外&#xff0c;还有许多非技术岗位对游戏的成功至关重要。以下是一些游戏行业非技术岗位的盘点&#xff0c;以及它们各自的职责和对游戏项目的贡献&#xff1a; 以游戏上线为目的&#xff0c;从游戏研发到游戏发行会有如下岗位配置 这里…