xFraud: Explainable Fraud Transaction Detection

图结构

整体结构

在设计xFraud时,我们受到了Transformer和HGT的启发。具体结构如下图所示:

1)detector的输入为一个异质图,包括目标和源节点特征 X v t X_{v_t} Xvt X v s X_{v_s} Xvs,目标和源结点类型 τ ( v t ) \tau(v_t) τ(vt) τ ( v s ) \tau(v_s) τ(vs),以及边类型 ϕ ( e ) \phi(e) ϕ(e)
2)L层异质卷积层利用self-attention机制来处理图:输入层 L ( 0 ) L^{(0)} L(0)将交易特征,结点类型embedding,边类型embedding作为输入,这些embedding被处理为query, key和value向量,对源和目标结点计算出attention分数然后进行layer-wise的归一化,然后输入ReLU激活函数中发给下一个卷积层。
3)在经过 L L L层异质卷积层后,我们激活函数tanh处理输出的representation。然后这些representation与原始的交易特征concat起来然后喂给一个两层的隐藏层,在这两层中应用了dropout, layer normalization和ReLU来计算出risk score和label。
4)xFraud detector的loss是交叉熵loss

异质卷积

具体看下上一节中提到的异质卷积:对于一个三元组 < τ ( v s ) , ϕ ( e ) , τ ( v t ) > <\tau(v_s), \phi(e), \tau(v_t)> <τ(vs),ϕ(e),τ(vt)>,其中 e = ( v s , v t ) e=(v_s, v_t) e=(vs,vt),我们用零向量来给结点类型embedding和边类型embedding初始化,给结点的attention权重矩阵用均匀分布随机初始化,对key, query和value向量也用均匀分布进行随机初始化。总体来说,结点 v t v_t vt的异质卷积结果由三部分组成:attention, message和聚合函数: H l [ v t ] ← A g g r e g a t e ( A t t e n t i o n ( v s , v t ) ⋅ M e s s a g e ( v s ) ) H^l[v_t] \leftarrow Aggregate(Attention(v_s, v_t) \cdot Message(v_s)) Hl[vt]Aggregate(Attention(vs,vt)Message(vs))
对每个target结点 v t v_t vt,为构建它的query vector,我们利用它的交易特征和结点类型embedding来生成multi-head attention的query: Q i ( v t ) = Q − L i n e a r τ ( v t ) i ( X τ ( v t ) t x n + τ ( v t ) e m b ) Q^i(v_t) = Q-Linear^i_{\tau(v_t)}(X^{txn}_{\tau(v_t)}+\tau(v_t)^{emb}) Qi(vt)=QLinearτ(vt)i(Xτ(vt)txn+τ(vt)emb) 对第 H ( l − 1 ) H^{(l-1)} H(l1)层,我们计算的方法是 Q ( v t ) i = Q − L i n e a r τ ( v t ) i ( H ( l − 1 ) [ v t ] ) Q^i_{(v_t)} = Q-Linear^i_{\tau(v_t)}(H^{(l-1)}[v_t]) Q(vt)i=QLinearτ(vt)i(H(l1)[vt]) 下面的计算方法也类似这样,对于第一层是将交易特征和结点类型embedding直接相加。
为了构建源结点 v s v_s vs的key vector,我们利用如下公式: K ( v s ) i = K − L i n e a r τ ( v s ) i ( X τ ( v s ) t x n + τ ( v s ) e m b + ϕ ( e ) e m b ) K^i_{(v_s)} = K-Linear^i_{\tau(v_s)}(X^{txn}_{\tau(v_s)} + \tau(v_s)^{emb} + \phi(e)^{emb}) K(vs)i=KLinearτ(vs)i(Xτ(vs)txn+τ(vs)emb+ϕ(e)emb) 构建结点 v s v_s vs的value vector是跟上面一样的方法。
attention的部分公式如下: α − h e a d i ( v s , e , v t ) = ( K i ( v s ) W τ ( v s ) a t t + Q i ( v t ) W τ ( v t ) a t t ) d k \alpha-head^i(v_s, e, v_t) = \frac{(K^i(v_s)W^{att}_{\tau(v_s)} + Q^i(v_t)W^{att}_{\tau(v_t)})}{\sqrt{d_k}} αheadi(vs,e,vt)=dk (Ki(vs)Wτ(vs)att+Qi(vt)Wτ(vt)att) 然后target结点的query vector和source结点的key vector的交互为 α ( v s , e , v t ) = s o f t m a x v s ∈ N ( v t ) ( ∣ ∣ i ∈ [ 1 , h ] α − h e a d i ( v s , e , v t ) ) \alpha(v_s, e, v_t) = softmax_{v_s \in N(v_t)}(||_{i \in [1, h]}\alpha-head^i(v_s, e, v_t)) α(vs,e,vt)=softmaxvsN(vt)(i[1,h]αheadi(vs,e,vt)) 其中 N ( v t ) N(v_t) N(vt)表示 v t v_t vt的邻居, h h h代表attention的头数,||代表vector concat。
最后, H ( l ) H^{(l)} H(l) H ( l − 1 ) H^{(l-1)} H(l1)层的message传递为 m s g ( v s , e , v t ) = ∣ ∣ i ∈ [ 1 , h ] ( V i ( v s ) ⋅ d r o p o u t ( α − h e a d i ( v s , e , v t ) ) ) msg(v_s, e, v_t) = ||_{i \in [1, h]}(V^i(v_s) \cdot dropout(\alpha-head^i(v_s, e, v_t))) msg(vs,e,vt)=i[1,h](Vi(vs)dropout(αheadi(vs,e,vt)))

xFraud Detector+

我们实现了xFraud detector和detector+,两者在采样阶段有所区别。在detector中,我们沿用了HGT的实现,并且发现HGT的采样方法时间开销很大。因此我们将采样方法替换成了GraphSAGE的采样方法。在detector+中,算法首先为结点采样出k-hop邻居,然后聚合邻居的feature信息,最后让GNN利用聚合后的信息预测label。HGT尝试在采样后保留差不多数量的 τ ( v ) \tau(v) τ(v) ϕ ( e ) \phi(e) ϕ(e)类型的结点和边,然后在子图中最小化information loss和sample variance,然而在我们的数据集中图更加稀疏,因此HGT采样比GraphSAGE采样更加稀疏。在下面的章节中我们会主要评估xFraud detector+

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值