当前位置: 首页 > news >正文

从组会尴尬到学术突破:Transformer助力跨域推荐解析

最近学习了Transformer模型,突然意识到我常阅读的一篇论文中也使用了Transformer。回想起上次开组会时,老师问我论文中的模型是什么,我当时没有答上来,现在才发现其实用的就是Transformer。这种学习过程让我深感,学得越多,知识之间的联系就会越清晰,许多概念最终都能融会贯通。 这里也分享一下论文地址。

这篇论文主要探讨了如何利用联邦学习来解决跨域推荐问题,然后是在序列编码器和域提示机制上运用了Transformer来增强模型的性能。

序列编码器

在推荐系统中,不同的领域(Domain)之间需要进行数据交换与学习。为了保护用户隐私,这篇论文引入了联邦学习算法。与传统上传用户数据的方式不同,联邦学习仅上传模型参数的梯度进行聚合,让客户端在本地进行模型训练,从而防止攻击者通过附加手段从模型参数或梯度中推断出隐私特征。

在这个背景下,论文中的序列编码器使用了Transformer架构,主要依赖于Transformer的核心组件:多头自注意力机制(Multi-Head Attention, MH)和位置感知前馈神经网络(Position-wise Feedforward Network, FFN)。这些模块使得模型能够捕捉用户行为数据中的顺序依赖关系。

具体来说,Transformer的自注意力机制能够让模型在计算某个输入项目时,同时关注其他位置的输入。这种全局的依赖建模能力,使得模型能够对用户的序列化行为进行更好的理解,从而提升推荐的准确性。

对于每个输入项目向量 v i v_i vi,我们首先将其与对应的位置信息嵌入 p j p_j pj相加(j为项目在序列中的位置),以确保模型能够感知项目序列中的位置。类似于处理句子时,不仅需要知道某个字的内容,还需要考虑它在句子中的位置。因此,有:
h j 0 = v i + p j h_j^0 = v_i + p_j hj0=vi+pj

然后,作者将这个初始状态 h j 0 h_j^0 hj0输入到MH和FFN中进行非线性变换,编码过程的定义如下:
H l = [ h 0 l ; . . . ; h n l ] H^l=[h_0^l;...;h_n^l] Hl=[h0l;...;hnl]
H ( l + 1 ) = F F N ( M H ( H l ) ) , l ∈ 1 , 2 , . . . , L H^(l+1)=FFN(MH(H^l)),l\in {1,2,...,L} H(l+1)=FFN(MH(Hl)),l1,2,...,L

其中𝑯𝑙 ∈ R𝑛×𝑑𝑉 表示第𝑙层中每个序列的隐藏表示,𝐿 是总层数。 我们将第 𝑛 个位置的隐藏状态𝒉i𝐴 = 𝒉n𝐿 作为序列表示(S𝐴 是域 A 中的输入序列)。

通过这种方式,序列编码器利用了Transformer的全局自注意力机制,能够同时考虑用户行为序列中所有项目的相互依赖关系,提升了跨域推荐的效果。

域提示

为了进一步提高跨域推荐的性能,论文设计了提示微调策略,该其中的域提示同样基于Transformer的多头注意力机制。域提示的核心在于捕捉每个领域(Domain)内用户的共性偏好。

域提示机制由**提示上下文词(Prompt Context Words)域提示编码器(Domain Prompt Encoder)**组成。在这个机制中,假设我们在域提示中有 d W d_W dW个上下文词,这些词通过Transformer中的多头注意力层(MA)进行编码。

与传统的自注意力不同,域提示机制利用预训练模型中的序列嵌入h作为查询向量,来对上下文词进行注意力计算。这种查询键-值的自注意力操作能够帮助模型通过上下文信息更精准地捕捉领域内的偏好特征。具体的计算过程如下:
M A ( P d o m a i n ) = [ h e a d 1 ; h e a d 2 ; . . . ; h e a d n h ] w O MA(P_{domain})=[head_1;head_2;...;head_{n_h}]w^O MA(Pdomain)=[head1;head2;...;headnh]wO
h e a d i = A t t e n t i o n ( h d W i Q , P d o m a i n W i K , P d o m a i n W i V ) head_i=Attention(h_dW_i^Q,P_{domain}W_i^K,P_{domain}W_i^V) headi=Attention(hdWiQ,PdomainWiK,PdomainWiV)

