【序列推荐】MAN:跨领域顺序推荐的混合注意网络

#论文题目:MAN:Mixed Attention Network for Cross-domain Sequential Recommendation(跨领域顺序推荐的混合注意网络)
#论文地址:https://dl.acm.org/doi/10.1145/3543507.3583278
#论文源码开源地址:https://github.com/Guanyu-Lin/MAN
#论文所属会议:WSDM‘23
#论文所属单位:卡耐基梅隆大学、清华大学、快手科技、合肥工业大学

在这里插入图片描述

一、摘要

本文提出了一种具有局部全局注意模块的混合注意网络(MAN)来提取特定领域和跨领域的信息。首先,提出了一个局部/全局编码层来捕获特定领域/跨领域的序列模式。在此基础上,提出了一个包含项目相似度、序列融合和群体原型的混合注意层,用于捕获局部/全局项目相似度,融合局部/全局项目序列,并分别提取不同领域的用户群体。最后,提出了一个局部/全局预测层,以进一步发展和结合特定领域和跨领域的兴趣。进一步的研究还表明,提出的方法和组件分别是模型无关的和有效的。

二、问题预定义

在跨域顺序推荐问题中,首先用A和B表示两个域,定义 I I IA I I IB分别表示定义域a和b中的项目集,更具体的,假设 i i itA I I IA i i itB I I IB是第 t t t个给定用户交互的在域A和B项目,因此,可以得到( i i i1A, i i i2A, …, i i itA)和( i i i1B, i i i2B, …, i i itB)。最终是要判断模型预测的 i i it+1A i i it+1B

具体来说:
Input:对于用户在域A和B中,物品序列( i i i1A, i i i2A, …, i i itA)和( i i i1B, i i i2B, …, i i itB)。
Output:跨领域推荐模型估计目标项目 i i it+1A i i it+1B分别在域a和b中,被给定用户与项目序列交互的概率( i i i1A,
i i i2A, …, i i itA)和( i i i1B, i i i2B, …, i i itB)。

三、模型结构

总体来说,模型分为三部分:

  • 局部/全局编码层。为项目构建特定领域的本地和跨领域的全局嵌入。进一步分别使用本地和全局编码器对它们进行编码,以捕获特定领域和跨领域的项目序列模式。
  • 混合注意层。提出了项目相似性注意、序列融合注意和群体原型注意来捕获项目、序列和群体水平上的跨领域模式
  • 局部/全局预测层。为了进化兴趣并预测用户在每个领域中与候选人下一个项目交互的概率,提出了一个局部预测层和一个全局预测层。
    在这里插入图片描述

3.1 局部/全局编码层

首先构建本地和全局项目嵌入。然后,进一步查找项目嵌入,并在序列级别用本地和全局编码器对它们进行编码。

3.1.1 本地和全局项目嵌入

为了捕捉不同领域的领域特定模式,创建了两个项目嵌入矩阵 M M M𝐴 R R R |I𝐴|×𝐷 M M MB R R R |IB|×𝐷,其中𝐷表示潜在维度。然后,为了捕捉跨不同领域的共享项目特征,从表征学习的角度,假设存在共享的潜在空间,其中不同领域具有共同的表征;因此,创建一个共享嵌入矩阵 M M M R R R|i𝐴∪i𝐵|×𝐷’
之后,通过加入位置编码,得到域A和B项目的局部和全局嵌入:
在这里插入图片描述

3.1.2 序列的局部编码器和全局编码器

在从嵌入层获得 E E EA E E EB, E E EAg, E E EBg之后,应用序列编码器来学习序列模式。这里提出如下的局部编码器和全局编码器:

在这里插入图片描述
注意,这个Encoder是序列推荐的骨干模型(如:SASRec、SURGE等)。基于上述操作,得到了 S S SA( S S SB), S S SAg( S S SBg)分别代表域A (B)中的局部序列模式和全局序列模式。

3.2 混合注意层

在本节中,首先提出项目相似性注意,以从局部和全局空间中提取相似项目。然后,提出序列融合注意来进一步融合局部和全局项目序列表示,这将结合特定领域和跨领域的序列模式。最后,提出群体原型注意来提取跨领域的群体模式。

3.2.1项目相似性注意

为了捕捉局部/全局项目嵌入和目标项目嵌入之间的相似性,首先将来自局部空间(即, E E E𝐴𝑗 E E E𝐵𝑗)和全局空间(即, E E E𝐴𝑔𝑗 E E E𝐵𝑔𝑗)的项目嵌入融合在一起。具体地,给定域A (B)中的用户,可以如下计算他/她的历史项目和目标项目之间的项目相似性得分 F F F𝐴 ( F F F𝐵):
在这里插入图片描述
M M MiA M M MiB表示域A (B)的目标项的嵌入,而 || 表示连接操作。基于项目相似性分数,然后可以对相似的历史项目的嵌入进行加权,以如下精炼项目嵌入,
在这里插入图片描述
其中 E E E 𝐴𝑖 E E E 𝐵𝑖 R R R 𝑇×𝐷分别是目标条目的相似历史条目在域a和域b中由 F F F𝐴 F F F𝐵的相似性分数加权的表示。这里𝐴𝑖和𝐵𝑖分别指𝐴和𝐵领域的项目相似性。

