首页 > 编程语言 >读论文-基于自注意力机制和迁移学习的跨领域推荐算法

读论文-基于自注意力机制和迁移学习的跨领域推荐算法

时间:2024-01-31 12:55:39浏览次数:32  
标签:推荐 用户 领域 算法 迁移 目标 注意力

前言

今日要读的文章为一篇2022年4月2日发表于《计算机科学》的期刊文章;文章发现了传统的单领域推荐算法的问题:传统的单领域推荐算法受限于用户和项目的稀疏关系,存在用户/项目冷启动的问题,并且,其仅以用户对项目评分进行建模,忽略了评论文本中所蕴含的信息。

基于此,文章提出了一种基于评论文本的跨领域推荐算法在辅助领域提取用户/项目的评论信息来缓解目标领域的数据稀疏问题,来提高推荐的准确率。文中提出了结合自注意力机制和迁移学习的跨领域推荐算法SAMTL(Self-Attention Mechanism and Transfer Learning)。与现有算法不同,SAMTL充分融合了目标领域和辅助领域的知识。

摘要

传统的单领域推荐算法受限于用户和项目的稀疏关系,存在用户/项目冷启动的问题,并且,其仅以用户对项目评分进行建模,忽略了评论文本中所蕴含的信息。基于评论文本的跨领域推荐算法在辅助领域提取用户/项目的评论信息来缓解目标领域的数据稀疏问题,以提高推荐的准确率。文中提出了结合自注意力机制和迁移学习的跨领域推荐算法SAMTL(Self-Attention Mechanism and Transfer Learning)。与现有算法不同,SAMTL充分融合了目标领域和辅助领域的知识。首先,引入自注意力机制建模用户的喜好信息;其次,通过交叉映射跨域传输网络实现借助一个领域的信息来提高另一个领域的推荐准确率;最后,在知识融合模块和评分预测模块整合两个域的信息,进行评分预测。在Amazon数据集上的实验表明,与现有的跨领域推荐模型相比,SAMTL的MAE和MSE值更高,在3种不同的跨领域数据集上的MAE值分别提高了8.4%,13.2%和19.4%,MSE值分别提高了6.3%,7.8%和5.6%。通过多项实验验证了自注意力机制和迁移学习的有效性,以及它们在缓解数据稀疏和用户冷启动问题方面的优势。

前言

推荐算法能有效缓解信息过载,常用的推荐算法包括基于内容的单领域推荐算法、混合推荐算法和协同过滤算法。其中,最经典的算法是协同过滤算法,其主要根据用户的历史反馈向用户推荐项目。然而,这些方法对于没有历史反馈的新用户,即冷启动用户而言,效果甚微。近年来,跨领域推荐引起了广泛关注。跨领域推荐旨在给定两个相关的域(如音乐和电影),用户可能在一个域(源领域)中具有历史交互,而在另一个域(目标领域)中没有历史交互。在目标领域,这些用户被视为冷启动用户,但是,这两个域是相关的,存在一部分共享知识,而这部分知识可以迁移到目标领域中,以缓解目标领域的数据稀疏问题,从而提高推荐系统的推荐准确度。

如果跨领域推荐算法只利用项目所包含的用户评分数据进行推荐预测,则效果不理想,只能在一定程度上缓解数据稀疏问题,因为评分数据包含的信息单一,难以从源领域学习到有效的知识对用户和项目进行建模,并且难以将源领域知识迁移到目标领域,以提高推荐精度。

跨领域推荐的核心任务是对两个相关域之间的用户进行偏好映射。为实现这一映射,现有的方法(如EMCDR,CDLFM和RC-DFM)将用户的偏好编码为单个向量,然后对整体进行跨域映射。如图1所示,现有解决方案分别在源领域和目标领域中学习用户/项目表示,然后基于重叠的用户来学习并进行跨域映射。但是源领域和目标领域用户之间的直接映射无法明确捕获用户在不同域中的各种细粒度偏好,例如,喜欢摇滚音乐的用户可能更喜欢观看科幻电影。

自注意力机制

本文的自注意力模型采用点积运算的方式来计算评论文本的重要性,其计算式如下:

image

其中,Q,K,V分别是查询向量矩阵、键向量矩阵和值向量矩阵。这3个矩阵中每一行分别代表一个对应向量,一般通过把输入向量序列X分别乘以3个矩阵W,W,W得到。

跨领域推荐

跨领域推荐的目的是丰富目标领域的数据,学习源领域中用户的喜好信息,最终提高目标领域推荐的准确性。跨领域推荐的任务定义如下。U和U是源领域和目标领域中具有用户偏好的用户集合,I和I分别是源领域和目标领域中具有项目属性的项目集合,则跨领域推荐可以定义为:通过源领域的知识给目标领域的用户推荐目标领域的项目,即把I利用U∪I的知识推荐给U

迁移学习

迁移学习指将在数据密度较高的领域学习到的知识迁移到数据密度较低的领域,即将在源领域中学习到的用户喜好信息迁移到目标领域,提高了目标领域推荐的准确性,同时,迁移学习降低了传统机器学习中训练集和测试集要满足独立同分布的条件,提高了目标领域推荐的精度。

