蚂蚁金服论文

图特征传播:图表征学习的新视角

蚂蚁金服的一篇论文,发表在arxiv。

摘要

图(Graph)的特征传播,也就是图中表征的学习过程。

文献研究了:

  1. 定义了图特征传播和特征传播的收敛条件
  2. 研究了现有方法,诸如:node2vec 和 structure2vec
  3. 我们把节点表示扩展到了边,并且用真实的交易欺骗数据进行了实验

介绍

通常,图表征学习的目标是学习一个函数:f(\mathcal{X},\mathcal{G}) ,利用\mathcal{G}空间中附加的图结构,而不是传统的只考虑f(\mathcal{X}) 。图表征学习过程主要涉及在表征在图上的传播。 GCN Kipf and Welling, 2016 or structure2vecDai et al., 2016 的传播形式:

H^{(t+1)}=\phi(A)H^tW

H\in \mathbb{R}^{N,K}表示在向量空间\mathbb{R}^K 中学习N个节点的嵌入关系,t表示第t次迭代,\phi(.) 表示图邻接矩阵A\in \{0,1\}^{N,N}的操作。W\in \mathbb{R}^{K,K} 是传播参数。

我们把模型扩展为edge2vec,每条边都是一个向量,这样可以存储2个节点之间的多条变(即2个用户间的多笔交易)

问题定义

图定义为\mathcal{G}=(\mathcal{V},\mathcal{E}) ,其中\mathcal{V} 是节点集合,\mathcal{E} 是边集合,邻接矩阵A=\begin{bmatrix}a_{ij}\end{bmatrix}_{n*n} ,如果(i,j)\in \mathcal{E}那么a_{ij}=1,否则为0。图的对角线元素D=diag(d_1,d_2,...,d_n) 。节点特征集合为\mathcal{} \mathcal{X}=\{x_1,x_2,...,x_n\} ,其中x_i=[x_{i1},x_{i2},..,x_{id}]^T 对应节点v_i的特征。如果存在(可能不存在),我们把边的特征集合定为\mathcal{X}^{(e)}=\{x_1^{(e)},x_2^{(e)},...,x_m^{(e)}\} 其中x_i^{(e)}=[x_{i1}^{(e)},x_{i2}^{(e)},...,x_{id}^{(e)}]^T ,可以写为X^{(e)}=[x_{1}^{(e)},x_{2}^{(e)},...,x_{m}^{(e)}]^T 。如果标签在节点中,标签向量表示为Y=[y_1,y_2,...,y_n]^T ;如果标签在边中,标签向量表示为Y^{(e)}=[y_1^{(e)},y_2^{(e)},...,y_m^{(e)}]^T

对于传统的模型,构建模型的方式为:

Y=f(X;\theta)Y^{(e)}=f(X^{(e)};\theta)

然而,这种方式只使用了边或点。而特征邻居的邻居也可能是有用的。例如,在一个社交网络中,假设一个人没有填写年龄,那么我们就不能利用这个信息;但是如果我们利用他邻居的特征的平均数或中位数来作为他的特征。我们定义来自特征XX^{(e)}的扩展特征为\widetilde{X}\widetilde{X^{(e)}}

定义1(扩展特征)

\widetilde{X}=\varphi(X,X^{(e)};\theta_p)\widetilde{X^{(e)}}=\varphi(X^{(e)},X;\theta_p)

我们把\widetilde{X}\widetilde{X^{(e)}} 称为扩展特征,\varphi 称为扩展特征函数。

模型将变为:

Y=f(\widetilde{X};\theta)=f(\varphi(X,X^{(e)};\theta_p);\theta)

Y^{(e)}=f(\widetilde{X^{(e)}};f(\theta)=\varphi(X^{(e)},X;\theta_p);\theta)

其中,参数\theta_p 是扩展特征参数;\theta 用于最终标签的拟合参数。扩展特征的学习步骤:

  1. 初始化\theta_p\theta
  2. 通过\varphi(X,X^{(e)};\theta_p)函数把X扩展到\widetilde{X}
  3. 计算预测值\widehat{Y}=f(\widetilde{X};\theta)
  4. 反向传播loss(Y,\widehat{Y}) 更新\theta\theta_p
  5. 重复2-4步直到loss最小

图中,扩展特征一般通过图的拓扑结构,节点或边的特征扩展是通过其邻居。

定义2:(特征传播)

