阿里用户序列建模ETA

news2025/1/9 14:20:59

End-to-End User Behavior Retrieval in Click-Through Rate Prediction Model

摘要

现实很少有工作可以处理长序列用户建模的问题,SIM提出了两阶段方法。第一阶段,辅助任务旨在从长序列用户行为检索最相关的用户行为序列。第二阶段,经典的注意力机制用来处理目标物料和第一阶段选出来的用户子序列的关系,进行CTR预估。

这种方式存在两个问题,首先是目标不一致,第一阶段目的是找到和目标物料相似的用户序列行为,第二阶段是尽可能的准确建模点击率;其次,第一阶段和第二阶段的更新频率不同,第一阶段是离线构建索引,然后导入到线上,第二阶段是参与在线训练。

受Reformer的启发,我们提出了一种称为 ETA(End-to-end Target Attention)可以大大降低训练和推理成本,并端到端训练长期用户行为序列。

1. 简介

如何有效地利用大量的信息型,主动的用户行为变得越来越重要,这也是本文的目标。提出了各种方法来建模顺序用户行为,数据早期的方法,如sum/avg池化方法,基于RNN的方法,基于cnn的方法和,基于自注意的方法编码不同长度的用户行为序列到固定维的向量。

然而,它们总是无法抓住用户的动态兴趣。这些方法还介绍了噪声通过编码所有用户的历史行为。要克服针对全局池化方法的缺点,提出了DIN方法,通过目标注意机制,其中目标候选作为查询𝑸和序列中的每个项作为键𝑲和值𝑽。然而,由于昂贵的计算和存储资源,DIN使用了最近的50个行为目标注意力,它忽略了资源丰富用户长序列的信息,明显是次优的效果。

最近,诸如SIM和UBR4CTR等方法都是可以从较长的用户行为中捕捉用户的动态兴趣。这些方法以两阶段的方式起作用。在第一阶段,是一个辅助任务旨在从长期用户检索topk和目标物料的行为序列,以便准备好top-k相关物料,第二阶段是目标注意机制,是在第一个项目中选择的子序列和目标项目之间进行建,然而,用于检索阶段的目标和主CTR任务目标是不同的。例如,UBR4CTR和SIM使用与目标物料的类别等属性相同的用户行为序列,这与CTR模型的目标有所不同。SIM还试图建立一个基于预先训练的向量,在训练和推理过程中,该模型可以搜索top-𝑘“相似”的无量。但CTR模型都是在线学习中更新向量embedding.因此,预先训练的embedding在离线索引中与在线CTR模型中的embedding相比,已经过时了。无论是发散的目标还是过时的检索向量,它都会是的长期用户行为序列无法被充分利用。

在本文中,我们提出了一种称为ETA的方法,可以实现端到端的长期用户行为建模,以减轻上述信息缺失(即目标发散和更新频率不一致)。我们使用SimHash来生成用户行为序列中每个行为的指纹。然后用汉明距离是用来帮助选择top-k物料。我们的方法把检索复杂性从O(LBd)降低到O(L*B),其中L为行为序列的长度,B是候选物料的数量,d为embedding的尺寸。降低复杂性是有帮助我们删除了离线辅助模型,并实时进行训练和服务过程中进行检索。

总结:
提出端到端的用户长序列建模。

2. 相关工作

特征交互:
特征交互的直观来看是为了记忆特征空间中的共现模式。例如,一个特征AND(user_install_app=netflix,impression_app=pandora)可以更好地捕获用户点击或未点击某个推荐的应用程序的规律。有代表性的文章有FM,FFM,GBDT+LR, Wide&Deep, FNN, AFM, DeepCross,DeepFM,PNN和xDeepFM。各种差异可以可以在任何两个模型之间找到,例如,是否有用到深度学习技术,embedding的权重和特征是共享,是否需要特性工程。

用户行为序列:

用户行为序列对每个用户是高度个性化的,引入按用户序列行为到CTR模型是一个显著的里程碑。Youtube使用观看视频序列和搜索词条建模用户兴趣,为了更好地从用户行为中提取用户的兴趣序列中,提出了各种模型,包括CNN、RNN,注意力机制和胶囊网络。然而从上述模型中学习到的用户兴趣向量是全局的,对于某个用户。DIN提出了一种基于注意力的方法,来捕获目标物料相关的用户局部兴趣。

长期的用户行为序列:
尽管功能强大,序列模型能够捕获用户多样化的兴趣,但是计算目标注意力(target attention)是昂贵的。线推理时间的严格限制使得类似于DIN的模型无法应用更长的用户序列。用户兴趣向量是离线更新,MIMN理论上可以处理任意长期用户行为序列,但当序列过长时,离线的用户兴趣向量包含了很多的噪声,影响到模型的精度。用户感兴趣地对CTR任务的其余部分进行建模。SIM和UBR4CTR在CTR中击败了MIMN任务,并成为SOTA模型。SIM和UBR4CTR均采用两阶段架构用来建模长期用户行为序列。在第一阶段,设计了一个辅助任务来检索top-k和目标物料相关的用户序列。在第二阶段,使用注意力机制建模目标物料和第一阶段选出的用户子序列。