其中, n h n_h nh是注意力头的数量, W i Q , W i K , W i V ∈ R d V × d V / n h , W O ∈ R d V × d V W_i^Q, W_i^K, W_i^V \in \mathbb{R}^{d_V \times d_V/n_h},W_O \in \mathbb{R}^{d_V \times d_V} WiQ,WiK,WiVRdV×dV/nhWORdV×dV

为可学习参数, h d \mathbf{h}_d hd是上下文词的表示。

通过这种机制,域提示能够更好地从不同领域的用户行为中提取共性信息,进而提升跨域推荐的效果。

总结

这篇论文利用了Transformer的多头自注意力机制和前馈神经网络,在序列编码器和域提示学习机制中进行建模。Transformer的全局依赖建模能力,使得模型在捕捉用户行为序列中的复杂模式时更加有效,同时,通过联邦学习保护用户隐私,解决了跨域推荐中的关键问题。

相关文章:

从组会尴尬到学术突破:Transformer助力跨域推荐解析

最近学习了Transformer模型,突然意识到我常阅读的一篇论文中也使用了Transformer。回想起上次开组会时,老师问我论文中的模型是什么,我当时没有答上来,现在才发现其实用的就是Transformer。这种学习过程让我深感,学得越…...

【Flutter、H5、Web?前端个人总结】分享从业经历经验、自我规范准则,纯干货

前言 hi,正式接触web前端已经经过了两年的时间,从大学的java后端转型到web前端,再到后续转战Flutter,逐渐对前端有了一些心得体会,其实在当下前端的呈现形式一直在变化,无论你是用原生、还是web还是混编的…...

mysql主从配置

一、准备工作 准备两个版本一致的数据库。 确认主库开启二进制日志,并配置server-id。 $ ##将 mysql的配置文件/home/mysql2/mysql/my.cnf 中关于二进制日志的配置 $ cd /home/mysql2/mysql/ $ vi my.cnf 修改如下 server-id 11 #log settings log_error erro…...

sklearn pipeline

示例代码 from sklearn.pipeline import Pipeline from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB import numpy as np import scipy.linalg from sklearn.preprocessing import LabelEncoder, StandardScaler …...

springboot实现服务注册与发现

在Spring Boot应用中实现服务注册与发现通常使用Spring Cloud框架,其中Eureka和Consul是两个常用的服务注册与发现组件。以下是使用Eureka来实现服务注册与发现的基本步骤。 准备工作 添加依赖:在你的Spring Boot项目的pom.xml文件中添加Eureka相关的依…...

美格智能亮相2024中国移动全球合作伙伴大会,共赢AI+时代

2024年10月11日至13日,主题为“智焕新生 共创AI时代”的2024中国移动全球合作伙伴大会,在广州琶洲保利世贸博览馆召开,作为中国移动重要的战略合作伙伴,美格智能亮相4号馆E22展位,与上百家知名企业共同展示最新数智化创…...

【LeetCode】动态规划—309. 买卖股票的最佳时机含冷冻期(附完整Python/C++代码)

动态规划—309. 买卖股票的最佳时机含冷冻期 题目描述前言基本思路1. 问题定义2. 理解问题和递推关系状态定义:状态转移公式:初始条件: 3. 解决方法动态规划方法伪代码: 4. 进一步优化5. 小总结 Python代码Python代码解释总结 C代…...

IDE启动失败

报错:Cannot connect to already running IDE instance. Exception: Process 24,264 is still running 翻译:无法连接到已运行的IDE实例。异常:进程24,264仍在运行 打开任务管理器,找到PID为24264的CPU线程,强行结束即可。 【Ct…...

【Kubernetes】常见面试题汇总(六十)

目录 131. pod 一直处于 pending 状态? 132. helm 安装组件失败? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于…...

maven dependency中scope的取值类型

