2023.05.28 学习周报

news2024/11/23 21:30:00

文章目录

  • 摘要
  • 文献阅读
    • 1.题目
    • 2.现有方法存在的局限性
    • 3.SR-GNN模型
    • 4.模型的组成部分
      • 4.1 构图
      • 4.2 item向量表示
      • 4.3 session向量表示
      • 4.4 预测模块
    • 5.实验与分析
      • 5.1 数据集
      • 5.2 比较方法
      • 5.3 评估指标
      • 5.4 实验结果
    • 6.结论
  • 有限元法
    • 1.一个例子
    • 2.进一步
  • 深度学习
    • 1.张量场
    • 2.对流-扩散方程
  • 总结


摘要

This week, I read a computer science about GNN. The previous approach is insufficient to obtain accurate session vectors and ignore complex transitions between projects. Therefore, a new approach is proposed, which is based on session recommendation and graph neural network. GNN can capture complex item transitions that are difficult to achieve with traditional sequential methods, and then use an attention mechanism to represent each session as a combination of global preferences and the current interests of that session. A large number of experiments show that SR-GNN is significantly superior to some of the most advanced recommended methods. In addition, I learn the content of weighted residual value method of finite element, and learn and think about tensor field and convection-diffusion equation.

本周,我阅读了一篇与GNN相关的文章。由于以前的方法不足以获得准确的会话向量,并且忽略了项目之间的复杂转换。因此,提出了一种新的方法,即基于会话的推荐与图神经网络。GNN可以捕捉到传统序列方法难以实现的复杂项目转移,然后使用注意力机制将每个会话表示为全局偏好和该会话当前兴趣的组合。通过大量实验表明,SR-GNN明显优于最先进的一些推荐方法。此外,我学习了有限元的加权残值法的内容,以及学习并思考了张量场和对流-扩散方程的相关内容。


文献阅读

1.题目

文献链接:Session-based recommendation with graph neural networks

2.现有方法存在的局限性

文章选择了几种比较有代表性的方法,其中最有代表性的方法是将RNN引入到推荐系统中,这些方法存在局限如下:
1)当一个会话中的用户行为数量十分有限时,RNN就很难捕获到用户的行为表示。在使用RNN建模时,如果前面时序的动作项较少,最后一个输出产生推荐项时的准确性就比较低。
2)在会话过程中,item之间的转移模式在会话推荐中是十分重要的,但是RNN和马尔科夫过程只对相邻物品的单向转移进行了建模,而忽略了会话中的其他item信息。
针对以上两点局限性,文章设计了一个名为SR-GNN的推荐框架,用于会话序列推荐。

3.SR-GNN模型

SR-GNN的模型框架:
在这里插入图片描述
1)上图最左侧是输入的数据,每一行表示一个用户进行 物品点击的记录。v表示物品,对于每一行数据可以表示为一个会话,目的是根据这样的用户点击序列,来预测用户下一个要点击的物品。
2)基于每个session去构建一个子图,需要注意的是,每个用户的历史情况都会构建成一个图。
3)使用GNN对图进行信息挖掘,获取session图中每个点击物品的embedding_1,向量化表示为 [v1,v2,…,vn],其中每个Vi都是一个向量,对应图中红框的结果。
4)对于获得的每个物品的向量化表示,实际上只有最后一个时刻物品是比较重要的,将其取出为s1,而其他的信息会通过注意力分配的机制,添加了attention策略,根据前面几个物品跟最后一次点击的相似度,来进行注意力权值的附加,然后将这些最后一次之间的信息附加权重后加在一起,成为向量sg。
5)最后一步是先对s1和sg进行横向拼接,并进行线性变换,得到结果sh,最后将sh与每个物品的embedding进行内积计算,并通过softmax包装获取得到对应不同物品的点击概率,根据概率的大小绝对最后的推荐物品。

4.模型的组成部分

4.1 构图

构图最主要的工作是如何把用户的历史交互记录,转换成一个有向图。比如用户的点击序列是 v1 -> v2 -> v3 -> v2 -> v4,则其对应的图可以转化成如下的形式。那么为什么将每个用户的行为都包装成一个图呢,因为如果将所有用户对商品的交互关系都放在一张图中,会导致对用户独特兴趣捕捉上的混乱,所以需要单独构建,每一行样本都可以构建成一张图。
在这里插入图片描述
每一个session序列中的item都会根据它点击时间被建模成有向图,其中每个节点表示一个item,每条边表示用户的点击行为。这样,出现在不同session中的item都可以被建模成有向图。当然,在一个有向图中,同一个item是可能重复出现的。文章使用邻接矩阵进行图的存储,为每个图都构建一个出度矩阵、入度矩阵,并为了便于输入到神经网络,对度值进行了归一化处理,如下图所示,其中构建出度矩阵和入度矩阵的原因是为了让模型可以学到丰富的双向关系,而不是简单的单向转移关系。
在这里插入图片描述

