2023/6/18周报

news2024/9/21 4:32:42

目录

摘要

论文阅读

1、题目和现有问题

2、工作流程

3、图神经网络模块

4、注意力网络

5、实验结果和分析

深度学习

1、GNN和GRU的融合

2、相关公式推导

总结


摘要

本周在论文阅读上,对基于图神经网络和改进自注意网络的会话推荐的论文进行了学习,文章提出的新模型,通过 GNN与注意力机制来提取当前会话节点的局部偏好,通过改进自注意网络来捕获会话节点的全局偏好;同时在会话节点中加入可学习的位置嵌入,来更好地把握用户兴趣变化的过程。在深度学习上,学习了GNN和GRU的相关融合知识。

This week,in terms of thesis reading,studying the paper of conversation recommendation based on graph neural network and improved self-attention network.The new model proposed in this paper extracts the local preferences of the current session node through GNN and attention mechanism.Capturing the global preferences of session nodes by improving the self-attention network.At the same time, learnable location embedding is added in the session node to better grasp the process of user interest change.In deep learning, studying the relevant fusion knowledge of GNN and GRU.

论文阅读

1、题目和现有问题

题目:基于图神经网络和改进自注意网络的会话推荐

现有问题:现有的会话推荐系统大多数基于当前会话建立局部偏好来预测用户行为,而低估了会话全局序列蕴含的信息。 同时多数推荐系统忽略了会话交互序列的相对位置关系。

文章所提出的解决办法:通过GNN和传统注意力网络捕获当前会话S中交互历史中的局部信息,再结合全局偏好学习模块捕获的会话全局信息,来预测用户当前会话下一次点击的项目 V(n+1) , 最终对于会话 S,GNN-SAP模型会输出所有可能访问候选项目的概率y, 其中向量y的元素值是相应项的推荐分数,由于推荐者通常会为用户提出多个建议,因此一般将从y^中选择前K个项目作为推荐。

2、工作流程

(1)、用户每次点击序列会构成一次会话,将会话构建成会话图,随后通过图神经网络(GNN)来提取会话图中当前会话节点所蕴含的丰富的信息。

(2)、将GNN提取后的会话节点加入可学习位置信息,来保存其原有位置信息,并通过注意力网络来提取用户短期动态偏好。

(3)、对于会话全局偏好学习,将会话序列通过位置嵌入模块加入位置信息,并送入基于改进的自注意力网络来提取会话的全局静态偏好,并且通过前馈神经网络(FNN)和残差网络来提取其非线性特征。

(4)、最终将局部偏好与全局偏好非线性特征经过线性融合,再送入预测层,得到项目集合V中每个项目的得分,得分越高表示被用户点击的可能性越大。

3、图神经网络模块

首先将每个会话构建成一个会话图。 给定会话S = {V1 ,V2 ,…,Vn }, 将每个项目vi视为一个节点,将 (Vi-1,Vi) 视为一条边,表示用户在会话S中的Vi-1之后点击项目Vi, 因此,每个用户会话序列都可以建模为一个有向图 Gs= (γs,εs)。 对于会话图中的节点 Vt, 不同节点之间的信息传播可以形式化为:

 

然后将它们和之前的状态Vt-1一起输入到图神经网络中。 因此,GNN层最终输出ht计算如下:

 

用户会话交互序列的位置信息同样重要,会话历史交互顺序表明了用户兴趣随着时间的变化过程。 为了保存会话交互位置信息,在GNN捕获的节点和会话全局序列之后加入可学习的位置嵌入模块, 不仅能更好保存会话序列中的信息,而且还能过滤会话中的噪声。

 

4、注意力网络

为了使推荐系统更专注于找到会话序列中与用户偏好相关的信息,本文采用软注意机制来更好捕获会话的局部偏好。

 

Transformer在NLP领域中首次提出了自注意力机制,将嵌入层的输入通过线性投影分别转换为Query、Key 和Value三个不同矩阵,并将它们输入到使用放缩点积的注意力层中。 由于序列化所隐含的顺序性,在预测 (t+1)项时应该只考虑前 t项,而自注意力层的输出包含后续所有项目的嵌入,为了不依赖t时刻之后的输出,自注意力机制通过禁止Qi和Kj(j > i) 之间的点积来进行因果约束。 自注意力机制的表示如下

 

