MGAT: Multimodal Graph Attention Network for Recommendation

news2024/11/25 23:40:23

模型总览如下:

图1:多模态图注意力网络

背景:本论文是对MMGCN(Wei et al., 2019)的改进。MMGCN简单地在并行交互图上使用GNN,平等地对待从所有邻居传播的信息,无法自适应地捕获用户偏好。

MMGCN的消息聚合方式如下:

     

(平均值聚合

(最大值聚合)

j_{m}:邻居的特征向量

W_{1,m}:可训练的权重矩阵用于提取邻居的有用特征

由公式可见所有邻居都信息都通过W_{1,m}矩阵进行特征提取。当用户分别喜欢物品A的音乐,B的字幕。在音频模态上同等程度的提取B的音频特征,无疑会加入噪声。MGAT对MMGCN针对这点做了改进。

MGAT消息构造如下所示:

  • h:中心节点
  • t:h的邻居节点
  • e_{m,t}:物品t在模态m上的特征表示
  • f_{a}(h,t) : 注意力组件,学习不同邻居的重要性,反映两个节点之间的亲疏关系。

   

      利用Sotfmax函数进行正则化:

    

      其中w_{m,h}以及w_{m,t}是两个可训练矩阵,e_{m,i}为物品i 在模态m上的特征。为了简单起见,论文  中   直接用内积做为注意力分数。

  • f_{g}(h,t)决定项目的每个模态是否将信息传播给目标用户。

(内积门)

(连接门)

(双相互作用门)

其中d为节点h 的邻居的数量。

 三种门的效果对比:

 由实验结果可以发现“最简单”的内积门在两个数据集上的表现都最好,可能原因是其他两个门通过变换矩阵做了特征变换,造成了过拟合。

一层信息融合(h距离一跳的邻居):

 

 e_{m,h}为用户h在模态m上的特征表示,e_{h}为用户h的id特征。物品的不同模态属于不同的语意空间,通过下方的公式将物品所有模态的特征表示都转换到id空间,并在用户的特征表示中加入id属性。上面的公式也是同样的道理,将模态m上从邻居那里得到的信息转换到ID空间,并与自己的特征相结合,得到h在模态m上的最终表示 

高层信息融合

节点h在模态m上汇聚了l跳邻居信息后得到的表征。

节点h的表征为 。

预测:

 

同时融合了各层邻居的信息。

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

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

相关文章

Qt学习5-Qt Creator文件操作(哔站视频学习记录)

实现文件编辑器代码 目录 一、代码要点 二、重点函数 1、conncet 2、getOpenFileName 3、getSaveFileName 4、读取文件到textEdit 5、textEdit保存到文件 三、全部代码 mainwindow.h mainwindow.cpp 一、代码要点 MainWindow的菜单栏实现;connect函数连接…

【Linux】理解Linux环境变量

🍎作者:阿润菜菜 📖专栏:Linux系统编程 初识环境变量 什么是环境变量 我们平常所用的Linux指令其实也是可执行程序,和我们自己写的二进制程序没什么两样,那么为什么我们在执行自己的程序的时候需要加上 ./…

基于 OpenCV 与 Java 两个语言版本实现获取某一图片特定区域的颜色对比度

本文目录一、什么是对比度二、什么是颜色直方图三、如何通过RGB计算颜色对比度什么是HSV、Lab颜色空间四、OpenCV代码五、Java代码5.1 平滑处理5.2 完整代码一、什么是对比度 对比度是指图像中不同区域之间的明暗差异程度,它是图像质量中的重要指标之一。除了颜色对…

java的Map集合说明及方法demo示例

一、Map集合的特点:Map集合的特点:1.Map是一个双列集合,一个元素包含两个值(一个key,一个value)2.Map集合中的元素,key和value的数据类型可以相同,也可以不同3.Map中的元素&#xff…

概率论小课堂:泊松分布(完善你对随机性的认识,特别是对风险防范的认识)

文章目录 引言I 泊松分布1.1 概率计算公式1.2 应对随机性,需要的冗余比平均值要大1.3 池子越大,越能抵消随机性带来的误差引言 伯努利试验:解释了随机事件的发生概率在理论和现实中的差距泊松分布:进一步完善你对随机性的认识,特别是对风险防范的认识。另一类特殊的伯努利…

11.Maxwell 部署

Maxwell 部署 一、环境准备 1、确保服务器上已经安装好了zookeeper、kafka、MySQL软件; (1)启动zookeeper: /usr/app/zookeeper3.4/bin/zkServer.sh start(2)启动三台主题的kafka 启动:bin/kafka-serv…

js求解《初级算法》141. 环形链表

一、题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置…

Apollo控制部分2-- ControllerAgent 控制器管理

Apollo控制部分2-- ControllerAgent 控制器管理摘要一、预备知识1、控制模块预备知识2、多态二、控制器管理解析1、初始化函数(配置文件参数决定控制器)1)配置文件:"/apollo/modules/control/conf/control_conf.pb.txt"…