4.2 item向量表示

通过构造图的方法可以知道会话图的几种特点:有向边,边加权,多个会话序列子图。文章所采用的GNN方法主要是基于门控图神经网络实现:
在这里插入图片描述
SR-GNN就是使用GNN针对邻接矩阵学习物品的嵌入向量的过程,通过将所有的会话图送入到GNN网络,就能够得到所有节点的嵌入向量。对于GNN通过GRU得到嵌入向量的过程,即是对GRU不断从前到后不断到收敛的过程,相当于传播过程,之后的生成会话嵌入向量和推荐决策就对应于GNN中的输出过程。

4.3 session向量表示

在得到每个item向量之后,利用这些item向量形成session向量,用于基于会话的推荐。对于整体的图,分为局部向量和全局向量进行考虑,从局部和全局角度进行表达来获得更有效的图向量表达。这里使用了注意力机制,首先得到不同结点的注意力权重ai,之后对不同节点添加不同的注意力获取得到全局的向量嵌入结果,其中W1和W2都是注意力机制中可训练的权重:
在这里插入图片描述
最终通过对局部和全局的嵌入向量的级联进行线性变化得到了混合嵌入sh:
在这里插入图片描述

4.4 预测模块

在得到了每个会话的嵌入后,可以根据此计算出对于物品集中所有物品下一次点击的预测分数,具体来说就是通过该物品的特征嵌入和会话特征嵌入得到:
在这里插入图片描述
基于此可以得到每个物品的点击预测概率,也就是最终的输出:
在这里插入图片描述
在模型训练过程中,选择交叉熵损失函数,表示为:
在这里插入图片描述

5.实验与分析

5.1 数据集

文章使用了两个数据集:
Yoochoose是取自RecSys challenge 2015,它包含了一串用户点击事件;Diginitica取自CIKM Cup 2016,只使用了它的transactional数据。最后对数据进行了清洗,过滤掉了长度为1的session和出现次数小于5的item。
在这里插入图片描述

5.2 比较方法

POP、S-POP、Item - kNN、BPR-MF、FPMC、GRU4REC、NARM、STAMP

5.3 评估指标

1)P@20:被广泛用于衡量预测的准确性。它表示前20个项目中正确推荐的项目的比例。
2)MRR@20:是正确推荐的项目的倒数排名的平均值。当排名超过20时,倒数排名设置为0。MRR度量考虑推荐排名的顺序,其中MRR值大表示排名列表顶部的正确推荐。

5.4 实验结果

1)与基线方法的比较
与各种基线方法相比,SR-GNN在P@20和MRR@20可以达到目前最好的效果。实验结果表明,在这两种不同处理中,SR-GNN可以更好的学习到不同出现时间的session特征。
在这里插入图片描述
2)连接方案变体的比较
实验结果表明,这三种连接方案都实现了与STAMP和NARM方法相同的性能,这证实了将会话建模为图的有用性。与SR-GNN相比,对于每个会话,SR-GNN-NGC除了考虑当前会话中的项外,还考虑了其他会话的影响,从而减少了当前会话图中与节点连接度高的边的影响;SR-GNN- fc明确地将所有高阶关系视为直接连接,但性能表现上SR-GNN- fc比SR-GNN差。
在这里插入图片描述
3)不同会话嵌入的比较
实验结果表明,混合嵌入方法SR-GNN在三个数据集上都取得了最好的结果,这验证了将当前会话兴趣与长期偏好结合起来的重要性。数据显示SR-GNN-ATT在三个数据集上的平均池化性能优于SR-GNN-AVG,它表明会话可能包含一些不能独立处理的噪声行为,注意力机制有助于从会话数据中提取重要行为以构建长期偏好。SR-GNN-L仍然优于SR-GNN-AVG,并且实现了与SR-GNN-ATT几乎相同的性能,这表明当前兴趣和长期偏好对于基于会话的推荐至关重要。
在这里插入图片描述
4)会话序列长度分析
进一步分析了不同模型处理不同长度会话的能力,实验证明了该方法的优越性和图神经网络在基于会话的推荐中的适应性。
在这里插入图片描述

6.结论

1)对于难以获得用户偏好和历史记录的情况,文章提出了一种新的基于会话的推荐模型架构,将图模型用于表示会话序列。
2)该方法不仅考虑了会话序列项目之间的复杂结构和转换,而且还开发了一种将会话的长期偏好和当前兴趣相结合的策略,以更好地预测用户的下一步行动。
3)通过综合实验证明,该方法始终优于其他最先进的方法。

有限元法

加权残值法:对于没有特别的形状几何和简单的边界条件的情况,可以将其转化为离散模型,从而使解微分方程变成解线性代数方程。