在 Maven 中&#xff0c;<scope> 标签用于定义依赖项的范围&#xff0c;以指定依赖在不同阶段的可见性和生命周期。以下是 Maven 中常见的 <scope> 取值类型的详细介绍&#xff1a; 1. **compile**&#xff1a; - 默认的依赖范围&#xff0c;适用于编译、测试和…...

线性代数在大一计算机课程中的重要性

线性代数在大一计算机课程中的重要性 线性代数是一门研究向量空间、矩阵运算和线性变换的数学学科&#xff0c;在计算机科学中有着广泛的应用。大一的计算机课程中&#xff0c;线性代数的学习为学生们掌握许多计算机领域的关键概念打下了坚实的基础。本文将介绍线性代数的基本…...

笔记本电脑按住电源键强行关机,对电脑有伤害吗?

电脑卡住了&#xff0c;我们习惯性地按住电源键或者直接拔掉电源强制关机&#xff0c;但这种做法真的安全吗&#xff1f;会不会对电脑造成伤害呢&#xff1f; 其实&#xff0c;按住电源键关机和直接拔掉电源关机是不一样的。它们在硬件层面有着本质区别。 按住电源键关机 当…...

如何将 cryptopp库移植到UE5内

cryptopp是一个开源免费的算法库&#xff0c;这个库的用途非常多&#xff0c;我常常用这个库来做加解密的运算。这段时间在折腾UE5.4.4&#xff0c;学习的过程中&#xff0c;准备把cryptopp移植到游戏的工程内&#xff0c;但UE的编译环境和VS的编译环境完全不同&#xff0c;能在…...

SpringBoot 集成GPT实战,超简单详细

Spring AI 介绍 在当前的AI应用开发中&#xff0c;像OpenAI这样的GPT服务提供商主要通过HTTP接口提供服务&#xff0c;这导致大部分Java开发者缺乏一种标准化的方式来接入这些强大的语言模型。Spring AI Alibaba应运而生&#xff0c;它作为Spring团队提供的一个解决方案&…...

基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用。本文深入探讨了Langchain框架下的Prompt工程在调教LLM&#xff08;大语言模型&#xff09;方面的应用&#xff0c…...

Vue基于vue-office实现docx、xlsx、pdf文件的在线预览

文章目录 1、vue-office概述2、效果3、实现3.1 安装3.2 使用示例3.2.1 docx文档的预览3.2.2 excel文档预览3.2.3 pdf文档预览1、vue-office概述 vue-office是一个支持多种文件(docx、.xlsx、pdf)预览的vue组件库,支持vue2和vue3。 功能特色: 一站式:提供docx、.xlsx、pdf多…...

哪个软件可以在线编辑ppt? 一口气推荐5个做ppt的得力助手!

日常在制作ppt时&#xff0c;你是否经常遇到这些问题&#xff0c;ppt做到一半&#xff0c;电脑突然死机&#xff0c;来不及保存的ppt付之一炬&#xff0c;分分钟让人原地崩溃…… 好在许多团队也在持续跟进这个问题&#xff0c;给出了一个一劳永逸的最佳方案——PPT在线编辑&a…...

Django学习笔记九:Django中间件Middleware

Django中间件&#xff08;Middleware&#xff09;是一段在Django的请求/响应处理过程中&#xff0c;可以介入并改变请求或响应的代码。中间件是Django框架中一个非常强大的功能&#xff0c;它允许你在Django的视图函数之前或之后执行自定义代码。 中间件可以用于&#xff1a; …...

原来自媒体高手都是这样选话题的,活该人家赚大钱,真后悔知道晚了

做自媒体&#xff0c;话题是战略&#xff0c;内容是战术。 战略是要做正确的事情&#xff0c;战术是如何正确地做事。 如果战略上错误&#xff0c;战术上再勤奋努力都无济于事。 《孙子兵法》有云&#xff1a;“胜者先胜而后求战&#xff0c;败者先战而后求胜。” 相信很多…...

胤娲科技:AI绘梦师——一键复刻梵高《星空》