借助Spire.PDF,这家企业低成本实现在线文档签名和量打印

“公司主要是做跨国运输业务的,我们的客户在邮寄过程中需要提交和下载的确认材料非常多,这些材料大多需要客户分别下载后再手写签字确认上传,这导致我们订单操作效率非常低,还容易导致系统卡顿,我们一直在寻找合性能稳…

【C++】BloomFilter——布隆过滤器

文章目录一、布隆过滤器概念二、布隆过滤器应用三、布隆过滤器实现1.插入2.查找3.删除四、布隆过滤器优缺五、结语一、布隆过滤器概念 布隆过滤器是由布隆(Burton Howard Bloom)在1970年提出的 一种紧凑型的、比较巧妙的概率型数据结构,特点是…

从互联网科技到手机厂商,谁能扮演好孩子们的“辅导老师”?

【潮汐商业评论/ 原创】“ 没想到现在小孩子的学习机花样这么多,从配置到内容,挑得我是眼花缭乱,跟咱们那会儿一台复读机就能搞定学习完全不一样!”80后的Gavin最近苦于为自己要上小学的孩子选购一台合适的学习机。本想是一件很容…

Process Monitor工具使用实验(23)

实验目的 学习Process Monitor实用小工具的使用,学会利用Process Monitor工具观察程序进程/线程、文件系统、注册表、网络连接等的活动。预备知识 Process Monitor是一个Windows系统下先进的监视工具,它可以显示文件系统、注册表、网络连接、进程…

操作系统基础知识介绍之Mixed CriticalitySystems——混合关键系统

一、发展背景 在嵌入式场景中,虽然Linux已经得到了广泛应用,但并不能覆盖所有需求,例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统 的用武之地。有些应用场景既需要Linux的管理能力、丰富的生态又需要实时操作系统的高实时、…

spring加载bean流程解析

spring作为目前我们开发的基础框架,每天的开发工作基本和他形影不离,作为管理bean的最经典、优秀的框架,它的复杂程度往往令人望而却步。不过作为朝夕相处的框架,我们必须得明白一个问题就是spring是如何加载bean的,我们常在开发中使用的注解…

机器人工程专业师生的第二张名片

课堂上多次提及第二张名片。什么是CatGPT-使用效果如何-专业感性非理性总结如下:机器人工程的工作与考研之困惑→汇总篇←其中包括:☞ 机器人工程的工作与考研之困惑“卷”☞ 机器人工程的工作与考研之困惑“歧视”☞ 机器人工程的工作与考研之困惑“取舍…

62-63-64 - 进程互斥锁Mutex的初步实现

---- 整理自狄泰软件唐佐林老师课程 文章目录1. 问题2. 系统调用重设计2.1 互斥锁系统调用功能设计2.2 整体调用流程2.3 编程实验:互斥锁模块的创建2.4 思考3. 在内核态实现互斥锁功能的考虑3.1 互斥锁内核数据结构及接口实现3.1.1 创建互斥锁3.1.2 销毁互斥锁3.1.3…

Java 字符串String 在堆,栈,常量池中

一、Java程序的运行会涉及以下的内存区域: 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。 堆:存放n…

全同态加密:FHEW

参考资料: Micciancio D, Peikert C. Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller[C]//Eurocrypt. 2012, 7237: 700-718.Alperin-Sheriff J, Peikert C. Faster bootstrapping with polynomial error[C]//Advances in Cryptology–CRYPTO 2014: 34…

css盒模型详解

一、引言 盒模型是网页开发中的一个基本概念,它描述了网页元素的外观和大小。盒模型由内容区域、内边距、边框和外边距四个部分组成,这些部分的大小和位置都可以通过CSS进行控制。在本文中,我们将介绍盒模型的概念和作用,并提出本…

一、SpringMVC概述

1.什么是SpringMVC 基于MVC开发模式的框架,用来优化控制器.它是Spring家族的一员.它也具备IOC和AOP. 什么是MVC?   一种开发模式,模型视图控制器的简称.所有的web应用都是基于MVC开发.   M:模型层,包含实体类,业务逻辑层,数据访问层   V:视图层,html,javaScript,vue等都…