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

news2024/12/31 4:38:28

一、提出背景

传统的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.coloradmin.cn/o/1655140.html

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

相关文章

如何在您的域名中使用 Google Apps 创建 SPF 记录

关于 SPF 记录 SPF 记录是一种域名服务(DNS)记录,用于标识哪些邮件服务器被允许代表您的域发送电子邮件。它与在您的 DNS 区域中添加 MX 或 A 记录一样简单。 为什么它很重要? 如今,几乎所有滥用电子邮件消息都携带…

AMBA总线介绍

AMBA(Advanced Microcontroller Bus Architecture)是由ARM(Advanced RISC Machines)公司设计的一种高性能、高带宽的总线架构。AMBA总线广泛应用于各种嵌入式系统中,包括数字信号处理器、图形处理器、嵌入式处理器以及…

泽众财务RPA机器人常见五个应用场景

泽众RPA(即机器人流程自动化,Robotic Process Automation, RPA)解决方案是依托于各类先进信息技术手段的虚拟劳动力 (数字劳动力),根据预先设定的程序操作指令对任务进行自动化处理,实现业务流程…

QGraphicsView实现简易地图11『指定层级-定位坐标』

前文链接:QGraphicsView实现简易地图10『自适应窗口大小』 提供一个地图初始化函数,指定地图显示的中心点和地图缩放层级 能够让地图显示某一层级的瓦片,并将中心点坐标显示在视图中心。 1、动态演示效果 7级地图-大连-老虎滩 定位到 8级地图…

【Shell】shell编程之条件语句

目录 一、条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二、if语句的结构 1.单分支结构 2.双分支结构 3.多分支结构 三、case语句 总结 一、条件测试操作 1.test命令 测试表达式是否成立,若成立返回0,否则返回…

Apache DolphinScheduler 4月简报:社区发展与技术革新速递

各位热爱 DolphinScheduler 的小伙伴们,4 月份的 DolphinScheduler 社区月报更新啦!这里将记录 DolphinScheduler 社区每月的重要更新,欢迎关注! 月度 Merge 之星 感谢以下小伙伴 4 月为 Apache DolphinScheduler 所做的精彩贡献…

Graph RAG:基于知识图谱的检索增强技术与优势对比

身处信息爆炸时代,如何从海量信息中获取准确全面的搜索结果,并以更直观、可读的方式呈现出来是大家期待达成的目标。传统的搜索增强技术受限于训练文本数量、质量等问题,对于复杂或多义词查询效果不佳,更无法满足 ChatGPT 等大语言…

spark sql 与scala混合开发实现数据入mongodb

目录 概述资源解决问题效果环境配置相关包关键代码 测试测试结果 概述 在此提供 spark sql 与scala混合开发实现数据入mongodb 相关思路 将部分重复性功能进行通用化(使用SQL与Scala混合开发模式)。 相关组件 hadoop 3.3.6 spark 3.4.2 kyuubi 1.8.0 基于上术组件开发 资源 …

【笔试训练】day22

1.添加字符 求最少不相等的位数,可以先求最多相等的位数。 在添加字符之前,A和B最多相等的位数是多少?由于A后面可以添加字符,也就使得A字符可以在B的任意一个位置开始比较。遍历一遍这个比较的起点,从这个起点开始跟…

Angular中的路由

Angular中的路由 文章目录 Angular中的路由前言一、创建路由二、创建多个组件路由三、创建子路由四、创建多个组件子路由 前言 在Angular中,路由是用于在不同的视图和组件之间导航的机制。Angular提供了一种强大的路由机制来管理单页应用(SPA&#xff0…

Npm Install Docusaurus Demo【npm 安装 docusaurus 实践 】

文章目录 1. 简介2. 前提2.1 安装 git2.2 安装 node 3. 安装4. 项目结构5. 访问5.1 localhost 访问5.2 ip 访问 1. 简介 Docusaurus 是一个facebook的开源项目,旨在帮助开发者构建易于维护和部署的文档网站。它提供了一个简单的方法来创建专业的文档网站&#xff0…

asp.net结课作业中遇到的问题解决3

目录 1、想实现不止鼠标滑过就显示图片,初始化状态下也可以显示图片,且每个图片还会自动变化,该如何实现 2、 同一个项目下的网页之间可以直接在地址栏输入跳转到阅读界面从而实现在这个跳转,那么如何防止这种现象呢?…

python数据分析——pandas DataFrame基础知识1

参考资料:活用pandas库 1、加载数据集 通常调用read_csv函数来加载CSV数据文件。若是.tsv文件也是用read_csv函数。 # 导入库 import pandas as pd # 默认情况下,read_csv函数会读取逗号分隔文件 # Gapminder数据使用制表符分隔 # 可以吧sep参数设置为…

计算机组成原理网课笔记

无符号整数的表示与运算 带符号整数的表示与运算 原反补码的特性对比 移码

推荐非常方便的初始配置nginx的开源工具

官网 https://www.digitalocean.com/community/tools/nginx?global.app.langzhCN直接复制base64字符串在 /etc/nginx 目录执行,会自动生成配置文件,最后执行 使用tar解压新的压缩配置 tar -xzvf nginxconfig.io-xxx.com.tar.gz | xargs chmod 0644在…

中国结(科普)

中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。 [1]它原本是由旧石器时代的缝衣打结,后推展至汉朝的仪礼记事,再演变成今日的装饰手艺。周朝人随身的佩戴玉常以中国结为装饰,而战国时代的铜…

Golang | Leetcode Golang题解之第78题子集

题目: 题解: func subsets(nums []int) (ans [][]int) {set : []int{}var dfs func(int)dfs func(cur int) {if cur len(nums) {ans append(ans, append([]int(nil), set...))return}set append(set, nums[cur])dfs(cur 1)set set[:len(set)-1]df…

Java 11 到 Java 8 的兼容性转换

Java 11 到 Java 8 的兼容性转换 欲倚绿窗伴卿卿,颇悔今生误道行。有心持钵丛林去,又负美人一片情。 静坐修观法眼开,祈求三宝降灵台,观中诸圣何曾见?不请情人却自来。 入山投谒得道僧,求教上师说因明。争奈…

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践

作者:武基鹏,无锡锡商银行 大数据技术经理 编辑整理:SelectDB 技术团队 导读:为实现数据资产的价值转化以及全面数字化、智能化的风险管理,无锡锡商银行大数据平台经历从 Hive 离线数据仓库到 Apache Doris 实时数据仓…

ifconfig命令找不到 command not found

问题 今天解决虚拟机的网络问题后,使用ifconfig发现报错命令未找到 解决方案 输入yum install ifconfi的程序安装包 yum install ifconfig 如果显示没有可用软件包 ifconfig,错误:。 就输入yum search ifconfig匹配安装包程序 yum searc…