召回和排序模型中的用户行为序列的建模

news2024/11/19 16:23:13

1. 概述

用户在使用一个APP或者浏览网页的过程中,都是由一些行为构成的,以资讯类为例,通常对一个帖子感兴趣,对于感兴趣的帖子,通常会点击进入查看,或者点击收藏或者对其进行评论,这一系列行为的背后都体现了用户的兴趣,而对用户行为过的帖子的序列的挖掘,能够对用户兴趣的表征。

为了兼顾速度和效果,在推荐系统中通常包含多个模块,如召回和排序模块,更具体点可以将推荐系统分为四个环节,分别为:召回,粗排,精排和重排,这四个环节之间的关系可见下图所示[1]:

在这里插入图片描述

召回模块通过对用户兴趣建模,在内容库中找到与用户兴趣相匹配的资讯内容;排序模块通过对用户兴趣建模,根据用户的兴趣,将召回模块返回的资讯根据用户兴趣打分,以判断当前的资讯内容与用户兴趣的匹配程度(得分)。

在深度网络中,对于用户行为过的资讯内容的序列的建模,可以用一个函数 f ( x ) f\left ( x \right ) f(x)表示,函数的输入是用户行为过的资讯内容的序列,可以是资讯的ID,也可以融入一些Side Information,如标题,tag,图片等,函数的输出是一个表征(通常用Embedding表示)。

2. 常用的建模方法

对于函数 f ( x ) f\left ( x \right ) f(x)通常有如下的一些方法。

2.1. 基于Pooling方法的用户兴趣挖掘

Pooling方法是最简单的一种方法,常用的Pooling方法如mean pooling,sum pooling等,即通过对用户行为过的资讯内容embedding后,将序列中所有的embedding进行Pooling操作。在召回模型DeepMatch[2]中使用的就是Mean Pooling,其模型结构如下图所示:

在这里插入图片描述

通过Mean Pooling后,用户的兴趣表征 v U \boldsymbol{v}_U vU可以表示为:

v U = f ( e 1 , e 2 , ⋯   , e H ) = 1 H ∑ i = 1 H e i \boldsymbol{v}_U=f\left (\boldsymbol{e}_1,\boldsymbol{e}_2,\cdots ,\boldsymbol{e}_H \right )=\frac{1}{H}\sum_{i=1}^{H}\boldsymbol{e}_i vU=f(e1,e2,,eH)=H1i=1Hei

其中 e i \boldsymbol{e}_i ei为行为序列中第 i i i个item。对于排序模型,在[3]中的提及到的Base模型中使用的是Sum Pooling,其模型结构如下图所示:

在这里插入图片描述

通过Sum Pooling后,用户的兴趣表征 v U \boldsymbol{v}_U vU可以表示为:

v U ( A ) = f ( e 1 , e 2 , ⋯   , e H ) = ∑ i = 1 H e i \boldsymbol{v}_U\left ( A \right )=f\left (\boldsymbol{e}_1,\boldsymbol{e}_2,\cdots ,\boldsymbol{e}_H \right )=\sum_{i=1}^{H}\boldsymbol{e}_i vU(A)=f(e1,e2,,eH)=i=1Hei

2.2. 与当前候选相关的用户兴趣挖掘

上述的Pooling方法是对用户行为序列最简单的操作方式,针对不同的候选时,挖掘出的用户兴趣是不变的,并不能根据不同的候选计算出当前用户的兴趣,在参考[3]中提出DIN模型用于排序过程,根据不同的候选,利用Attention的计算机制计算用户兴趣,其模型结构如下图所示:

在这里插入图片描述

在加入Attention后,用户的兴趣表征 v U \boldsymbol{v}_U vU不再是不变的Embedding,而是根据候选 v A \boldsymbol{v}_A vA变化的,最周用户的兴趣表征 v U ( A ) \boldsymbol{v}_U\left ( A \right ) vU(A)可以表示为:

v U ( A ) = f ( v A , e 1 , e 2 , ⋯   , e H ) = ∑ j = 1 H a ( e j , v A ) e j = ∑ j = 1 H w j e j \boldsymbol{v}_U\left ( A \right )=f\left ( \boldsymbol{v}_A,\boldsymbol{e}_1,\boldsymbol{e}_2,\cdots ,\boldsymbol{e}_H \right )=\sum_{j=1}^{H}a\left ( \boldsymbol{e}_j,\boldsymbol{v}_A \right )\boldsymbol{e}_j=\sum_{j=1}^{H}\boldsymbol{w}_j\boldsymbol{e}_j vU(A)=f(vA,e1,e2,,eH)=j=1Ha(ej,vA)ej=j=1Hwjej