图中原始边和节点特征为X=[x_1,x_2,...,x_n]^TX^{(e)}=[x_1^{(e)},x_2^{(e)},...,x_n^{(e)}]^Ti \in [1,n] \text{ and } j \in [1,m]

\widetilde{x_i}=\varphi({x_i,\underset{\text{k is i's neighbor}}{\{\widetilde{x_k}\}},\underset{e_k\text{ is ad joint to node i}}{\{\widetilde{x_k^{(e)}}\}});\theta)}

\widetilde{x^{(e)}_i}=\varphi{(x^{(e)}_j,\underset{\text{node k is related to }e_j}{\{\widetilde{x_k}\}};\theta_p)}

我们把\widetilde{X}\widetilde{X^{(e)}} 称为传播扩展特征,\varphi{} 函数为特征传播函数。

虽然每一个节点/边的特征仅能利用它邻居,但是通过定义2迭代可以获得邻居的邻居信息。

经典特征传播公式

\widetilde{x_i}=W_1^Tx_i+W_2^T\sum_\limits{j\in N(i)}^{}\widetilde{x_j} i=1,2,..,n

通过公式证明(具体不推导了)得出一个定理:

定理1

  • 条件1:W_2 非负
  • 条件2:max\{W_2^Te\}<1

满足这两个条件可以保证特征传播(公式8)收敛。

\widetilde{X}=XW_1+D^{-1}A\widetilde{X}W_2 \tag{$8$}

数据集描述

#Nodes

#Edges

#Fraud

#Normal

Training Data

626,003

1,720,180

31,737

1,668,441

Testing Data

1,355,824

4,034,962

86,721

3,984,241

结果

总结和未来工作

  1. 提出了定义和设计了结构
  2. 判断了收敛条件
  3. 思考了其他方法
  4. 进行了实验

stru2vec数值溢出问题,我们虽然指出了这个问题却没有解决。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

带你了解什么是卷积神经网络

CNN在图像处理和视频处理领域有着广泛的应用。在这篇文章中,我将详细介绍卷积神经网络是如何进化的,以及为什么它们在图像领域如此出色。在此基础上,我们将建立一个使...

2730
来自专栏人工智能

神经网络的基础-逻辑回归

练习数据和代码那必须是每一期都有的,文末查看获取方式。 大家好,今天给大家介绍的算法叫做逻辑回归。 从名字入手,逻辑回归嘛,它肯定是回归的一种,还记得我们之前讲...

2346
来自专栏机器之心

入门 | 从零开始,了解元学习

3629
来自专栏机器学习养成记

基于随机森林识别特征重要性(翻译)

博主Slav Ivanov 的文章《Identifying churn drivers with Random Forests 》部分内容翻译。博主有一款自己的...

5868
来自专栏贾志刚-OpenCV学堂

深度学习之迁移学习介绍与使用

在深度学习领域,通过预训练模型作为检查点开始训练生成神经网络模型实现对新任务的支持,这种方法通常被称为迁移学习,它的好处是不用再重头开始设计与训练一个全新的网络...

2212
来自专栏wOw的Android小站

[深度学习]Charpter 9:卷积网络

卷积网络convolutional network,也叫做卷积神经网络convolutional neural network CNN 专门用来处理类似网格结构...

1301
来自专栏ml

Selective Search for Object Recognition 论文笔记【图片目标分割】

 这篇笔记,仅仅是对选择性算法介绍一下原理性知识,不对公式进行推倒. 前言: 这篇论文介绍的是,如果快速的找到的可能是物体目标的区域,不像使用传统的滑动窗口来暴...

36111
来自专栏AI2ML人工智能to机器学习

数据变换

常见的数据预处理包括: 数据缺失(Missing), 奇值处理(Outlier), 数据变换(Transformation), 特征选择(Feature Sel...

1111
来自专栏YoungGy

ML基石_10_LogisticRegression

logistic regression problem Y是概率的情况 相同数据不同目标函数 logis假设集 logistic regression erro...

2985
来自专栏深度学习那些事儿

利用pytorch实现Fooling Images(添加特定噪声到原始图像,使神经网络误识别)

fooling images,顾名思义,就是指一张图片,虽然上面通过肉眼看到的是松鼠(举个例子),但是因为这张图片加了一些特定的噪声,所以神经网络会将它误识别为...

6855

扫码关注云+社区

领取腾讯云代金券