蚂蚁金服的一篇论文,发表在arxiv。
图(Graph)的特征传播,也就是图中表征的学习过程。
文献研究了:
通常,图表征学习的目标是学习一个函数:f(\mathcal{X},\mathcal{G}) ,利用\mathcal{G}空间中附加的图结构,而不是传统的只考虑f(\mathcal{X}) 。图表征学习过程主要涉及在表征在图上的传播。 GCN Kipf and Welling, 2016 or structure2vecDai et al., 2016 的传播形式:
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) 。
然而,这种方式只使用了边或点。而特征邻居的邻居也可能是有用的。例如,在一个社交网络中,假设一个人没有填写年龄,那么我们就不能利用这个信息;但是如果我们利用他邻居的特征的平均数或中位数来作为他的特征。我们定义来自特征X和X^{(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 用于最终标签的拟合参数。扩展特征的学习步骤:
图中,扩展特征一般通过图的拓扑结构,节点或边的特征扩展是通过其邻居。
定义2:(特征传播)
图中原始边和节点特征为X=[x_1,x_2,...,x_n]^T和 X^{(e)}=[x_1^{(e)},x_2^{(e)},...,x_n^{(e)}]^T ,i \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
满足这两个条件可以保证特征传播(公式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 |
结果
stru2vec数值溢出问题,我们虽然指出了这个问题却没有解决。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。