2.3. 基于时序建模的用户兴趣挖掘

在对用户行为序列提取用户兴趣的过程中,上述的方法中都忽视了一点,即在用户行为序列中,是有时间顺序的。这一点对应到用户的兴趣上来说,可以理解为用户的兴趣随着时间也是在不断变化的。对于序列数据的挖掘,在NLP中有很多的方法,如CNN,RNN,LSTM,GRU到目前使用较多的Transformer,在参考[4]中提出GRU4Rec模型用于排序过程,在GRU4Rec中,使用GRU对行为序列建模,其模型结构如下图所示:

在这里插入图片描述

其中,输入是用户的行为序列和候选的组合: { e 1 , e 2 , ⋯   , e H , v A } \left \{ \boldsymbol{e}_1,\boldsymbol{e}_2,\cdots ,\boldsymbol{e}_H,\boldsymbol{v}_A \right \} {e1,e2,,eH,vA},其中 { e 1 , e 2 , ⋯   , e H } \left \{ \boldsymbol{e}_1,\boldsymbol{e}_2,\cdots ,\boldsymbol{e}_H \right \} {e1,e2,,eH}是用户的历史行为序列, v A \boldsymbol{v}_A vA是候选;输出是分数,可以理解为CTR。

基于Transformer的模型在多个NLP任务中得到了提升,能够很好的挖掘序列数据,在参考[5]中提出了BST模型用于排序过程,在BST模型中,使用Transformer中的Encoding部分对用户行为序列挖掘,其模型结构如下图所示:

在这里插入图片描述

与参考[4]中不同的是在对行为序列的模型上,在参考[4]中使用的是GRU,在参考[5]中使用的是Transformer中的Encoding部分。在参考[6]中提出DIEN模型用于排序过程,在DIEN模型中,将序列的挖掘和候选的Attention相结合,得到用户随时间演化的兴趣表征,同时这个表征还是与当前的候选是相关的,其模型结构如下图所示:

在这里插入图片描述

在DIEN中,对于用户兴趣的挖掘包括两个方面,一方面是兴趣提取层,另一个方面是兴趣演化层。在兴趣提取层中主要是使用GRU算法对用户行为序列数据挖掘,在兴趣演化层中,参考[6]中提出了三种方式,分别为:

  • GRU with attentional input (AIGRU)
  • Attention based GRU(AGRU)
  • GRU with attentional update gate (AUGRU)

这三种方式都是在尝试不同的方式充分使用Attention的得分。

2.4. 用户多兴趣挖掘

DIN模型虽然能够根据当前的候选,通过用户历史行为数据挖掘到用户当前的兴趣,但是还是以单个embedding的形式表达用户兴趣,通常不足以捕获用户不同阶段、不同性质的兴趣分布。在现实中,用户的兴趣也不是单一的,在同一时刻也是会有多种兴趣并存的。参考[7]中提出MIND模型用于召回过程,在MIND中,Multi-Interest Extractor Layer对用户历史行为序列挖掘,提取出多个用户兴趣表征,这其中最终要的是称为Dynamic Routing的方法,该方法可以从用户行为和用户属性信息中动态学习出多个表示用户兴趣的向量,这是一种基于胶囊路径机制的多兴趣提取层,对历史行为聚类,从而提取到不同的兴趣。MIND模型结构如下图所示:

在这里插入图片描述

3. 总结

用户历史行为数据对用户兴趣的挖掘至关重要,无论是召回阶段,还是排序阶段,都需要使用到这部分的数据,随着深度学习的发展,对行为数据的挖掘也在不断深入,从最初的简单的Pooling操作,到序列挖掘,到Attention的计算,到多兴趣的挖掘,对这部分数据的挖掘也会进一步提升模型的效果。

参考文献

[1] Wang Z, Zhao L, Jiang B, et al. Cold: Towards the next generation of pre-ranking system[J]. arXiv preprint arXiv:2007.16122, 2020.