尽管通过GNN和注意力机制可以很好地提取会话的局部动态偏好,但局部表示仍然忽略来自其他会话的有用的项目信息和会话的长期静态偏好。本文从会话的全局序列上考虑,不再对用户行为序列进行因果约束,使未来的更多可用信息可用于对训练期间序列的预测,以便更好地提取会话的全局偏好,下图展示了自注意力机制与改进自注意力机制的流程对比。

 

5、实验结果和分析

数据集来源:Diginetica、Tmall、Nowplaying。

过滤掉数据集中长度为1的会话和出现次数少于5次的项目。 将最新数据设置为测试数据,剩余的历史数据用于训练。处理后的数据:

 

本文使用P@K和MRR@K评估指标来评估推荐模型的性能。

对比算法:POP、Item-KNN、FPMC、GRU4Rec、NARM、STAMP、CSRM、FGNN、SR-GNN。

GNN-SAP和9个基线模型在3个真实数据集上的实验结果如下表所示。 其中每一列的最佳结果以粗体突出显示, 与基线模型相比GNN-SAP在Diginetica上的表现比SR-GNN 平均高出 3.6%,在Tmall上平均高出8.7%,在 Nowplaying上平均高出5.6%。 可以观察到,GNN-SAP在所有3个数据集上以两个指标(K=10和K=20一致地实现了最佳性能,从而验证了本文提出的方法的有效性。

 

进行消融研究,比较仅采用局部偏好学习模块(GNN-Local)、全局偏好学习模块(GNN⁃Global)和两者相结合(GNN-SAP) 的效果,如下表所示。

 

在3个数据集上,对于基于GNN的短期偏好学习比基于自注意力的长期偏好学习取得了更好的预测效果。 这证明了图神经网络比注意力机制更适合用来提取当前会话节点的局部的复杂信息和动态偏好,同时全局偏好学习模块在捕获静态偏好上也具有一定的有效性。

通过消融研究来分析它们产生的不同影响,下表显示了默认方法及其变体在3个数据集上取得的效果。

 

从GNN-SAP中移除可学习的位置嵌入模块,可以看出GNN-SAP在3个数据集上相比移除位置嵌入模块的方法取得了更好的效果。 这表明在当前会话节点和全局会话序列中加入位置信息,可以更好地保存会话中原有访问顺序,以便更好捕获会话序列中的复杂信息,来进行更为准确的推荐。

从GNN-SAP中移除FFN和残差网络。可以看出GNN-SAP在3个数据集上均表现比较好。 这表明了通过加入FFN和残差网络来提取用户非线性特征和底层用户信息的有效性,能更好地提取用户会话的全局偏好信息。

深度学习

1、GNN和GRU的融合

GNN和GRU是两种常见的神经网络模型,用于处理不同类型的数据。GNN主要用于处理图结构数据,而GRU则用于处理序列数据。将它们融合起来可以在一些场景下提供更好的建模能力。

融合GNN和GRU的可能方法

  1. 数据预处理:首先,将图结构数据转换为序列数据。这可以通过选择适当的遍历策略或图结构的表示方式来实现。一种常见的方法是使用图遍历算法(如广度优先搜索或深度优先搜索)来获取节点的顺序序列。

  2. 序列表示学习:使用GRU模型对序列数据进行建模。GRU是一种递归神经网络模型,具有门控机制,可以有效地捕捉序列中的长期依赖关系。通过学习序列的表示,可以将图结构数据转换为连续向量表示。

  3. 图结构建模:使用GNN模型对转换后的向量表示进行图结构建模。GNN模型可以在图中传递信息并对节点进行聚合。通过将GRU的输出作为初始节点特征,并在GNN中进行多轮的信息传递和聚合,可以捕捉节点之间的复杂关系和全局图结构信息。

  4. 预测或分类:最后,使用融合了GNN和GRU的模型进行所需的任务,如节点分类、链接预测或图分类等。可以根据具体的应用场景和任务进行相应的调整和优化。

应用领域:

  1. 图节点分类:在图中对节点进行分类是一个常见的任务。通过将GRU的输出作为初始节点特征输入GNN,可以融合节点的序列信息和图结构信息,提升节点分类的准确性。

  2. 图链接预测:预测图中尚未存在的边或链接是图数据分析的重要任务之一。通过融合GNN和GRU,可以捕捉节点之间的序列依赖关系和图结构信息,从而提高链接预测的性能。

  3. 图生成模型:利用GNN和GRU的融合,可以生成具有一定拓扑结构的图数据。通过学习图的节点序列表示和图结构特征,可以生成新的图示例,具有与训练数据类似的特征。

  4. 图推荐系统:在图数据中进行推荐是一种有挑战性的任务。通过结合GNN和GRU,可以融合节点的序列信息和图结构信息,对用户和物品之间的关系进行建模,从而提供个性化的图推荐。

  5. 图语义分析:将自然语言处理(NLP)任务与图数据结合,可以进行图中节点的语义分析。通过使用GRU进行序列建模,并将其融合到GNN中,可以利用节点之间的语义信息进行更准确的图分析和理解。

2、相关公式推导

  1. GRU模型推导: GRU是一种递归神经网络模型,用于处理序列数据。对于每个节点i,GRU模型的更新公式如下:

更新门(Update Gate):

 

重置门(Reset Gate):

 

候选隐藏状态(Candidate Hidden State):

 

当前隐藏状态(Current Hidden State):

 

其中,x_i是节点i的输入特征,h_i是节点i的隐藏状态,h{i-1}是节点i的前一个时间步的隐藏状态,z_i是更新门,r_i是重置门,tilde{h}i是候选隐藏状态。W_z, U_z, b_z, W_r, U_r, b_r, W_h, U_h, b_h是GRU模型的参数。

2、GNN模型推导:GNN是一种用于图数据的神经网络模型,它通过迭代信息传递和聚合来学习节点的表示。我们使用图G的邻接矩阵A表示节点之间的连接关系,节点i的邻居节点集合为N(i),节点i的初始特征表示为h_i。

GNN模型的更新公式可以表示为:

 

其中,l表示GNN的层数,f是信息传递和聚合函数。

3、GNN和GRU融合: 为了融合GNN和GRU模型,我们将GRU的输出作为初始节点特征输入到GNN模型中,并在GNN中进行多轮的信息传递和聚合。

具体地,我们将GRU的输出h_i作为GNN的初始特征表示:

 

然后,在每一轮的信息传递中,我们使用GNN的更新公式进行节点特征的更新:

 

总结

本周继续对图神经网络进行学习,以及在GNN和GRU的融合中进行了一定的学习,接下来将展开进一步的深入学习。

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

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

相关文章

DPdisPCA算法原理笔记

概要 本文简单理顺《Differentially Private Distributed Principal Component Analysis》论文中的算法原理,它主要提出了一种基于差分隐私的分布式PCA算法,研究了该算法在实验数据以及真实数据中的表现,在参数相同的情况下本算法取得了和没…

OpenGL之深度测试

文章目录 深度测试深度测试函数源代码 深度测试 深度缓冲就像颜色缓冲(Color Buffer)(储存所有的片段颜色:视觉输出)一样,在每个片段中储存了信息,并且(通常)和颜色缓冲有着一样的宽度和高度。深…

Python3 条件控制与循环语句 | 菜鸟教程(八)

目录 一、Python3 条件控制 (一)Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。 (二)if 语句 1、Python中if语句的一般形式如下所示: 2、注意&#…

<Linux开发>驱动开发 -之-platform 驱动

<Linux开发>驱动开发 -之-platform 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记…

基于SpringBoot+Vue的民宿管理平台系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

某音短视频评论采集翻页(移动安全篇)

本章测试一个作品的评论及翻页: 以及前面的抓x包方式,在专栏里也有很多,xposed抓包过sslping,通用版本等; https://codeooo.blog.csdn.net/category_11500477.html 翻页通过页码来控制: # -*- coding:…

Docker部署(1)——将jar包打成docker镜像并启动容器

在代码编写完成即将部署的时候,如果采用docker容器的方法,需要将jar包打成docker镜像并通过镜像将容器启动起来。具体的步骤如下。 一、首先下载java镜像 先使用docker search java命令进行搜索。 然而在拉取镜像的时候要注意不能直接去选择pull java ,…

kubernetes(k8s)理论篇

注意:kubeadm与docker是有版本要求的。 如果版本不兼容,初始化 kubeadm是会出现以下问题。 学习k8s掌握知识 基础概念 什么是 Pod 控制器类型 K8S 网络通讯模式 Kubernetes 构建 K8S 集群 资源清单 资源 掌握资源清单的语法 编写 Pod 掌握 Pod 的…

C国演义 [第四章]

第四章 全排列题目理解步骤树形图递归函数递归结束条件单层逻辑 代码 全排列II题目理解步骤递归函数递归结束条件单层逻辑 代码 全排列 力扣链接 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输…

简要介绍 | 深度学习中的自注意力机制:原理与挑战

注1:本文系“简要介绍”系列之一,仅从概念上对深度学习中的自注意力机制进行非常简要的介绍,不适合用于深入和详细的了解。 注2:"简要介绍"系列的所有创作均使用了AIGC工具辅助 深度学习中的自注意力机制:原…

android jetpack databinding的基本使用(java)

目录 databing的基本使用二级页面的绑定自定义BindingAdapter自定义BinddingAdapter的可选旧值双向绑定使用ObservableField来进行双向绑定 在recycleview中使用databinding databing的基本使用 开启databing android {........dataBinding{enable true} }修改布局文件 为布…

Unity UGUI6——UGUI进阶

一、UI 事件监听接口 ​ 目前所有的控件都只提供了常用的事件监听列表 ​ 如果想做一些类似长按,双击,拖拽等功能是无法制作的,或者想让 Image 和 Text,RawImage 三大基础控件能够响应玩家输入也是无法制作的 ​ 而事件接口就是…

Elasticsearch 基本使用(三)条件查询

条件查询 单条件查询matchdebug 查看分词结果match_phrase 多条件查询bool 子元素区别 单条件查询 match match 匹配字段,会对条件分词,然后每个词以or的关系在文档倒排索引内进行查询 GET bank/_search {"query": {"match": {&q…

一起学SF框架系列6.1-模块core-Resource

Java虽然提供了java.net.URL类和各种URL前缀处理程序来负责处理对各种资源的访问,但对于低级别资源的访问来说还是不够充分。例如,没有标准化的实现可用于访问需要从类路径中获取或者相对于一个ServletContext的资源;也没有检查所指向的资源是…

火影手游 问答题小抄

文章目录 Part.I IntroductionPart.II 一些常识Chap.I 基础常识Chap.II 人物相关Chap.III 原作相关Chap.III 游戏相关 Part.III 奥义 & 技能Chap.I S 忍Chap.II A 忍Chap.III B 忍Chap.IV C 忍 Part.IV 针对活动Chap.I 组织樱花祭Chap.II 樱花问答 Pary.V 名言Reference Pa…

群辉DSM7.2安装svn服务

Part1前言 今天研究了一晚上使用群辉安装svn,确实挺多坑的,总结记录一下。我的型号是DS220,版本为DSM 7.2 Part2安装docker 首先打开套件中心,如下图,检索docker 然后点击安装,安装之后打开如下&#xff1a…

Clickhouse之物化视图分享

前言 ClickHouse广泛用于用户和系统日志查询场景中,主要针对于OLAP场景,为业务方提供稳定高效的查询服务。在业务场景下,数据以不同的格式、途径写入到clickhouse。用传统JOIN方式查询海量数据,通常有如下痛点: 每个查询的代码冗…

【TOP生物信息】基于Scanpy的单细胞数据质控、聚类、标注

扫码关注下方公粽号,回复推文合集,获取400页单细胞学习资源! 「写在前面」 Python作为一种高级编程语言,被广泛用于单细胞数据分析,有着以下的优势: 「大量的生物信息学库:」 Python拥有大量的…

【UE 从零开始制作坦克】6-坦克开炮

效果 步骤 1. 添加初学者内容包(需要用到其中的音效和粒子效果) 2. 接下来制作坦克的炮弹 首先新建一个Actor蓝图类,作为所有发射物体(炮弹、机枪子弹等)的父类,这里命名为“TotalCategoryOfProjectile”…

从清华高材生拿到百万年薪offer说起

这几天在脉脉上看到一个很火的帖子,帖子内容是一位清华姚班毕业的博士,透露其拿到「亚马逊应用科学家」的offer,Base 110k/月+股票400K分四年给,还有195k的签字费。 清华姚班毕业薪资 看到这张截图博主留下了羡慕的泪…