自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 收藏
  • 关注

原创 PyTorch写代码的一些技巧和常用操作(持续更新)

1. Data Masked(data_sample)import randomimport torchdata = torch.FloatTensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print("data:")print(data)num_mask = 1sample = random.sample(range(len(data)), 1)print(sample)index = torch.ones(data.shape, dtype=torch

2021-03-22 11:58:57 346 1

原创 PyTorch 写代码时的一些坑(持续更新)

1. nn.Module.cuda() 和 Tensor.cuda()无论是对于模型还是数据,cuda() 都能实现从CPU到GPU的内存迁移,但是他们的作用效果有所不同。Model:model = model.cuda()model.cuda()上面两句能够达到一样的效果,即对model自身进行的内存迁移Tensor:model = Model()tensor = torch.zeros([2, 3, 10, 10])model.cuda()tensor.cuda()tensor_

2021-03-13 15:24:30 836 1

原创 C++刷题过程中的一些 tricks(持续更新)

1. 遍历 map,unordered_map// 遍历之后返回的自动类型是一个pair,注意此处map的话返回有顺序的,而unordered_map 没有顺序map<int, char> Map; for (auto & element : Map){ printf("%d, %c\n", element.first, element.second);}2. varibale 数据类型的快速转换char -> intstring a = '1'; int

2021-03-10 11:19:51 215

原创 pytorch下Numpy,Torch,Spicy,NetworkX及其他基本数据类型相关操作(持续更新)

数据类型转换1. Pytorch下Tensor\tensor与Numpy之间的转换特别提醒[注意Tensor大小写]最重要的区别torch.Tensor和torch.tensor:不论输入的类型是什么,torch.tensor()都会进行数据拷贝,不会共享内存;torch.Tensor()与Numpy共享内存,但当Numpy的数据类型和Tensor的类型不一样的时候,数据会被复制,不会共享内存。可使用t.from_numpy()或者t.detach()将Numpy转为Tensor,与原Numpy数

2020-09-26 11:47:04 2027

原创 论文笔记:AAAI 2021 Beyond Low-frequency Information in Graph Convolutional Networks

前言现有的大部分 GNN 方法集中于对图数据中的低频信息进行处理,这也产生了一个问题:真实世界中我们需要的仅仅是图中的低频信息吗?作者在本文中进行了实验说明了在不同的条件下仅使用低频信息是有局限性的。基于此,作者提出了一种基于自我门控机制的 Frequency Adaptation Graph Convolutional Networks (FAGCN) 。核心在于实现自适应的频率信息图卷积。同时作者还分析了在学习节点特征表示过程中低频信息和高频信息扮演什么样的角色。论文链接:https://arxi

2021-04-24 21:33:27 3434

原创 详解GCN的性质

前言本文参考 – 深入浅出图神经网络 GNN 原理解析一书GCN 的性质GCN 与 CNN 的联系1. 图像是一种特殊的图数据在图像中如果将像素视作节点,将像素之间空间坐标的连线作为彼此之间的边,如此图像数据就变成了一种结构非常规则的图数据,CNN 中的卷积计算则是用来出来这类固定的 2D 栅格结构的图数据。相较之下,一般意义下的图数据,往往单个节点附近的邻域结构是千差万别的,数据之间的关系也较为复杂多样,GCN中的卷积计算则是用来处理更普遍的非结构化的图数据。2.从网络连接方式来看,两者都是局

2021-04-21 01:31:35 1386

原创 详解图信号处理与图卷积神经网络

图信号处理图信号处理(Graph Signal Processing ,GSP)是离散信号处理(Discrete Signal Processing,DSP)理论在图信号领域的应用。其通过傅里叶变换、滤波等信号处理基本概念的迁移,来研究对图信号的压缩、变换、重构等信号处理的基础任务。图信号与图的拉普拉斯矩阵图信号给定图 G(V,E)G(V,E)G(V,E),其中 VVV 表示图中的节点集合,图信号是一种描述从节点域到实数域的映射,表示成向量的形式为:x=[x1,x2,…,xN]T\mathbf{x}

2021-04-20 22:54:31 3983 1

原创 PyTorch 矩阵乘法总结和运算符重载

1. 二维矩阵乘法 torch.mm()也就是最基本的矩阵乘法,需要满足对应维度的要求,否则报错torch.mm(mat1, mat2, out=None)mat1∈Rm×n\in \mathbb{R}^{m \times n}∈Rm×n,mat2 ∈Rn×d\in \mathbb{R}^{n \times d}∈Rn×d,输出 out ∈Rm×d\in \mathbb{R}^{m \times d}∈Rm×d。2. 三维带batch的矩阵乘法 torch.bmm()torch.bmm(bmat

2021-03-29 19:25:47 953

原创 C++基础 -- 优先队列 priority_queue

1. 定义:priority_queue<Type, Container, Functional>Type 是数据类型。Container 是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector)。Functional 是比较的方式,当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆。2. 初始化//升序队列priority_queue <

2021-03-26 10:47:44 276

原创 C++基础 -- 队列容器 queue

# include<iostream># include<queue>using namespace std;int main() { queue<int> queue_example; // 1. 入队 .push() queue_example.push(2); queue_example.push(9); queue_example.push(1); // 2. 获取队列中的元素个数 .size() cout << "queue n

2021-03-23 15:21:46 347

原创 Numpy 和 PyTorch 的广播机制

Numpy 广播规则:两个数组的形状即 shape,从后往前查看,要么严格相等,要么其中一个数组的在当前查看的维度上的长度为1,或者维度缺失,这样就能匹配,(并在相应维度上做拷贝扩充,但只是概念上假想的拷贝,而不是真正意义上内存上的拷贝),满足广播条件,否则不满足广播条件,程序报错。广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。import numpy as npa = np.array([[1,2,3,4],[5

2021-03-22 14:30:38 357

原创 论文笔记:KDD 2020 Adaptive Graph Encoder for Attributed Graph Embedding

前言属性图嵌入,具体来说就是通过图数据结构中的拓扑关系和节点特征信息完成节点表示学习的过程。其中属性图的具体指的就是节点的特征信息。作者首先分析了现有的基于 GCN 的属性图嵌入方法的三个缺点,分别是:图卷积滤波器与权矩阵的纠缠不仅会影响性能,而且会影响鲁棒性这些方法中的图卷积滤波器是广义拉普拉斯平滑滤波器的特殊情况,但它们并不保留最优低通特性。现有算法的训练目标通常是恢复邻接矩阵或特征矩阵(通过自动编码器框架),这与实际应用并不总是一致的。因此,作者提出了一种自适应的图编码方法 Adapti

2021-03-18 16:57:56 1945

原创 论文笔记:KDD 2020 Handling Information Loss of Graph Neural Networks for Session-based Recommendation

前言作者在基于图神经网络的序列推荐方法中发现了两种信息损失问题,分别是 lossy session encoding 问题 和 ineffective longrange dependency capturing 问题。对于第一个 lossy session encoding 问题,是由于在将会话建模成图和在信息传递过程中进行具有排列不变性的聚合时存在忽略了物品的转换信息。对于第二个 ineffective longrange dependency capturing 问题,作者认为有限的 GNN 层数

2021-03-15 17:41:04 557

原创 C++基础 -- unordered_set

1. 定义unordered_set<> 容器类型的模板定义在 unordered_set 头文件中。unordered_set<> 容器提供了和 unordered_map<> 相似的能力,但 unordered_set<> 可以用保存的元素作为它们自己的键。其中保存类型的对象在容器中的位置由它们的哈希值决定,因而需要定义一个 Hash<> 函数。这种容器不能存放重复的元素。元素类型必须可以比较是否相等,因为这可以确定元素什么时候相等。就像

2021-03-15 09:58:27 734

原创 论文笔记:IJCAI 2020 Bilinear Graph Neural Network with Neighbor Interactions

前言经典的 GCN 方法选择在当前节点的邻域节点中进行频域的卷积操作,将卷积得到后的特征表示通过 weighted sum 的形式汇聚到当前节点。作者认为这种计算方式需要基于以下条件才能有效:领域节点之间没有联系。这显然不符合真实情况,同时这种粗暴的信息聚合方式忽略了邻域节点集中可能的特征交互。作者举了一个简单的例子来说明:可以看出两种不同的信息聚合方式所产生的结果相差巨大。因此,本文中着重讨论了在 GNN 中建模邻域节点之间交互关系的重要性。并且提出了一种新的卷积操作加强邻域节点之间的特征交互。该

2021-03-09 16:24:00 962

原创 论文笔记:KDD 2020 AM-GCN: Adaptive Multi-channel Graph Convolutional

前言本文针对于图神经网络中的节点特征信息和拓扑结构信息提出了一种自适应多通道图卷积框架,相当于对传统图卷积神经网络的优化和补充论文链接:https://arxiv.org/pdf/2007.02265v2.pdfgithub:https://github.com/zhumeiqiBUPT/AM-GCN1. Fusion Capability Of GCNs : An Experimental Investigation作者使用两种 case 测试了现有的 GCN 方法是否可以自适应的从图中学习到节

2021-03-08 21:51:11 1086

原创 论文笔记:ICLR 2019 How Powerful Are Graph Neural Networks

前言虽然 GNN 提供了在深度学习层面解决非欧式空间图结构数据的一系列方法,但人们对其表示学习方法的特点和局限性认识有限。因此作者提出了一个理论框架来分析GNNs 捕获不同图结构的表达能力。作者主要分析了主要的 GNN 方法的辨别力,尤其是 GCN 和 GraphSAGE 并证明它们不能对不同的简单图结构进行区分。并且作者提出了一个新的框架来完成图表示学习并在图级别的分类任务上进行了测试。论文链接:https://arxiv.org/abs/1810.00826github:https://githu

2021-03-08 15:47:00 741 1

原创 C++基础 --- 二分查找

# include<iostream># include<vector>using namespace std;int init_num = -100;class Solution {public: // 查找已递增排序数组A中 大于等于(或者大于) 给定target的 第一个 元素的下标 // 当eq_enable为true时 对应 [大于等于] 的情况 // 当eq_enable为false时 对应 [大于] 的情况 int Bsear

2021-03-05 10:30:04 126 1

原创 论文笔记:AAAI 2021 SDGNN: Learning Node Representation for Signed Directed Networks

前言论文链接:https://arxiv.org/pdf/2101.02390.pdfgithub:https://github.com/huangjunjie95/SiGAT

2021-03-03 18:05:01 2233 4

原创 C++基础 --- 二叉树的基本操作(创建二叉树(增加二叉树结点)、输出、计算叶子节点个数)

# include<iostream>using namespace std;int n = 0;// Definition for a binary tree node.struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr),

2021-03-03 10:58:20 959

原创 论文笔记:Hypergraph Convolution and Hypergraph Attention

前言论文链接:https://arxiv.org/abs/1901.081501. Hypergraph Convolution and Hypergraph Attention1.1 Hypergraph Revisited一个普通图定义为 G=(V,E)\mathcal{G}=(V,E)G=(V,E) ,其中节点集定义为 V={v1,v2,…,vN}V=\{v_1,v_2,\dots,v_N\}V={v1​,v2​,…,vN​},边集定义为 E⊆V×VE \subseteq V \times V

2021-03-02 21:11:20 2833 3

原创 论文笔记:CIKM 2019 Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks

前言在传统的会话推荐模型中一般采用注意力机制来建模用户的偏好嵌入,但是作者认为用户的偏好是更加复杂的关系,单纯靠交互的物品间的联系不足以充分表达。因此,本文主要通过建模会话图来研究物品之间的联系模式,提出了一种模型框架来协同处理会话图中的序列顺序和潜在顺序,具体来说,本文提出了一个加权注意力图结构和一个读出函数来学习物品和会话的嵌入。论文链接:https://arxiv.org/pdf/1911.11942v1.pdfgithub:https://github.com/RuihongQiu/FGNN

2021-02-23 21:47:50 1028 2

原创 论文笔记:ICDM 2020 DGTN: Dual-channel Graph Transition Network for Session-based Recommendation

前言会话推荐任务的不同方法无异于将匿名会话建模成序列或者图来对会话特征嵌入进行学习,但是目前的大多数方法忽略了不同会话中物品间的复杂联系。其中包括潜在的协同过滤信息,并反映类似的行为模式,作者认为这可能有助于完成基于会话的推荐任务。基于此本文提出了一种双通道的图转换网络,来对物品转换关系进行建模,这种转换关系包括了目标会话和相邻会话。具体来说,我们将目标会话和它的邻居(类似的)会话集成到一个图中。然后,过渡信号通过通道感知传播显式注入到嵌入中。论文链接:https://arxiv.org/pdf/20

2021-02-22 19:16:11 1092 6

原创 论文笔记:KDD 2018 STAMP: Short-Term Attention/Memory Priority Model for Session-based Recommendation

前言论文链接:https://dl.acm.org/doi/pdf/10.1145/3219819.3219950

2021-02-21 18:22:32 768

原创 C++基础 --- 单向链表基本操作(增删改)

#include<iostream>using namespace std;// https://leetcode-cn.com/problems/add-two-numbers// Definition for singly-linked list.struct ListNode{ int val; // 当前结点的值 ListNode *next; // 指向下一个节点的指针 ListNode() : val(0), next(nullptr){}

2021-02-21 10:05:16 141

原创 SIGIR 2020 TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation

前言目前已经有很多方法通过将会话建模为序列或图来完成对会话的嵌入,进而对 next-item 进行预测。这些方法将会话压缩为一个固定的表示向量,而不考虑要预测的目标项。之前的大多数方法的出发点就是通过对会话进行嵌入,期望能够捕获到用户意图信息完成对未来可能产生交互物品的预测。本文的作者认为由于目标物品的多样性和用户的兴趣,固定的向量会限制推荐模型的表示能力。因此在本文中提出了一种新的目标注意图神经网络( TAGNN )模型用于基于会话的推荐。在TAGNN中,目标感知注意自适应地激活了用户对不同目标物品的

2021-02-19 20:12:42 1372

原创 C++基础 --- map与unordered_map 用法整理

1. mapmap是STL的一个关联容器,它提供一对一的hash。构建 map#include <map> // 使用 map 得包含 map 类所在的头文件using namespace std;// key 和 value 可以是任意你需要的类型,包括自定义类型。map<Key, Value> mapExample; // map 的构造函数第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);插入元素

2021-02-19 16:31:59 255

原创 论文笔记:AAAI 2021 Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation

前言Session-based recommendation (SBR) 也就是会话推荐主要的任务就是基于目前已有的多个用户物品交互序列,完成 next-item 预测。在这种情况下,用户配置文件不可用,因此从多个用户物品交互序列中提取用户意图嵌入就格外重要。基于此本文将会话数据建模为超图,提出了一种双通道超图卷积网络 - DHCN。同时本文为了增强超图建模,创新性地将自监督学习融入到网络训练中,最大化通过 DHCN 中两个通道学习的会话表示之间的互信息,作为改进推荐任务的辅助任务。总结来说文本的创新

2021-02-19 13:17:14 4525 12

原创 C++ 基础 --- C++ 头文件和std命名空间、一维 vector 的输入与输出、调用类成员和属性的几种方法

1. C++ 头文件和std命名空间旧的 C++ 头文件,如 iostream.h、fstream.h 等将会继续被支持,尽管它们不在官方标准中。这些头文件的内容不在命名空间 std 中。新的 C++ 头文件,如 iostream、fstream 等包含的基本功能和对应的旧版头文件相似,但头文件的内容在命名空间 std 中。注意:在标准化的过程中,库中有些部分的细节被修改了,所以旧的头文件和新的头文件不一定完全对应。标准 C 头文件如 stdio.h、stdlib.h 等继续被支持。头文

2021-02-18 19:53:47 614

原创 论文笔记:SIGIR 2020 Next-item Recommendation with Sequential Hypergraphs

前言在推荐系统中,往往可以通过用户交互序列来动态获取用户的偏好。物品的语义信息往往随着时间和用户发生改变,因此为了更加有效的从用户动态的交互序列中抽取特征完成物品语义信息的更新,本文提出了一种针对于 next-item 推荐的框架,其主要基于序列超图完成推荐。从图中可以看出来,用户的交互行为随着时间动态变化,而且同一物品随着用户交互行为的变化,对于其语义信息的表示也会随着变化。该模型的主要特点如下:基于动态的用户交互序列建模超图来表达短期的物品相关性,应用多种类型的卷积层来捕获超图中的多阶关系。

2021-02-18 17:41:42 1555

原创 论文笔记:AAAI 2021 Identity-aware Graph Neural Networks

前言消息传递图神经网络(GNNs)为关系数据提供了强大的建模框架。然而,现有的 GNN 的表达能力受到1-Weisfeiler-Lehman (1-WL) 图同构检验的上界,即不能预测节点聚类系数和最短路径距离的 GNN。基于此本文提出了一类传递消息的 GNN,称为身份感知图神经网络 (ID-GNNs),具有比 1-WL 测试更强的表达能力。ID-GNN 为现有 GNN 的局限性提供了一个新的解决方案。ID-GNN 通过在消息传递过程中归纳地考虑节点的身份来扩展现有的 GNN 体系结构。为了嵌入一个给定

2021-02-18 00:15:36 1871 1

原创 论文笔记:NIPS 2020 Graph Contrastive Learning with Augmentations

前言本文主要提出在图对比学习大框架下的图数据增强的若干方法。概括来说,本文提出了一种图对比学习框架来无监督的完成图表示学习,首先作者提出了基于各种先验信息的四种图数据增强方法。然后,作者分析了在四种不同的图数据增强条件下,不同组合对多个数据集的影响:半监督、无监督、迁移学习以及对抗性攻击。作者为 GNN 的预训练提出了基于图数据增强的对比学习框架来解决图中数据异质性的挑战,本文的主要贡献如下:作者提出了四种图数据增强的方法,并且四种方法对图数据施加一定的先验性,并对范围和模式进行参数化。作者提出

2021-02-17 10:37:59 1351

原创 论文笔记:Recsys 2019 Style Conditioned Recommendations

前言论文链接:https://arxiv.org/abs/1907.12388github:暂无本文提出了一种条件变分自动编码器 Conditional Variational Autoencoder (CVAE) ,其中编码器和解码器的所依赖的用户条件是从物品内容中学习得到的。基于此可以允许模型根据不同类型的推荐任务进行风格迁移,作者将这种功能称为风格注射。为了实现这种操作,需要学习用户对于不同类型的偏好,并将该偏好作为用户配置文件加载进模型中。这种用户偏好是根据标签传播算法从物品内容信息中学习得

2021-02-13 19:37:52 260 1

原创 论文笔记:ICLR 2019 Deep Graph Infomax

前言论文链接:https://arxiv.org/abs/1809.10341github:https://github.com/PetarV-/DGI之前的大部分图节点表示学习方法属于半监督学习例如经典的GCN,本文的主要创新是提出了一种无监督一般化的图节点表示学习方法。DGI依赖于最大限度地扩大图增强表示和目前提取到的图信息之间的互信息——两者都是使用已建立的图卷积网络体系结构导出的。对于图增强表示,是根据感兴趣节点所生成的子图,因此可以用于下游节点的表示学习任务。相较于之前对于 GCN 的无监

2021-02-13 12:20:40 1221 1

原创 论文笔记:WWW 2018 Variational Autoencoders for Collaborative Filtering

前言论文链接:https://export.arxiv.org/pdf/1802.05814github:https://github.com/dawenl/vae_cf本文主要提出将变分自动编码器 variational autoencoders (vaes) 引入到协同过滤任务中,作者认为这种非线性概率模型可以超越线性因素模型有限的建模能力,同时线性因素模型在很大程度上主导着协同过滤。基于此,作者引入了一个多项式似然生成模型,并利用贝叶斯推理进行参数估计。尽管多项式似然在语言建模和经济学中得到了

2021-02-12 20:40:41 1134

原创 论文笔记:AAAI 2019 Session-based Recommendation with Graph Neural Networks

前言在某些序列推荐系统中,一个用户-项目交互序列包括多个子序列(也称为会话)。在这种情况下,除了当前子序列中先前的交互作用外,历史子序列还可能影响当前子序列中预测的下一个用户-项目交互作用。基于会话的推荐问题旨在基于会话预测用户的行为,以前的相关方法将会话建模为序列,并通过对用户表示进行学习来完成推荐。这些方法虽然取得了令人满意的结果,但它们不足以在会话中获得准确的用户表示,并忽略了复杂的物品表示转换。为了获得准确的物品嵌入和考虑物品表示的复杂转换,本文提出了一种基于会话的GNN网络模型。在 SR-GN

2021-02-06 14:04:26 500 1

原创 论文笔记:ICLR 2021 Combining Lable Propagation And Simple Models Out-Performs Graph Neural Network

前言:本文的作者认为对于 GNN 的可解释性不足。基于此,作者在节点分类任务上提出可以通过将忽略图结构的浅层模型与两个利用标签结构中相关性的后处理方法相结合,超越或匹配最先进的 GNN 。具体如下:(i)误差相关性:传播训练数据中的残余误差以纠正测试数据中的错误信息(ii)预测相关性:在测试集数据上进行平滑预测作者将整个过程称为 Correct and Smooth (C&S)。其中后处理步骤是通过对早期的基于图的半监督学习方法的标准标签传播方法进行修改实现的。该方法实现了惊人的性能提升,在

2021-02-05 15:16:54 2171 8

原创 TensorFlow2.0 执行 TensorFlow1.0代码常见改动

引入1.0版本import tensorflow.compat.v1 as tf关闭紧急执行tf.compat.v1.disable_eager_execution()

2021-02-04 20:32:02 857

原创 论文笔记:IJCAI 2019 Sequential Recommender Systems: Challenges, Progress and Prospects

前言本文介绍一种新的推荐概念 – 序列推荐系统 sequential recommender systems(SRSs)刚开始了解该领域,大部分是对该篇综述论文的逐句翻译。算是一个入门与传统的推荐系统 (RSs) 不同,包括协同过滤和基于内容的过滤,SRSs 试图理解和建模顺序用户行为,用户和项目之间的交互,以及用户偏好和项目流行度随时间的演变。SRSs 涉及上述方面,以便更精确地描述用户上下文、意图和目标以及商品消费趋势,从而产生更准确、定制化和动态的推荐。本文对 SRSs 进行了系统的综述。首先

2021-02-03 10:33:12 881

原创 Resource wordnet not found

Resource wordnet not found.Please use the NLTK Downloader to obtain the resource: >>> import nltk >>> nltk.download('wordnet')

2020-11-09 20:53:09 1772

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除