2023/7/16周报

news2024/9/22 23:21:38

摘要

论文阅读

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/759143.html

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

相关文章

i.MX6ULL(十六) linux 设备驱动

一 简介 Linux设备驱动是指驱动Linux内核与硬件设备进行通信的软件模块。设备驱动通常分为两类:字符设备驱动和块设备驱动。 设备驱动的主要功能包括: 设备初始化:在系统启动时,设备驱动需要初始化相应的硬件设备,设…

人工智能、机器学习、自然语言处理、深度学习等有啥本质的区别?

大众媒体赋予这些术语的含义通常与机器学习科学家和工程师的理解有所出入。因此,当我们使用这些术语时,给出准确的定义很重要,其关系韦恩图如图1.2所示。 图1.2 自然语言处理、人工智能、机器学习和深度学习等术语的关系韦恩图 1 人工智能 …

企业使用CRM后的三大提升

数字化转型是企业发展的重要决策,为此,很多企业使用CRM客户管理系统管理客户数据、优化业务流程,直面数字化浪潮。那么,使用CRM系统后,企业会有哪些变化呢? 一、提升客户体验 使用CRM系统后,企…

第二周周报

PCA PCA 是一种流行的统计技术,用于识别数据集中最重要的特征或模式并将其转换为较低维的表示形式。本报告将涵盖PCA的基本原理、其优点。 步骤 主成分分析是一种数学技术,可降低数据集的维数,同时保留尽可能多的信息。它通过查找主成分来…

Redis集群(Cluster和Codis)

1.为什么使用集群? 当我们遇到一个大数据量存储情况时,有两种解决方案: 纵向扩容:升级单个redis实例的配置,包括增加内存容量、磁盘容量,以及使用更高的cpu配置。 纵向扩容:简单直接。也存在一些…

98英寸带来加倍沉浸享受,三星Q80Z新品呈现大有不同的精彩

作者 | 曾响铃 文 | 响铃说 在过去几年,家电行业可以说是负重前行。在经历2022年整年寒冬后,2023年的彩电市场能否迎来一场翻身仗?这是年初被业内讨论最多的话题。 目前2023年已经过半,据奥维云网数据显示,2023年一…

InsCode Stable Diffusion 美图活动一期——即刻体验!来自 CSDN 的 SD 模型

文章目录 🔥关于活动📋前言🎯什么是 Stable Diffusion🧩Stable Diffusion 与其他 AI 艺术生成器有什么区别? 🎯开始体验 InsCode Stable Diffusion🎯试用 SD 模型生成优质人物好图🧩…

内存池是什么原理?|内存池简易模拟实现|为学习高并发内存池tcmalloc做准备

前言 那么这里博主先安利一些干货满满的专栏了! 这两个都是博主在学习Linux操作系统过程中的记录,希望对大家的学习有帮助! 操作系统Operating Syshttps://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482Linux S…

在Linux系统中如何搭建Apache服务

在Linux系统中如何搭建Apache服务 Apache服务是一种开源的、跨平台的Web服务器软件,它的作用是提供网页内容给用户的Web浏览器。具体来说,Apache服务有以下几个主要的作用: 1.Web服务器:Apache是一款功能强大且广泛使用的Web服务…

54、Mysql索引的数据结构,各自优劣

Mysql索引的数据结构,各自优劣 索引的数据结构和具体存储引擎的实现有关在MySQL中使用较多的索引有Hash索引,B树索引等InnoDB存储引擎的默认索引实现为: B树索引。对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求…

C++编程(三)—— C++11

文章目录 绑定器和函数对象函数对象绑定器lambda表达式 关键词与语法autonullptr右值引用 智能指针容器set和mapunordered_set和unordered_map数组链表 语言级别支持的多线程编程thread子线程如何结束主线程如何处理子线程线程间的互斥线程的同步通信机制(条件变量&…

Windows Cluster 分布式算法

在分布式系统中,都需要解决分布式一致性问题。那么,在Windows 集群中,使用了什么算法来保证集群的一致性呢——Paxos。Windows Server 故障转移集群 (WSFC) 使用 Paxos 算法在整个系统中同步更改。通过记录 Paxos Tag 值并保留历史记录&#…

连锁门店如何搭建B2B2C多用户商城系统?

现在很多的线下店铺都开始慢慢的转型线上了,想线上线下相结合,但是最近很多的商家都在问什么样的B2B2C商城系统开发适合线下店铺呢?这个问题今天加速度jsudo小编给大家一起整理如下,相信商家看完后就知道如何选择一款合适的商城系统了。 一、…

【C语言】求序列前N项和

问题描述 输入一个正整数n&#xff0c;输出2/13/25/38/5…的前n项之和&#xff08;该序列从第2项起&#xff0c;每一项的分子是前一项分子与分母的和&#xff0c;分母是前一项的分子&#xff09;&#xff0c;保留2位小数。试编写相应程序。 代码实现 #include<stdio.h>…

spring-14优化性能

原始Junit测试Spring的问题 这里的&#xff1a;第一行代码获得应用上下文对象&#xff0c;第二行代码获得你那个对象 2、原先测试找junit&#xff0c;现在测试找spring&#xff0c;然后再找&#xff0c;junit&#xff0c;告诉我配置文件是什么&#xff0c;然后注入测试对象&am…

LeetCode 172.阶乘后的零

基础方法就是暴力解&#xff0c;其次是数学归纳。 具体思路如下&#xff1a;&#xff08;copy大佬的&#xff09; 耐心看完&#xff01; 代码如下&#xff1a; #include <iostream> #include <vector> #include <cmath> #include <algorithm> #incl…

Android GridPager实战,从RecyclerView to ViewPager

这个简单的的案例展示了如何从RecyclerView to ViewPager&#xff0c;以网上的公开图片为样例。 安卓开发中从RecyclerView 到 ViewPager demo运行结果demo项目工程目录结构关键代码 MainActivity关键代码GridFragment关键代码ImageFragment关键代码ImagePagerFragment关键布局…

关于示波器引入50HZ工频干扰的解释

前几天&#xff0c;小白在实验室工作时&#xff0c;听到同事抱怨示波器有问题。上前查看&#xff0c;才知道&#xff0c;小白的那位同事在测量信号波形时&#xff0c;实际与理想相差甚远。于是乎&#xff0c;在探头什么也不接的情况下&#xff0c;发现示波器本身也存在波形信号…

2022Robocom国赛-u2 女王的大敕令

副本是游戏里的一个特色玩法&#xff0c;主要为玩家带来装备、道具、游戏资源的产出&#xff0c;满足玩家的游戏进程。 在 MMORPG《最终幻想14》里&#xff0c;有一个攻略人数最大达到 48 人的副本“零式贡希尔德神庙”&#xff0c;其中守关 BOSS “天佑女王”有一个很有趣的技…

图形编辑器开发:一些会用到的简单几何算法

大家好&#xff0c;我是前端西瓜哥。 开发图形编辑器&#xff0c;你会经常要解决一些算法问题。本文盘点一些我开发图形编辑器时遇到的简单几何算法问题。 矩形碰撞检测 判断两个矩形是否发生碰撞&#xff08;或者说相交&#xff09;&#xff0c;即两个矩形有重合的区域。 …