首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

比特币交易网络中的欺诈检测:一种节点嵌入方法

技术前沿

作者:Jahir M. Gutierrez

编辑整理:萝卜兔

P2P(比如PayPal,Venmo,Prosper)交易网络是几个基于加密货币市场的核心。由此,用户可以在没有中间人的平台,匿名进行交易货物和加密货币。然而,就像所有的交易平台一样,用户可能成为欺诈的牺牲品,在平台损失金钱和信誉。因此,P2P 平台做了努力阻止欺诈交易,比如在完成一个交易后,让用户互相评价,得到一个 Perception 分数。尽管这个做法产生了一些效果,但是用于识别那些伪装成值得信任的卖家的用户时,效果差强人意。

在这里,我结合图理论和深度学习来预测 P2P 比特币市场欺诈交易。主要是使用图表示学习,建立了一个分类器,来区分诚实卖家和欺诈者,由此估计卖家在未来交易中进行欺诈的可能性。

匿名 P2P 交易的问题

一般情况下,用户敏感信息是匿名的,下面是一些与欺诈有关的问题:

退款执行困难。没有中间人或交易中介,在汇款完成后追踪欺诈者几乎是不可能的。

绿色代表用户,橙色代表欺诈者

Perception 分数不是很有用。当正面评价和负面评价数量很相似的时候,通常很难判断卖方的可信度。换句话说,通过评价来判断卖家是否可信,正面和负面的评价区别应该多大才有效呢?

Perception 分数可以操纵。买家只能依靠评论来评估卖家的可信度,卖家则通常会利用很多机器账户刷评价,伪装成诚信的卖家。

增强 Perception 分数

通过上面描述的问题以及用户匿名的事实,我们似乎只能依靠感知分数来区分好卖家和欺诈者。毕竟,与银行和其他金融机构不同,我们没有任何关于用户的额外信息,例如信用评分或历史交易。

但是,我们可以利用网络本身提供的信息。也就是隐含在 P2P 网络(用户(节点)和用户之间的交易(边)构成的网络)中的信息。例如,一个诈骗团伙的特征是,他们之间的互相评价是很积极的,但是与中心节点之外的用户联系却非常消极。

可以从交易网络中识别隐含信息

在下一部分,我将具体介绍比特币 P2P 市场欺诈交易预测场景,包括描述具体数据,利用 Perception 分数和图表示学习的方法。

比特币 P2P 市场数据

我从Stanford Large Network Dataset Collection下载了两个比特币 P2P 市场(比特币 OTC和 比特币 Alpha)的图数据。展示如下,图数据包含在各交易后买方分配给卖方的评分表中。评级的范围是[-10,10],只有约 11% 的评价是正面的。

交易数据样本:SOURCE是买方用户ID;TARGET卖方用户ID;RATING是SOURCE给TARGET的评价分数

连接 Bitcion OTC 和 Bitcion Alpha 标签得到了一个图,有 59788条交易(边)和9664用户(节点)。

交易子图:红色节点代表用户,黑色箭头表示交易,箭头指向卖方

为了简化和分析,我将交易分为两类:正常(+1),欺诈(-1)。

评分分布不平衡,89%为正,其余为负。

任务是用邻居节点信息和评分信息构建分类器,判断哪些卖家更有可能实施欺诈。

用 Node2Vec 学习用户表示

为了从网络中提取用户特征,我使用Node2Vec algorithm 的 python implementation 。简要地说,Node2Vec 通过模拟随机游走,为图中的每个节点生成低维度表示。在某种程度上,这些节点表示包含节点的信息,社区以及其它和其他节点的接近度。

首先,我修剪了原始网络,保留了 80% 的交易用于训练分类器。然后我生成了大小为 14 的 Node2Vec 表示,并使用 t-SNE 将它可视化,在二维中的投影表示如下。Node2Vec 投影清楚的将节点(来自 OTC 和 Alpha)分为两个区域。

为了进行更完整的节点表示,我为每个 Node2Vec 向量连接了6个额外的节点特征。额外的特征描述如下:

增加的特征

因此,对于每个节点,我构建了包含 Node2Vec特征和评价分数的 20 维向量。

训练和验证神经网络

对网络中的每笔交易,我创建了一个代表买卖双方的 40 维向量,并将这些向量输入 NN,包含以下层:

两个大小为 128 的隐藏层(ReLU 激活)

一个大小为 64 的隐藏层(ReLU 激活)

一个大小为 32 的隐藏层 (ReLU 激活)

一个大小为 16 的隐藏层(ReLU 激活)

一个大小为 1 的输出层(sigmoid 激活)

为了能够在监督学习下训练 NN,我将欺诈交易标记为 1,将非欺诈交易标记为 0。由于 class 不平衡(89%的训练例子是1或0),所以使用 bootstrapping 来训练神经网络,每10个周期训练一个子集,总共150个周期。我把该模型称为 TrustKeeper。为了比较,我仅仅使用了评价分数,用同样的结构训练了第二个网络。我在剩下的 20% 的交易数据上测试了两个模型。结果如下:

没有 Node2Vec 的 confusion matrix

TrustKeeper 的 confusion matrix

两者的 ROC 曲线

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190813A04MTW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券