除了上述关于CTR预测任务的相关工作外,还有很多的研究旨在提高transformer的效率和有效性。Reformer和Informer是最近的工作。然而他们只关注经典transformer的优化,由于大规模推荐系统在线推断的耗时限制,它们不能直接用于CTR预测任务。

3. SimHash简介

SimHash是局部敏感哈希(Local Sensitive Hash)的一种实现。LSH的思想是,在保留数据相对位置的条件下,将原始数据映射到一个碰撞率较高的低维的新空间里,从而降低下游任务的计算量。利用局部敏感哈希编码的高碰撞率,我们可以设计出更加稀疏的倒查索引键值,从而得到非常高效的文本去重方案,大量文本去重就是使用SimHash的方法。

SimHash算法
在这里插入图片描述
SimHash满足局部敏感特性:如果输入向量是相似的,输出的SimHash也是相似的。SimHash将向量从D维通过随机旋转投影到K维,降低维度,同时K维向量的值要么是0要么是1,这样可以使用汉明距离来计算两个向量的距离。这个旋转是通过输入向量和随机投影向量相乘实现的,随机投影向量就是hash函数。SimHash在旋转是相当于将D维超平面的一个个点映射到K维超平面的坐标轴上面,保持向量的相对距离。同时SimHash计算汉明距离时还可以通过位操作来加速计算过程。换句话说,以前判断两个向量相似性使用内积,现在只需要计算SimHash后的汉明距离,大大减少了计算量。值得注意的是,SimHash算法对选择的hash函数并不敏感。

以下是举例说明,在超平面上相近的两个原始点,经过SimHash投影映射后的签名0-1向量,保持着原本的距离性质。
在这里插入图片描述

4. 模型

4.1 概述

如下图,输入是用户长期序列、用户短期序列、用户画像、物料特征。分别使用长期用户兴趣抽取单元、多头注意力和Embedding层去处理长期用户序列、短期用户序列、用户和无量特征输入。然后concat到一起,送入MLP网络,最后经过sigmoid,得到用户点击的概率。
在这里插入图片描述

4.2 长期用户兴趣抽取单元

1)检索部分的目标应与整体CTR预测保持不变。只有这样,top-k才能检索到对CTR预测贡献最大的物料。
2)检索的时间应该是满足严格的推理时间限制,以保证算法的可以应用于现实系统中,满足每秒数百万的请求。

ETA将两个向量的内积计算转化为SimHash的汉明距离的计算,同时SimHash的局部敏感特性保证了两个原始相似的向量映射投影后还是相似的。SimHash将一个D维的向量映射成m位的0-1串,然后用汉明距离来衡量相似性。

top-k检索:汉明距离定义为两个hash串对应位置上字符不同的个数,使用异或(XOR)即可得到结果,相同则为0,不同则为1。计算汉明距离的时间复杂度为O(1),总的时间复杂度为O(LB1),相比于用内积计算的时间复杂度O(LBD),大大降低。

4.3 部署

在训练前初始化一个随机矩阵,用来作为SimHash的随机旋转投影。

选择和Reformer一样的hash函数。

对于SimHash后的签名向量(长度为m),计算汉明距离时,用log(m)个位的整数来表示这个签名向量,然后可以使用异或操作加速检索过程。

5. 实验

实验数据
在这里插入图片描述

在taobao数据集上面的效果

在这里插入图片描述
在工业数据集上面的效果
在这里插入图片描述
在这里插入图片描述

SimHash之后签名指纹向量长度和AUC的关系,当长度是2倍Embedding size的时候,auc最高,再往后增长很小了。
在这里插入图片描述

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

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

相关文章

位图和 DC 有什么特别之处?

相信设备上下文 (DC, Device Context) 对你来说,应该很熟悉。 基本工作方式是,你可以通过调用 SelectObject 来将画笔(Pen),画刷(Brush),字体(Font)和位图(Bitmap)等这些对象选入设备上下文中,但是,这里的位…

Android 面试题 应用程序结构 十一

🔥 Framework主要包含以下模块 🔥 ActivityManagerService 这是一个Activity的管理者,负责管理所有Activity的生命周期。WindowManagerService 它是手机屏幕的的管理者,管理着屏幕的详细情况,所有对屏幕的操作最终都…

ChatGPT学python——制作自己的AI模型(一)初步了解

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

2023国际先进制造青年科学家大会圆满结束!易知微受邀进行数字孪生主题报告分享

2023年7月30日,以“新青年,新视野,新制造”为主题的2023国际先进制造青年科学家大会在浙江绍兴开幕,旨在强力推进创新深化改革攻坚开放提升,进一步做强“人才+产业”双联驱动、人才集聚与产业发展共振同兴&…

NLP/CV相关模型库-阿里

模型库地址:https://www.modelscope.cn/models

30岁转行学编程,更容易成功

“男人30而立,我没有退路,只有选择勇往直前,这样我才能无所畏惧,因为我希望在我的人生篇章里,能拥有浓墨重彩的一笔!” 30岁,在经历一番“打击”后毅然决然选择学编程,为家人也为自…