想象一下&#xff0c;你手中握有一张梵高的《星空》原图&#xff0c;只需轻轻一点&#xff0c;AI便能化身绘画大师&#xff0c;一步步在画布上重现那璀璨星河。 这不是科幻电影中的桥段&#xff0c;而是华盛顿大学科研团队带来的“Inverse Painting”项目&#xff0c;正悄然改变…...

第18课-C++继承:探索面向对象编程的复用之道

一、引言 C 作为一种强大的编程语言&#xff0c;继承机制在面向对象编程中扮演着至关重要的角色。它允许开发者基于已有的类创建新的类&#xff0c;从而实现代码的复用和功能的扩展。然而&#xff0c;继承的概念和使用方法并非一目了然&#xff0c;特别是在处理复杂的继承关系时…...

麒麟V10系统下的调试工具(网络和串口调试助手)

麒麟V10系统下的调试工具&#xff08;网络和串口调试助手&#xff09; 1.安装网络调试助手mnetassist arm64-main ①在linux下新建一个文件夹 mkdir /home/${USER}/NetAssist②将mnetassist arm64-main.zip拷贝到上面文件夹中&#xff0c;并解压给权限 cd /home/${USER}/Ne…...

ssh封装上传下载

pip install paramiko import paramikoclass SSHClient:def __init__(self, host, port, username, password):self.host = hostself.port = portself.username = usernameself.password = passwordself.ssh = Noneself.sftp = Nonedef connect(self):"""连接到…...

018_FEA_Structure_Static_in_Matlab结构静力学分析

刹车变形分析 本示例展示了如何使用 MATLAB 软件进行刹车变形分析。 这个例子是Matlab官方PDE工具箱的第一个例子&#xff0c;所需要的数据文件都由Matlab提供&#xff0c;包括CAD模型文件。 步骤 1: 导入 CAD 模型 导入 CAD 模型&#xff0c;这里使用的是一个带有孔的支架模…...

网页打不开、找不到服务器IP地址

现象&#xff1a;网络连接ok&#xff0c;软件能正常使用&#xff0c;当网页打不开。 原因&#xff1a;DNS 配置错误导致网站域名无法正确解析造成。 影响DNS设置的&#xff1a;VPN软件、浏览器DNS服务选择、IPv4属性被修改。 1、VPN代理未关闭 2、浏览器DNS解析选择 3、以太…...

RUM性能优化之图片加载

作者&#xff1a;三石 在现代Web开发中&#xff0c;图片作为内容表达的核心元素&#xff0c;其加载效率直接影响到页面的整体性能和用户体验。随着高清大图和动态图像的普及&#xff0c;优化图片加载变得尤为重要。RUM作为一种主动监测技术&#xff0c;能够帮助开发者从真实用户…...

【Java】—— 泛型:泛型的理解及其在集合(List,Set)、比较器(Comparator)中的使用

目录 1. 泛型概述 1.1 生活中的例子 1.2 泛型的引入 2. 使用泛型举例 2.1 集合中使用泛型 2.1.1 举例 2.1.2 练习 2.2 比较器中使用泛型 2.2.1 举例 2.2.2 练习 1. 泛型概述 1.1 生活中的例子 举例1&#xff1a;中药店&#xff0c;每个抽屉外面贴着标签 举例2&…...

【Python】selenium遇到“InvalidArgumentException”的解决方法

在使用try……except 的时候捕获到这个错误&#xff1a; InvalidArgumentException: invalid argument (Session info: chrome112.0.5614.0) 这个错误代表的是&#xff0c;当传入的参数不符合期望时&#xff0c;就会抛出这个异常&#xff1a; InvalidArgumentException: invali…...

RT-DETR改进策略:BackBone改进|CAFormer在RT-DETR中的创新应用,显著提升目标检测性能

摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入RT-DETR模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…...

【YOLOv11】ultralytics最新作品yolov11 AND 模型的训练、推理、验证、导出 以及 使用

​目录 一 ultralytics公司的最新作品YOLOV11 1 yolov11的创新 2 安装YOLOv11 3 PYTHON Guide 二 训练 三 验证 四 推理 五 导出模型 六 使用 文档&#xff1a;https://docs.ultralytics.com/models/yolo11/ 代码链接&#xff1a;https://github.com/ultralytics/ult…...