1.一个例子

有一个简单的平衡方程,P为集中载荷,q为分布载荷,ω为挠度。
在这里插入图片描述
上面就得到了残差,即与真实情况的差距。下面来看看近似解和真实解:
在这里插入图片描述

2.进一步

进行加权残值测试,其中v(x)是试函数,它是任意的,只要它可以被积分。也就是说,如果任意的试函数都让下图积分为0,那么残值肯定为0,;否则的话,对于某些试函数,上面的积分不为0,那么猜的解就不是正解,只能是近似解。
在这里插入图片描述
满足一阶导的试函数要比满足二阶导的试函数要好,在原来基础上加上一个倍乘系数,其中一个为自由度,另一个为基函数。
在这里插入图片描述
现在加权残值为0,看近似解和真实解:
在这里插入图片描述

深度学习

1.张量场

考虑用一个二阶张量场去描述了污染物在不同方向上的扩散速率和扩散性质:
1)空间中的每个点都定义了一个二阶张量的场。在每个点上,这个二阶张量可以表示为一个对称正定矩阵,它的特征向量代表了扩散的主要方向,而特征值表示了在这些方向上的扩散速率。
2)这个张量可以表示为:
D(x, y, z) = [[Dxx(x, y, z), Dxy(x, y, z), Dxz(x, y, z)],
[Dxy(x, y, z), Dyy(x, y, z), Dyz(x, y, z)],
[Dxz(x, y, z), Dyz(x, y, z), Dzz(x, y, z)]]
其中:Dxx、Dyy和Dzz是张量的特征值,它们表示在各个坐标轴上的扩散速率。Dxy、Dxz和Dyz是张量的非对角元素,它们表示在不同坐标轴上的耦合扩散。
3)通过确定张量场的分布和变化,可以模拟和预测污染物的扩散行为。在建立张量场时,需要结合实际观测数据和模型的假设来确定合适的参数和边界条件。

2.对流-扩散方程

结合了对流项和扩散项,可以用来模拟污染物在流体介质中的传播和扩散过程。
对流-扩散方程可以写成如下形式:
∂C/∂t + ∇⋅(uC) = ∇⋅(D∇C)
其中:
1)C是污染物的浓度,t是时间,u是流体速度矢量,D是扩散系数,∇是梯度运算符,∇⋅是散度运算符。
2)方程的第一项 ∂C/∂t 表示浓度随时间的变化率,对应于污染物的生成和衰减过程。
3)方程的第二项 ∇⋅(uC) 表示对流项,描述了流体速度场对污染物传播的影响,也表示为流体速度与浓度梯度的点积。
4)方程的第三项 ∇⋅(D∇C) 表示扩散项,描述了污染物由于浓度差异而发生的自然扩散,可以表示成扩散系数D乘以浓度梯度的散度。


总结

本周我接触了加权残值法,认识了试函数、基函数,但还没有理解到其中的精髓,只知道它让微分方程变成解线性代数方程,对于计算机来说,求解变得非常简单。此外,我学习了张量场和对流-扩散方程的相关内容,但其中的核心点还没想清楚,以及怎么跟NS方程联系起来还需要去考虑。下周我将继续考虑学习,加快进度。

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

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

相关文章

Linux(基础IO详解)

在基础IO这篇博客中,我们将了解到文件系统的构成,以及缓冲区究竟是个什么东东,我们都知道缓冲区,有时也谈论缓冲区,但不一定真的去深入了解过缓冲区。为什么内存和磁盘交互速度如此之慢?为什么都说Linux中一…

Dom解析与Sax解析的区别

1.Dom解析: Dom解析的时候,首先要把整个文件读取完毕,装载到内存中。然后进行解析,在解析的过程中,你可以直接获取某个节点,进行操作,也可以获取根节点然后进行遍历操作,得到所有的…

一台服务器通过apache安装多个web应用