解决Mysql报错2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)

1.找到mysql文件夹,将my,ini文件放入bin文件夹 2.管理员模式打开cmd 3.输入netstat -ano查看端口占用情况,这里我已经开启mysql应用,所以会有3306,如果没有开启是不会有的 4.输入sc delete mysql,删除mysql服务 5.将…

Vue如何实现重定向

在刚登录之后,我们想要默认展示一下用户登录,这个功能如何实现: 就是重定向为/home/user这个值 我们就是在/home 上加一个重定向 具体怎么做那,先找到/home的路由规则 想要实现重定向,增加一个redirect就行

基于SpringBoot+Vue的广场舞团管理系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

无涯教程-Lua - 环境安装

在Windows上安装 为Windows环境开发了一个单独的名为" SciTE"的IDE,可以从https://code.google.com/p/luaforwindows/下载部分。 运行下载的可执行文件以安装Lua IDE。 由于它是一个IDE,因此您可以使用它来创建和构建Lua代码。 如果您有兴趣在命令行模…

【私藏】matlab踏实手把手常规练习附全套学习资料

目录 前言 福利&#xff1a;文末有matlab全套资料哦 01分段函数 02复合图 ⚪️ 两个一元函数yx^3-x-1和y|x|^(0.2)sin(5x)在区间-1<2的复合图。函数与图像<> 03三维平面图 ⚪️ 三维平面图使用mesh绘制网格图&#xff0c;surf绘制三维曲面图&#xff0c;使用…

filebeat kibana elasticsearch 日志监控

解压三个压缩包 一、filebeat的安装部署 1、打开filebeat的配置文件 2、Filebeat inputs 处打开日志输入开关&#xff0c;设置要监控的路径 3、Outputs 输出中设置Elasticsearch output的输出地址 4、执行 ./filebeat & 二、Elasticsearch 安装部署 1、修改配置文件 …

C语言:相交链表

Lei宝啊&#xff1a;个人主页 愿美好与我们不期而遇 题目&#xff1a; 描述 给你两个单链表的头节点 headA和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 接口 struct ListNode *getIntersectionNode (str…

使用javax.validation.constraints进行数据验证

使用javax.validation.constraints进行数据验证 在Java应用中&#xff0c;数据的验证是一个很重要的部分&#xff0c;特别是在接收用户输入或处理外部数据时。为了简化和标准化数据验证的过程&#xff0c;Java提供了javax.validation.constraints包&#xff0c;其中包含一系列注…

MySQL数据库——约束

文章目录 前言主键约束创建主键单列主键联合主键通过修改表结构来指定主键 删除主键约束 自增主键约束创建自增主键 非空约束创建非空约束删除非空约束 唯一约束创建唯一约束删除唯一性约束 默认约束创建默认约束删除默认约束&#xff08;改为null为默认值&#xff09; 零填充约…

安装Vue浏览器插件vue.Devtools(小白无压力教程)

1、打开网址:选择vue.js.Devtoolshttps://chrome.zzzmh.cn/index#/search极简插件是一个优质Chrome插件扩展收录下载网站&#xff0c;收录热门好用的Chrome插件扩展&#xff0c;国内最方便的插件下载网站。https://chrome.zzzmh.cn/index#/search 2、下载安装包后&#xff0c;…

【论文简述】DIP: Deep Inverse Patchmatch for High-Resolution Optical Flow(CVPR 2022)

一、论文简述 1. 第一作者&#xff1a;Rui Li 2. 发表年份&#xff1a;2023 3. 发表期刊&#xff1a;CVPR 4. 关键词&#xff1a;光流、深度学习、PatchMatch、局部搜索 5. 探索动机&#xff1a;对于深度学习来说&#xff0c;除了准确性之外&#xff0c;性能和内存也是一个…

基于 FFlogs API 快速实现的 logs 颜色查询小爬虫

文章目录 找到接口解析响应需要平均颜色和过本次数&#xff1f; 找到接口 首先试了一下爬虫&#xff0c;发现和wow一样官网上有暴露的 API&#xff0c;链接在&#xff1a;FFlogs v1 API 文档链接 通过查询官方提供的 API 接口得知&#xff1a; user_name 角色名字 api_key …

解决安装VMware Tools灰色问题,解决重新安装VMware Tools灰色问题

一、环境 vmware 版本&#xff1a;17.0.0 build-20800274 centos 9 二、问题 安装VMware Tools 按钮为灰色 三、解决方法 网上很多写这些如何解决该问题的&#xff0c;如&#xff1a;配置CD/DVD&#xff08;SATA&#xff09;为自动检测&#xff0c;或者指定其CD镜像文件为…

3个命令定位CPU飙高

top 指令找出消耗CPU最厉害的那个进程的pid top -H -p 进程pid 找出耗用CPU资源最多的线程pid printf ‘0x%x\n’ 线程pid 将线程pid转换为16进制 结合jstack 找出哪个代码有问题 jstack 进程pid | grep 16进制的线程pid -A 多少行日志 jstack 进程pid | grep 16进制的线程…