[2] Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations[C]//Proceedings of the 10th ACM conference on recommender systems. 2016: 191-198.

[3] Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining. 2018: 1059-1068.

[4] Hidasi B, Karatzoglou A, Baltrunas L, et al. Session-based recommendations with recurrent neural networks[J]. arXiv preprint arXiv:1511.06939, 2015.

[5] Chen Q, Zhao H, Li W, et al. Behavior sequence transformer for e-commerce recommendation in alibaba[C]//Proceedings of the 1st International Workshop on Deep Learning Practice for High-Dimensional Sparse Data. 2019: 1-4.

[6] Zhou G, Mou N, Fan Y, et al. Deep interest evolution network for click-through rate prediction[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33(01): 5941-5948.

[7] Li C, Liu Z, Wu M, et al. Multi-interest network with dynamic routing for recommendation at Tmall[C]//Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2019: 2615-2623.

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

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

相关文章

电脑录屏怎么录全屏?win10电脑如何录屏

随着互联网的发展,线上办公以及网课越来越频繁;线上办公或者网课都是使用电脑来完成工作和学习的;那Win10电脑如何录屏以及电脑录屏怎么录屏全屏呢?接下来给大家分享三个电脑录制全屏的教程方法给大家; win10录制全屏方…

【MySQL】绿色版下载配置教程(Windows)

文章目录下载MySQL压缩包1 创建my.ini文件2 配置mysql环境变量3 在终端执行命令下载MySQL压缩包 https://dev.mysql.com/downloads/mysql/ 1 创建my.ini文件 模板内容如下 [mysqld] basedir D:\\Program Files\\mysql # 设置mysql的安装目录 datadir D:\\Program Files\\m…

红黑树简介

一、红黑树 1、概念 红黑树(Red Black Tree) 是一种自平衡二叉搜索树。它在每个结点上增加一个存储位表示结点的颜色,可以是 Red或 Black。 通过任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其…

为什么生产MES系统对工厂管理如此重要?

随着生产业务、计算机技术的发展,MES管理系统的定义也是在不断的变化。但是,计划调度、质量管理、生产执行以及数据(设备,产品信息)采集,一直都是MES的核心功能。 工业物联网,对于制造业来说并…

数据结构--顺序表、链表、栈、队列、树、文件(visual studio可运行)

顺序表的顺序存储&#xff08;增删查&#xff09; #include <stdio.h> #include <stdlib.h> #define MaxSize 50 typedef int ElemType;//保证顺序表可以存储任何类型 //静态分配 typedef struct{ ElemType data[MaxSize];//定义的数组&#xff0c;用来存元素…

MergeTree写入查询流程分析

基础概念回顾 前面几节我们分别详细分析了分区&#xff0c;索引&#xff0c;数据存储相关原理&#xff0c;这些组件配合在一起给Clickhouse数据库带来非常高效的查询性能。前面的文章也单独介绍了这几个组件。接下来&#xff0c;就分别从写入过程、查询过程&#xff0c;以及数…

数字孪生水电站,三维组态助力发电流程优化

从大禹治水到三峡大坝的建造&#xff0c;人类为控制和调配自然界的地表水和地下水&#xff0c;修建了许多的水利工程。对水资源进行了广泛的开发利用&#xff0c;诸如农业灌溉、工业和生活用水、水力发电、航运、港口运输、淡水养殖、旅游等。 将图扑软件与 GIS、粒子仿真、虚拟…

在re:Invent 2022大会打球、喝酒?没错!

编辑&#xff5c;阿冒虽然距离去拉斯维加斯参加亚马逊云科技re:Invent 2022大会&#xff0c;差不多已经过去了一个月&#xff0c;不过时不时仍有熟稔的朋友来问我&#xff0c;你在展区球场上如何如何&#xff0c;巴拉巴拉……为啥他们对我的行动如此了解&#xff1f;其实&#…

effective C++读书笔记

目录 用const,enum,inline去替换#define 尽可能去使用const 确保对象使用前已被初始化 这是effective C中的第一大章节&#xff1a;让自己习惯c 用const,enum,inline去替换#define 当用使用这样的代码&#xff1a; #define ASPECT RATIO 1.653 记号名称ASPECT RATIO可能未…

图像风格迁移---基于多适应网络的任意风格传输

ABSTRACT 任意风格转换是一个具有研究价值和应用前景的重要课题。给定一个内容图像和引用的风格绘画&#xff0c;一个所需的风格转换将使用风格绘画的色彩色调和生动的笔画模式渲染内容图像&#xff0c;同时保持详细的内容结构信息。风格迁移方法首先学习内容和内容和风格引用…

推荐系统的矩阵分解

0 序言 推荐系统中基于内容的协调过滤算法通过用户之间的相似性或者物品之间的相似性&#xff0c;通过相似性来为用户做决策和推荐&#xff1b;基于内容的协调过滤算法在实际生产环境中&#xff0c;User或Item的数据量非常大&#xff08;百万级别&#xff09;&#xff0c;存储…

操作系统期末考试必会题库3——处理机调度

1、假设一个系统中有5个进程&#xff0c;它们处于就绪状态的时刻和估计运行时间如下表所示&#xff0c;忽略I/O以及其它开销时间&#xff0c;若分别按先来先服务&#xff0c;最短进程优先&#xff0c;最短剩余时间优先、响应比优先、时间片轮转&#xff08;时间片&#xff1d;1…

世界杯 | 其实世界杯结束之前,卡塔尔就开拆体育场了...

大家好&#xff0c;这里又是建模助手。 世界杯已经圆满落幕&#xff0c;梅老板满载而归&#xff0c;但阿根廷与法国的这场世界杯决赛注定载入史册&#xff0c;成为永恒经典&#xff0c;或许将会是世界杯历史上最精彩的决赛之一。 &#xff08;梅老板捧起大力神杯那一刻&#x…

人工鱼群算法参数寻优及可视化(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 人工鱼群优化算法是一种基于模拟鱼群行为的优化算法&#xff0c;是由李晓磊等在2002年提出的一种新型的寻优算法。人工鱼群主要…

黑马Hive+Spark离线数仓工业项目--数仓事实层DWB层构建(1)

整体目标&#xff1a;构建数仓中的DWB&#xff1a;主题事务事实表 核心的主题事实的构建&#xff1a;SQL实现 主题的指标 原始事务事实数据【DWD】&#xff1a;订单数据 主题事务事实数据【DWB】&#xff1a;订单主题 - 主题周期快照事实表&#xff1a;数据应用层【ST&#…

一场4800亿“锂电”战事,瑞浦兰钧射出三支“价值之箭”

顺势而为&#xff0c;是一家企业成功突围的最佳利器。 如今&#xff0c;几乎所有企业都被“碳达峰碳中和”的国家级战略所影响。在此大势的推动之下&#xff0c;锂离子电池、清洁能源等产业也随之进入高速发展期。工信部数据显示&#xff0c;上半年全国锂离子电池产量超过280G…

HNU编译原理实验二cminus_compiler-2022-fall

前言&#xff1a;个人感觉比第一次的难&#xff0c;借鉴了前辈的报告才勉强看懂在干嘛 lab2实验报告实验要求 本次实验需要先将自己的 lab1 的词法部分复制到 /src/parser 目录的 lexical_analyzer.l并合理修改相应部分&#xff0c;然后根据 cminus-f 的语法补全 syntax_analy…

3.3 直接耦合放大电路

工业控制中的很多物理量均为模拟量&#xff0c;如温度、流量、压力、液面、长度等&#xff0c;它们通过各种不同传感器转化成电量后也均为缓慢变化的非周期性信号&#xff0c;而且比较微弱&#xff0c;因而这类信号一般均需通过直接耦合放大电路后才能驱动负载。 一、直接耦合…

二叉树,红黑树,B树、B+树的区别

树的概念 树的演变 二叉搜索树 二叉搜索树可以提高查询效率&#xff0c;左小右大&#xff0c;但是他不好掌握根节点的数字是哪个&#xff0c;容易一边倒&#xff0c;导致层数变多&#xff0c;降低效率 平衡二叉搜索树 平衡二叉搜索树在二叉搜索树的基础上,通过控制任意一个节…

Shell“语言程序设计基础......“

Shell语言也有设计基础吗?...... 没有所谓的语言程序设计基础往往是一种就是菜鸡互啄的一种状态......哦,据说当年,发明笔记本电脑的人(想出发明笔记本电脑这个创意的人)一开始的工作是写说明书的Linux 或者 Unix 发明的那个年代应该还没有这种充满了营销的或者应试的表述方法…