当我们只有一台linux服务器资源但有创建多个网站的需求时,我们可以通过安装一个网站服务器Apache进行搭建,此次服务器使用Centos 7 下面分别介绍一个域名多个端口和多个域名用Apache来搭建多个网站的操作过程。 一、使用apache 服务器 (一…

HCIA-MSTP替代技术之链路捆绑(LACP模式)

目录 手工链路聚合的不足: LACP链路聚合的原理 LACP模式: LACPDU: 1,设备优先级: 设备优先级的比较是:先比较优先级大小,0到32768,越小优先级越高,如果优先级相同&a…

华为FinalMLP

FinalMLP:An Enhanced Two-Stream MLP model for CTR Prediction 摘要 Two-Stream model:因为一个普通的MLP网络不足以学到丰富的特征交叉信息,因此大家提出了很多实用MLP和其他专用网络结合来学习。 MLP是隐式地学习特征交叉,当前很多工作…

分布式网络通信框架(二)——RPC通信原理和技术选型

项目实现功能 技术选型 黄色部分:设计rpc方法参数的打包和解析,也就是数据的序列化和反序列化,用protobuf做RPC方法调用的序列化和反序列化。 使用protobuf的好处: protobuf是二进制存储,xml和json是文本存储; pro…

哈希应用: 位图 + 布隆过滤器

文章目录 哈希应用: 位图 布隆过滤器1. 位图1.1 提出问题1.2 位图概念1.3 位图实现1.4 位图应用1.4.1 变形题1代码 1.4.2 变形题21.4.3 找文件交集思路1思路2 1.4.4 总结 1.5 位图优缺点 2. 哈希切割3. 布隆过滤器3.1 提出问题3.2 布隆过滤器概念3.3 布隆过滤器的各个接口3.3.…

MySQL---优化(insert、order by 、group by 、limit、子查询)

1. insert语句优化 当进行数据的insert操作的时候,可以考虑采用以下几种优化方案: -- 如果需要同时对一张表插入很多行数据时,应该尽量使用多个值表的insert语句,这种方式将大大的缩减 -- 客户端与数据库之间的连接、关闭等消耗。使得效率比…

R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合实践与拓展

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

ARM体系结构

目录 ARM体系架构 一、ARM公司概述 二、ARM产品系列 三、指令、指令集 指令 指令集 ARM指令集 ARM指令集 Thumb指令集 (属于ARM指令集) 四、编译原理 五、ARM数据类型 字节序 大端对齐 小端对齐 六、ARM工作模式 1.AR…

Java中synchronized锁的深入理解

使用范围 synchronized使用上用于同步方法或者同步代码块在锁实现上是基于对象去实现使用中用于对static修饰的便是class类锁使用中用于对非static修饰的便是当前对象锁 synchronized的优化 在jdk1.6中对synchronized做了相关的优化 锁消除 在synchronized修饰的代码块中…

如何实现局域网下设备之间的互通互联和外网访问?

两台电脑怎么在同一路由下访问共享文件夹?两台不同系统的电脑在同一个路由器下访问共享文件夹进行数据共享,从本质上说就是在同一个局域网下设备之间的互通互联,这就需要我们搭建一个内网文件共享服务器来实现此功能 ,比如常见的W…

linux系统中通配符与常用转义字符

通配符 在平时我们使用使用linux系统的过程中会遇到忘记文件名称的问题,这时候呢,通配符就发挥它的作用啦。 顾名思义啦,通配符就是用来匹配信息的符号,如何(*)代表零个或多个字符,(…

Unity烟花特效实现(附源码)

Unity烟花特效 附代码 写在前面效果代码地址核心步骤 写在后面 写在前面 朋友过生,不知道送什么礼物,就想着用自己所学知识做个特效当礼物吧,嘿。 主要参考了 这位up的视频 ,感谢 效果 代码地址 https://github.com/hahahappyb…

【LeetCode热题100】打开第5天:最长回文子串

文章目录 最长回文子串⛅前言🔒题目🔑题解 最长回文子串 ⛅前言 大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目,适合初识…

linux高级---k8s中的五种控制器

文章目录 一、k8s的控制器类型二、pod与控制器之间的关系三、状态与无状态化对特点四、Deployment1、Deployment的资源清单文件2、在配置清单中调用deployment控制器3、镜像更新4、金丝雀发布5、删除Deployment 五、Statefulset六、DaemonSet1、daemonset的资源清单文件2、在配…

车载T-BOX

Telematics BOX,简称车载T-BOX,车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控制 目录 1、车载T-BOX的定义 2、车载T-BOX的主要功能 2.1、数据采集和存储 2.2、远程查询和控制 2.3、道路救援 2.4、故障诊断 …

vue2_计算属性

目录 计算属性 计算属性缓存vs方法 计算属性vs侦听属性 getter和setter 计算属性和监听器 前端调用api实现问答 侦听器 计算属性 鉴于能在插值表达式中写js表达式;这样做也一定程度上违背了设计插值表达式的初衷;特别是: 其实就相当于…

nginx(七十九)rewrite模块指令再探

一 rewrite模块再探 ① 知识回顾 1) 结合自己遇到过的案例场景2) 关注一些易错点、难点3) 本文内容很杂,建议读者选取感兴趣的阅读 rewrite模块 rewrite功能 ② nginx中利用if 等价&&多条件 需求背景: 1) nginx不支持&&、||、and、or等逻辑…

设备描述符

前言 一直以来对设备描述符这个概念云里雾里的: 什么是设备描述符?设备描述符是个结构体还是结构体指针?为什么要有设备描述符?设备描述符的作用?设备描述符是根据什么定义的? 启发 今天看《Linux那些事…