自注意力机制和跨域传输网络

SAMTL模型结构如图2所示。SAMTL模型由嵌入层、自注意力模块、交叉跨域传输网络和决策网络组成。其中,嵌入层使用GloVe生成用户和项目的评论词向量;自注意力模块提取用户的源领域特征、目标领域特征和项目的源领域特征、目标领域特征。交叉跨域传输网络中,信息可进行双向传递,从而达到使用辅助领域来提升目标领域推荐效果的目的。最后在决策网络进行不同领域的知识融合和评分预测。

image

自注意力机制网络

注意力机制关注部分细节,而非基于全部信息。本质上,Attention是从大量信息中筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多数不重要的信息。本文在嵌入层和交叉跨域传输网络之间加入了自注意力模块。由于卷积神经网络(Convolutional Neural Network, CNN)中卷积核尺寸的限制,卷积操作覆盖的范围非常有限,当特征距离稍远时,就难以获取。而自注意力机制不仅能够建模序列中用户评论的上下文信息,还能够通过计算序列中任意2个评论之间的相关程度来捕获行为的长期依赖关系和序列的全局信息,缓解CNN只能覆盖局部信息的问题。自注意力机制对外部信息依赖较少,更能捕捉到内部信息的特征.
自注意力机制的结构图如下图所示:

image

跨域传输网络

本节提出了一种基于交叉映射的跨域传输网络来实现域跟域之间的信息传输。其主要任务是在两个域之间通过在同一层网络中共享同一个矩阵来实现域和域之间的双向信息传递,从而达到使用辅助域来提升目标领域推荐效果的目的。

image

标签:推荐,用户,领域,算法,迁移,目标,注意力
From: https://www.cnblogs.com/wephiles/p/17998564

相关文章

  • LLM面面观之RLHF平替算法DPO
    1.背景最近本qiang~老看到一些关于大语言模型的DPO、RLHF算法,但都有些云里雾里,因此静下心来收集资料、研读论文,并执行了下开源代码,以便加深印象。此文是本qiang~针对大语言模型的DPO算法的整理,包括原理、流程及部分源码。2.DPOvsRLHF  上图左边是RLHF算法,右边为DPO算......
  • KMP算法
    目录感悟kmp已经整了很多次了,从一开始的不懂到之前一次的似懂非懂,这次再刷字符串算法,一定搞懂寄,又有点糊里糊涂的感悟有点晕,next数组和整体的顺序上已经理解了存在的问题用next数组查找的时候要用while循环去查找,因为如果用if来查找,匹配到本次不一样,回退后仍然可能不一样......
  • eXeScope 注册机制算法破解
    使用x64dbg进行修改从网上找来一片文章,感觉靠谱,如下---------------------------------------------------------------------------------------第一次看到这个界面还是在十多年前,当时的我并不明白这些数据的含义。现在为它写一篇博客,算是一种纪念吧。用x64dbg加载exescop......
  • 算法学习Day44完全背包
    Day44完全背包ByHQWQF2024/01/29笔记完全背包有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。和01背包的区别在每件物品都可以放入背包无......
  • 算法学习Day43最后石头的重量、目标和、一和零
    Day43最后石头的重量、目标和、一和零ByHQWQF2024/01/31笔记1049.最后一块石头的重量II有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x和 y,且 x<=y。那么粉碎的可能结果如下:如果 x==y,那么两块石......
  • 【学习笔记】根号算法
    1.分块【模板】线段树1我们把整个序列割成\(s\)个块,则块长为\(\frac{n}{s}\),对于一个跨越区间\([l,r]\)的修改/询问,很容易看出它最多包含两个散块,然后中间有一堆整块。考虑对于整块我们类似线段树的维护方法打tag,然后对于散块直接暴力。分析复杂度,最多有\(s\)个块,散......
  • 代码随想录算法训练营第三天 |203.移除链表元素 , 707.设计链表,206.反转链表
    206.反转链表 已解答简单 相关标签相关企业 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[] 提示:链......
  • 代码随想录算法训练营第七天| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四
    454.四数相加II 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i,j,k,l) 能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0题目链接:454.四数相加II-力扣(LeetCode)思路:当遇到需要确认元素是......
  • 类欧几里得算法
    模板题:P5170【模板】类欧几里得算法复述题解:我们记\(f(a,b,c,n)=\sum\limits_{i=0}^{n}\Big\lfloor\dfrac{ai+b}{c}\Big\rfloor\,,\g(a,b,c,n)=\sum\limits_{i=0}^{n}i\Big\lfloor\dfrac{ai+b}{c}\Big\rfloor\,,\h(a,b,c,n)=\sum\limits_{i=0}^{n}{\Big\lfloor......
  • PBKDF2算法:保护密码安全的重要工具
    摘要:在当今的数字世界中,密码安全是至关重要的。为了保护用户密码免受未经授权的访问和破解,Password-BasedKeyDerivationFunction2(PBKDF2)算法成为了一种重要的工具。本文将介绍PBKDF2算法的优缺点,以及它如何解决密码存储和验证中的一些问题。我们还将提供一个使用Java编......