3.2.2 序列融合注意力

在获得 S S S𝐴 S S S𝐵 S S S𝐴𝑔 S S S𝐵𝑔之后,然后将它们融合以将特定于域的和跨域的序列模式组合在一起,如下所示(下述部分直接上图了),
在这里插入图片描述

3.2.3 群体原型注意

尽管不能跨域利用重叠的用户id,但是通常存在具有相似偏好的用户组。具体来说,首先汇集每个序列以获得与每个组的相关性。然后,利用多个组原型来聚合项目组,并根据它们的相关性对它们进行加权。

  • 团体利益共享。对于一个用户的一个物品序列,它实际上不仅仅属于一个集团原型。相反,它可以是几个不同重量的原型的混合组合。例如,用户可以同时是青少年和篮球爱好者。因此,提出了一个可学习的软集群分配矩阵,以计算𝑁𝑔集团的重要性。具体来说,每个用户的项目序列首先由一个汇集矩阵 W W W𝑃𝐴 R R R 𝑁𝑔×𝑇 ( W W W𝑃𝐵 R R R 𝑁𝑔×𝑇)汇集,在此基础上,用户与每个组的相关性可以计算如下:
    在这里插入图片描述
  • 群体利益聚合。然后,创建𝑁𝑔集团原型嵌入G ∈ R R R𝑁𝑔×𝐷代表利益集团。这些嵌入然后可以被转换到每个域,聚集典型的相关项目如下,
    在这里插入图片描述
    其中 G G G𝐴 G G G𝐵 R R R 𝑁𝑔×𝐷分别是获得的a域和b域序列的群原型表示。这里CA层类似于方程(8)。然后,可以基于如下相关性分数对所有组原型表示进行加权,
    在这里插入图片描述
  • 群体原型解开。根据定义,每个组原型显然应该是不同的。因此,受解开表征学习进展的启发,提出原型解开正则化如下,并将其加入到总体损失函数的计算过程中:
    在这里插入图片描述

3.3 局部/全局预测层

在这一部分,首先通过相应的预测层发展局部和全局兴趣。然后用每个域的目标函数对它们进行优化。

3.3.1局部和全局预测层

利用提出的混合注意网络(项目相似性注意、序列融合注意和群体原型注意),将输出连接在一起,并将它们馈送到提出的局部预测层以及基于MLP的全局预测层,其可以被公式化如下:
在这里插入图片描述

3.3.2 独立更新的目标函数

然后,利用负对数似然函数进行优化,可以用公式表示如下:
在这里插入图片描述
为了跨两个域进行联合优化,最终的目标函数是等式2中计算的 L L L𝐴 L L L𝐵 L L L𝑔的线性组合,最终的损失函数为:
在这里插入图片描述
其中,θ𝐴和θ𝐵是可学习参数集,𝜆 𝐴和𝜆 𝐵分别作为域a和域b的正则化罚超参数。

讨论。不同于现有的基于桥用户的跨域顺序推荐工作,如PiNet和DASL,提出的MAN模型并不严格要求两个域的项目序列同时作为输入,因为提出的模型的每个域的输出不需要另一个域的输入。也就是说,模型中的每个域都可以独立地更新它的参数。如果没有来自任何域的输入,可以很容易地删除该域的优化目标,例如等式的损失函数(18)如果没有来自域a的输入,将被简化为
在这里插入图片描述
在现实世界的在线推荐中,由于来自两个域的新收集的数据总是不同步的(MAN可以针对每个域迭代优化),所以MAN更实用。

四、实验

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Docker可视化工具Portainer(轻量)或者Docker容器监控之 CAdvisor+InfluxDB+Granfana(重量)

Docker轻量级可视化工具Portainer 是什么 Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。 安装 官网 https://www.portainer.io/ https://docs.portainer.io/v/ce-2.9/start/instal…

CANdelaStudio 中 Bese Variant 和 Variant区别

关于 Bese Variant ,其在 CDDT 和 CDD 文件中都存在,有且只有一个 主要包含三部分,重点只关注 DIDs 和 Supported Diagnostic Classes 而在 CDD 文件中,除了 Bese Variant 外,还有一个 Variant “Variant” 这个概…

minio分布式存储系统

目录 拉取docker镜像 minio所需要的依赖 文件存放的位置 手动上传文件到minio中 工具类上传 yml配置 config类 service类 启动类 测试类 图片 视频 删除minio服务器的文件 下载minio服务器的文件 拉取docker镜像 拉取稳定版本:docker pull minio/minio:RELEASE.20…

解析和存储优化的批量爬虫采集策略

如果你正在进行批量爬虫采集工作,并且想要优化解析和存储过程,提高采集效率和稳定性,那么本文将为你介绍一些实用的策略和技巧。解析和存储是批量爬虫采集中不可忽视的重要环节,其效率和质量对整个采集系统的性能至关重要。在下面…

前端 --- HTML

目录 一、网络的三大基石 ​二、什么是HTML 一、HTML 指的是超文本标记语言 二、HTML的作用 三、HTML的标准结构 四、IDE_HBuilder的使用 一、编码工具: 二、集成开发环境 三、HBuilder使用步骤: 五、HTML的标签的使用 一、html_head_body 二、head…

视频字幕处理+AI绘画,Runway 全功能超详细使用教程(4)

runway的视频字幕处理、AI绘图功能介绍,感觉完全就是为了做电影而布局,一整套功能都上线了!想系统学习的必收藏! 在深度研究Runway各个功能后,无论是AI视频生成及后期处理技术,还是AI图像生成技术&#xff…

浮点数在内存中的存储

浮点数的存储 根据国际标准IEEE,任意⼀个⼆进制浮点数V可以表⽰成下⾯的形式: V (−1) ^S∗ M ∗ 2^E • (−1)^ S 表⽰符号位,当S0,V为正数;当S1,V为负数 • M 表⽰有效数字,M是⼤于…

原生DOM事件、react16、17和Vue合成事件

目录 原生DOM事件 注册/绑定事件 DOM事件级别 DOM0:onclick传统注册: 唯一(同元素的(不)同事件会覆盖) 没有捕获和冒泡的,只有简单的事件绑定 DOM2:addEventListener监听注册:可添加多个…

使用mock.js模拟数据

一、安装mock.js npm i mockjs 二、配置JSON文件 我们创建一个mock文件夹,用于存放mock相关的模拟数据和代码实现。 我们将数据全部放在xxx.json文件夹下,里面配置我们需要的JSON格式的数据。 注意:json文件中不要留有空格,否则…

GDOUCTF2023-Reverse WP

文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L!s![GDOUCTF 2023]润!附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP: from z3 i…

万字解析设计模式之迭代器模式、备忘录模式

一、迭代器模式 1.1概述 迭代器模式是一种行为型设计模式,它允许在没有暴露其底层表现形式的情况下遍历集合对象。迭代器模式提供一种通用的遍历机制,可以遍历任何类型的集合,包括数组、列表、树等。通过这种模式,可以实现一种通…

宝塔面板的使用

记录一下: 后台是SpringBoot项目,前台是Vue项目,前后端分离,要用宝塔布署上腾讯云服务器。 后台:配置文件的数据写云端的。有关localhost的要改成云服务器的公网IP。执行package命令,双击。将打包出来的j…

C 语言-循环嵌套-函数

C 语言 - 循环嵌套、函数 1. 循环嵌套 1.1 作用 循环 套 循环。 1.2 使用 需求1&#xff1a; 打印以下图形&#xff1a; * * * * * * * * * * * * * * * *代码&#xff1a; 1、使用循环打印 #include <stdio.h> int main(int argc, char const *argv[]) {for (int i…

云原生CI/CD流水线发布

文章目录 前言k8s组件与操作流程k8s组件创建pod k8s代码&&打包k8s yamldeploymentservicek8s volumesdemo CIgitlabCI runner CD配置git repository安装argo创建argo cd的配置yamlargocd和helm结合argocd hookargocd 发布 RBACoperatorhelmprometheus && grafn…

曝光!WPS用户信息或被盗用,紧急行动,迅软DSE数据加密应时而动!

WPS摊上大事了&#xff01;有用户发现&#xff0c;在WPS更新的一版用户隐私政策中&#xff0c;明确提到&#xff1a;“我们将对您主动上传的文档材料&#xff0c;在处理后作为AI训练的基础材料使用。”换句话说&#xff0c;WPS有可能“白嫖”用户的文档信息&#xff0c;用于投喂…

CVE-2020-11651(SaltStack认证绕过)漏洞复现

简介 SaltStack是使用Python开发的一个服务器基础架构集中化管理平台,底层采用动态的连接总线,使其可以用于编配,远程执行, 配置管理等等。 Salt非常容易设置和维护,而不用考虑项目的大小。从数量可观的本地网络系统,到跨数据中心的互联网部署,Salt设计为在任意数量的…

顺序表总结

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 目录 &#x1f324;️arraylist的简…

JAVA多线程总结

一、概念&#xff1a; 1、什么是多任务 多任务就是在同一时间做多件事情&#xff0c;如边吃饭边玩手机等。看起来是多个任务都在做&#xff0c;本质上我们的大脑在同一时间依旧只做了一件件事情 2、什么是程序 程序是指令和数据的有序集合&#xff0c;其本身没有任…

洗地机应该怎么选?希亦、必胜、米博、添可、小米洗地机实测推荐

作为一个常年测评智能家居的博主&#xff0c;关于洗地机的测评使用这些年也积累了不少的体验感受。以至于常被周边的朋友问到&#xff0c;洗地机到底是不是真的好用&#xff1f;洗地机有什么优点吗&#xff1f;选购的时候应该怎么选呢&#xff1f;洗地机什么牌子比较好呢&#…

chatglm3 vllm部署推理;api访问使用

用fastchat部署暂时有各种问题,参考:https://github.com/lm-sys/FastChat/pull/2622 本篇用vllm运行测试可以使用 1、vllm运行 python -m vllm.entrypoints.api_server --model /***/chatglm/chatglm3-6b/