一种区块链地址分类方法和装置与流程

文档序号:31151039发布日期:2022-08-17 02:50阅读:44来源:国知局
一种区块链地址分类方法和装置与流程

1.本发明涉及计算机技术领域,尤其涉及一种区块链地址分类方法和装置。


背景技术:

2.区块链地址是经多次加密计算后得到的哈希值,其中可直接提取的统计特征非常少,很难直接采用传统统计方法或传统机器学习方法来判断区块链地址是被用于正常交易还是非法交易。目前,区块链地址的分类方法主要有以下几种:
3.共同输入启发式分类方法:也称共同花费方法。该方法基于一个重要假设,即如果一笔交易中同时有多个输入地址,则认为这些输入地址是来自同一个实体。简言之,向同一对象转账的不同地址被认为是来自一个实体。通过对已有标签的地址进行辐射,则可以关联到更多的新地址,以此得到地址标签数据量的指数级增长。该方法存在两个问题:一是当基本假设不成立时,例如同一笔交易中存在来自其他实体的输入,或出现单一输入的情况,地址标注结果将不再可靠;二是初始地址标签的标注必须准确,否则后续辐射所得的结果将全部不可靠,即牵一发而动全身。
4.找零地址识别方法:区块链交易中常出现“找零”,即付款者支出的“钱”大于接受者收账的“钱”,此时需将多余的“钱”转移到找零地址。其中,这里的“钱”一般是加密货币,非传统意义的法定货币。通过遍历一次交易的输入地址和输出地址,根据找零地址的特征,可以判断此次交易是否存在找零行为和找零地址。经过多次遍历和规则验证后,可以最终确定找零地址。该方法存在的问题是:一是首先需判断是否存在找零行为,再判断哪个地址为找零地址,所以存在误差传递问题;二是算法对规则或假设的依赖性过高,导致算法泛化性不足;三是需经历多次遍历,对硬件资源和时间成本要求较高。
5.在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
6.由于区块链地址分类本身的特点,很难直接采用传统统计方法或传统机器学习方法来分类,而现有方法分类准确度不佳,结果不可靠,还存在误差传递问题,算法泛化性不足,对硬件资源和时间成本要求较高。


技术实现要素:

7.有鉴于此,本发明实施例提供一种区块链地址分类方法和装置,能够对区块链中各参与实体的交易行为和关联关系进行有效表达,得到表示区块链地址的等长向量以用于分类器分类,同时避免了传统机器学习中进行特征工程时易受外部环境影响的问题,分类准确度高,结果可靠,还克服了现有方法存在的误差传递问题、算法泛化性不足、对硬件资源和时间成本要求较高等缺陷。
8.为实现上述目的,根据本发明实施例的一个方面,提供了一种区块链地址分类方法。
9.一种区块链地址分类方法,包括:提取区块链地址集合中各区块链地址对应的交易记录,并对每一所述交易记录生成对应的交易向量,所述区块链地址集合包括待分类的
区块链地址;根据待分类的每个区块链地址对应的所述交易向量,生成对应的待分类的区块链地址的地址向量;将所述待分类的区块链地址的地址向量输入分类器,以得到所述待分类的区块链地址的类别。
10.可选地,所述提取区块链地址集合中各区块链地址对应的交易记录,并对每一所述交易记录生成对应的交易向量,包括:提取所述区块链地址集合中各区块链地址对应的交易记录,并按照交易生成时间对提取的各交易记录依序编号,其中每一所述交易记录有唯一的交易编号;将所述区块链地址集合中每一区块链地址对应的交易记录的集合作为一条语料;按照各所述交易编号在所有所述语料中的出现频率,对各所述交易编号排序,得到交易编号词表;将所述交易编号词表中的各所述交易编号向量化,得到对应的所述交易记录的交易向量。
11.可选地,所述将所述交易编号词表中的各所述交易编号向量化,得到对应的所述交易记录的交易向量,包括:对所述交易编号词表中的各所述交易编号编码,得到包括各交易编号编码向量的稀疏矩阵,所述交易编号编码向量中为1的分量表示对应的所述交易编号在所述交易编号词表中的位置;通过预设的词向量生成算法,基于所述稀疏矩阵生成对应的各所述交易记录的交易向量。
12.可选地,所述区块链地址集合中还包括带有标签的区块链地址,所述标签指示对应的区块链地址的类别;所述通过预设的词向量生成算法,基于所述稀疏矩阵生成对应的各所述交易记录的交易向量,包括:将所述稀疏矩阵输入预设的词向量生成算法的连续词袋模型,训练得到输出的各词向量,作为对应的各所述交易记录的交易向量。
13.可选地,所述根据待分类的每个区块链地址对应的所述交易向量,生成对应的待分类的区块链地址的地址向量,包括:对于待分类的每个区块链地址,分别计算该待分类的区块链地址对应的所有所述交易向量的平均值,得到相应待分类的区块链地址的地址向量。
14.可选地,所述区块链地址集合中还包括带有标签的区块链地址,所述标签指示对应的区块链地址的类别;所述方法还包括:根据所述带有标签的区块链地址对应的所述交易向量,生成对应的所述带有标签的区块链地址的地址向量;利用所述带有标签的区块链地址的地址向量训练所述分类器。
15.可选地,所述利用所述带有标签的区块链地址的地址向量训练所述分类器,包括:利用所述带有标签的区块链地址的地址向量构造训练集,将所述训练集中的所述地址向量输入极端梯度提升算法模型进行训练,得到所述分类器。
16.根据本发明实施例的另一方面,提供了一种区块链地址分类装置。
17.一种区块链地址分类装置,包括:交易向量生成模块,用于提取区块链地址集合中各区块链地址对应的交易记录,并对每一所述交易记录生成对应的交易向量,所述区块链地址集合包括待分类的区块链地址;地址向量生成模块,用于根据待分类的每个区块链地址对应的所述交易向量,生成对应的待分类的区块链地址的地址向量;地址类别确定模块,用于将所述待分类的区块链地址的地址向量输入分类器,以得到所述待分类的区块链地址的类别。
18.可选地,所述交易向量生成模块还用于:提取所述区块链地址集合中各区块链地址对应的交易记录,并按照交易生成时间对提取的各交易记录依序编号,其中每一所述交
易记录有唯一的交易编号;将所述区块链地址集合中每一区块链地址对应的交易记录的集合作为一条语料;按照各所述交易编号在所有所述语料中的出现频率,对各所述交易编号排序,得到交易编号词表;将所述交易编号词表中的各所述交易编号向量化,得到对应的所述交易记录的交易向量。
19.可选地,所述交易向量生成模块包括交易编号向量化子模块,用于:对所述交易编号词表中的各所述交易编号编码,得到包括各交易编号编码向量的稀疏矩阵,所述交易编号编码向量中为1的分量表示对应的所述交易编号在所述交易编号词表中的位置;通过预设的词向量生成算法,基于所述稀疏矩阵生成对应的各所述交易记录的交易向量。
20.可选地,所述区块链地址集合中还包括带有标签的区块链地址,所述标签指示对应的区块链地址的类别;所述交易编号向量化子模块还用于:将所述稀疏矩阵输入预设的词向量生成算法的连续词袋模型,训练得到输出的各词向量,作为对应的各所述交易记录的交易向量。
21.可选地,所述地址向量生成模块还用于:对于待分类的每个区块链地址,分别计算该待分类的区块链地址对应的所有所述交易向量的平均值,得到相应待分类的区块链地址的地址向量。
22.可选地,所述区块链地址集合中还包括带有标签的区块链地址,所述标签指示对应的区块链地址的类别;所述装置还包括第一训练模块,用于:根据所述带有标签的区块链地址对应的所述交易向量,生成对应的所述带有标签的区块链地址的地址向量;利用所述带有标签的区块链地址的地址向量训练所述分类器。
23.可选地,所述第一训练模块还用于:利用所述带有标签的区块链地址的地址向量构造训练集,将所述训练集中的所述地址向量输入极端梯度提升算法模型进行训练,得到所述分类器。
24.根据本发明实施例的又一方面,提供了一种电子设备。
25.一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的区块链地址分类方法。
26.根据本发明实施例的又一方面,提供了一种计算机可读介质。
27.一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的区块链地址分类方法。
28.上述发明中的一个实施例具有如下优点或有益效果:提取区块链地址集合中各区块链地址对应的交易记录,并对每一交易记录生成对应的交易向量,根据待分类的每个区块链地址对应的交易向量,生成对应的待分类的区块链地址的地址向量,将待分类的区块链地址的地址向量输入分类器,确定待分类的区块链地址的类别。使得能够得到表示区块链地址的等长向量以用于分类器分类,实现了对区块链中各参与实体的交易行为和关联关系进行有效表达,同时避免了传统机器学习中进行特征工程时容易受到参与人群、交易模式、区块链代币与法币兑换比率等外部环境影响的问题,并且分类准确度高,结果可靠,还克服现有方法存在的误差传递问题、算法泛化性不足、对硬件资源和时间成本要求较高等缺陷。
29.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加
以说明。
附图说明
30.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
31.图1是根据本发明一个实施例的区块链地址分类方法的主要步骤示意图;
32.图2是根据本发明一个实施例的区块链地址的分类流程的示意图;
33.图3是根据本发明一个实施例的cbow模型训练输出词向量的流程示意图;
34.图4是根据本发明一个实施例的区块链地址分类装置的主要模块示意图;
35.图5是本发明实施例可以应用于其中的示例性系统架构图;
36.图6是适于用来实现本发明实施例的服务器的计算机系统的结构示意图。
具体实施方式
37.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
38.图1是根据本发明一个实施例的区块链地址分类方法的主要步骤示意图。
39.如图1所示,本发明一个实施例的区块链地址分类方法主要包括如下的步骤s101至步骤s103。
40.步骤s101:提取区块链地址集合中各区块链地址对应的交易记录,并对每一交易记录生成对应的交易向量,区块链地址集合包括待分类的区块链地址;
41.步骤s102:根据待分类的每个区块链地址对应的交易向量,生成对应的待分类的区块链地址的地址向量;
42.步骤s103:将待分类的区块链地址的地址向量输入分类器,以得到待分类的区块链地址的类别。
43.在一个实施例中,区块链地址集合可以是区块链上提取的已经分类打标的区块链地址和需要分类打标的区块链地址所构成的集合,已经分类打标的区块链地址即带有标签的区块链地址,标签指示对应的区块链地址的类别。需要分类打标的区块链地址即待分类的区块链地址。
44.区块链地址为区块链上交易的交易地址,例如钱包地址。
45.区块链地址对应的一个交易记录为该区块链地址参与的一笔交易,每一区块链地址可以对应一个或多个交易记录。每笔交易可以有一个或多个交易地址参与,即可以一个或多个区块链地址对应同一交易记录。
46.在一个实施例中,提取区块链地址集合中各区块链地址对应的交易记录,并对每一交易记录生成对应的交易向量,包括:提取区块链地址集合中各区块链地址对应的交易记录,并按照交易生成时间对提取的各交易记录依序编号,其中每一交易记录有唯一的交易编号;将区块链地址集合中每一区块链地址对应的交易记录的集合作为一条语料;按照各交易编号在所有语料中的出现频率,对各交易编号排序,得到交易编号词表;将交易编号词表中的各交易编号向量化,得到对应的交易记录的交易向量。
47.将交易编号词表中的各交易编号向量化,得到对应的交易记录的交易向量,具体可以包括:对交易编号词表中的各交易编号编码,得到包括各交易编号编码向量的稀疏矩阵,其中,交易编号编码向量中为1的分量表示对应的交易编号在交易编号词表中的位置;通过预设的词向量生成算法,基于稀疏矩阵生成对应的各交易记录的交易向量。
48.在一个实施例中,通过预设的词向量生成算法,基于稀疏矩阵生成对应的各交易记录的交易向量,包括:将稀疏矩阵输入预设的词向量生成算法(具体为word2vec算法)的连续词袋模型(cbow,continuous bag of words model),训练得到输出的各词向量,作为对应的各交易记录的交易向量。
49.在一个实施例中,根据待分类的每个区块链地址对应的交易向量,生成对应的待分类的区块链地址的地址向量,包括:对于待分类的每个区块链地址,分别计算该待分类的区块链地址对应的所有交易向量的平均值,得到相应待分类的区块链地址的地址向量。通过该方法,可以得到待分类的每个区块链地址的地址向量。
50.在一个实施例中,根据带有标签的区块链地址对应的交易向量,生成对应的带有标签的区块链地址的地址向量;利用带有标签的区块链地址的地址向量训练分类器。分类器可以采用各种有监督学习的分类器或分类模型来实现。
51.在一个实施例中,利用带有标签的区块链地址的地址向量训练分类器,包括:利用带有标签的区块链地址的地址向量构造训练集,将训练集中的地址向量输入极端梯度提升xgboost(extreme gradient boosting)算法模型进行训练,得到分类器。
52.区块链技术凭借独有的“诚实”与“透明”特点,能够更好地维护用户权益,如何对区块链数据做地址分类是当前亟需解决的问题。本发明实施例的区块链数据可以是公链、私链、或联盟链的区块链地址,本发明实施例主要以公链为例进行说明。
53.传统机器学习中有大量分类方法,例如经典的逻辑回归、支持向量机,基于树算法的分类树、随机森林,以及基于梯度的梯度提升算法等。虽然上述方法在不少应用场景中被验证有不错的表现,但在区块链地址分类中有两个致命问题:一是消费者的交易行为会受诸多外部环境的影响,导致输出变量与输入变量间的模型关系会随时间而产生变化,但上述提及的传统机器学习方法都只能处理横截面数据,无法处理与时间相依的面板数据;二是即便采取传统统计方法建立面板数据模型,但由于区块链公链(或私链、联盟链)的交易信息中可提取的统计特征太少,导致传统统计建模通常无法训练出满意的模型。
54.为克服现有技术的上述不足,本发明的一个实施例提出了基于词向量的区块链地址分类方法,能对区块链中的各个参与实体的交易行为和关联关系进行有效表达,同时避免了传统机器学习中进行特征工程时容易受到参与人群、交易模式、区块链代币与法币兑换比率等外部环境影响的问题。通过对区块链地址的交易数据进行处理,以获取数据集(含标注标签与未标注标签的数据)中每个区块链地址对应的交易记录并排序,使用生成词向量的方式,为所有区块链地址生成相应的同维数的地址向量,对已经有标签的地址向量使用xgboost算法进行训练,生成分类模型(分类器),然后对待分类的区块链地址进行分类。
55.本发明一个实施例的区块链地址的分类流程如图2所示,主要包括:提取各区块链地址参与的所有交易记录;对各交易记录进行编号和排序;计算每笔交易对应的交易向量;计算每个区块链地址对应的地址向量;将已知类别的区块链地址的地址向量输入分类算法进行训练,得到训练后的分类器;将待分类的区块链地址的地址向量输入训练后的分类器,
得到待分类的区块链地址的类别。
56.下面对本实施例的区块链地址的分类流程进行详细介绍,本实施例中区块链地址简称地址。
57.首先需要进行数据准备。该步骤主要是在区块链上提取相关地址(包括已经分类打标和需要分类打标的地址,这些地址构成一个区块链地址集合)参与的所有交易,并构建地址与交易序列的对应关系。其中已经分类打标的地址即带有标签的区块链地址,需要分类打标的地址即待分类的区块链地址。
58.数据准备的具体步骤如下:从区块链的历史交易记录中提取各地址参与的所有交易(每笔交易有对应的一个交易记录);把所有交易记录按照交易发生的时间顺序(即交易生成时间)从小到大进行编号,交易编号越大,说明交易的发生时间越晚,例如,假设提取的所有区块链地址总计对应一万笔交易,则交易编号为1~10000;另外,整理出每个地址对应的交易编号列表,并按从小到大的顺序进行排序。通过上述步骤,每一交易记录都有对应的一个交易编号,且每个区块链地址有各自的交易编号列表,其中包括交易记录和对应的交易编号,例如某地址a,其交易编号列表中的交易编号包括:1,2,4,6
……
;某地址b,其交易编号列表中的交易编号包括:3,4,5
……
;根据此例可以看出,本发明实施例中,不同地址可以参与同一笔交易,即对应同一交易编号,例如地址a和地址b均参与了交易编号为4的交易。每个地址可以对应一个或多个交易编号,例如地址a对应交易编号为1,2,4,6
……
。从而构建出区块链地址与交易序列的对应关系:所有区块链地址作为整体对应一个交易序列,其中包括所有的交易记录和交易记录对应的交易编号;而每个区块链地址又有各自的交易序列,其中它只包括该区块链地址相应的交易记录和交易记录对应的交易编号。
59.在数据准备步骤之后,生成代表交易编号的向量,即交易向量。可以将上述已准备数据中的交易编号作为训练数据,然后使用word2vec算法(一种词向量生成算法)进行无监督学习,训练得到每个交易编号对应的词向量,该词向量即为交易向量,由于交易记录与交易编号是一一对应的,交易编号对应的词向量即相应的交易记录的交易向量。
60.生成交易向量的具体步骤如下:制作训练词向量的语料;制作交易编号词表;使用独热编码得到稀疏矩阵;使用word2vec算法的cbow模型进行训练得到每个交易编号对应词向量。
61.制作训练词向量的语料,具体地,把每个地址对应的交易列表(即交易序列)都作为一条语料进行处理,即为每个地址形成的包含交易编号信息且按交易编号从小到大对交易记录排列的序列,一个地址对应的交易序列即该地址对应的交易记录的集合。
62.制作交易编号词表,具体地,根据交易编号在各地址对应的交易序列(即所有语料)中的出现频率排序,例如按照出现频率由高到低来排序,使用序号代表一个交易,即得到交易编号词表,例如,假设总计6笔交易,某地址c的交易序列中各交易编号为1,2,4,6,另一地址d的交易序列中各交易编号为1,3,4,5,那么对应地址c和地址d分别为两个语料,在所有语料中交易编号的出现频率最大的是交易编号“1”和“4”,在两个语料中都有出现,出现频率为2次,其他交易编号的出现频率都是1次,那么交易编号词表中交易编号的顺序按照上述排序规则,可以为1,4,2,3,5,6,出现频率相同的不同交易编号可按交易编号由小到大排序。需要说明的是,上述示例仅为便于说明交易编号词表的生成方式,实际交易数量远大于本示例的6笔交易。
63.使用独热编码得到稀疏矩阵,具体地,即对交易编号词表中的各交易编号进行编码,本发明实施例优选采用独热编码(one-hot编码)。把交易编号词表中的每个交易编号用一个维度为全部交易数量(即交易记录数)的向量(即交易编号编码向量)进行表示,获得由各交易编号编码向量构成的稀疏矩阵。其中,每个交易编号编码向量只包括一个为1的分量,其他分量都是0,分量1在该向量中的位置对应着该交易在交易编号词表中的位置,例如,某个交易编号在交易编号词表中的序号为2,则对应的交易编号编码向量为(0 1 0 0 0
……
),该交易编号编码向量的维度数为交易记录数,例如,假设总计一万笔交易,则交易记录数=10000,那么,交易编号编码向量的维度数为10000。
64.将上述得到的稀疏矩阵输入word2vec算法的cbow模型,训练得到各交易编号对应的词向量,即得到各交易记录的交易向量。cbow模型训练输出词向量的具体步骤在下文还将进一步介绍。
65.通过上述过程,本发明实施例用各个区块链地址参与的交易构成不等长的序列作为表示地址的特征,例如地址e参与10笔交易,地址f参与50笔交易,那么地址e的交易序列长度为10、地址f的交易序列长度为50,这些序列可以作为表示区块链地址的特征。
66.在生成交易向量的步骤之后,生成代表交易地址的向量,即区块链地址的地址向量。具体可以通过对一个地址参与的交易序列的所有交易向量求平均值,即对一个区块链地址对应的所有交易向量求平均值,来得到该区块链地址的地址向量。
67.本发明实施例使用词向量技术处理地址参与的交易构成的上述不等长的序列,能够生成具有相同维度的向量,即不同的区块链地址的地址向量的维度数都是相同的,从而得到能够用于分类器对区块链地址分类的等长向量,解决了传统机器学习方法都只能处理横截面数据,无法处理与时间相依的面板数据,以及由于区块链公链的交易信息中可提取的统计特征太少,导致传统统计建模通常无法训练出满意的模型的问题。
68.通过上述步骤得到区块链地址的地址向量,这些地址向量之中,带有标签的区块链地址可以用于训练分类器,待分类的区块链地址的地址向量输入训练好的分类器,即可得到各区块链地址的类别,例如属于异常交易的地址或是正常交易的地址。
69.下面介绍分类器的训练和利用分类器分类的过程。
70.训练之前的预处理步骤包括:将已经分类打标的地址数据(即带有标签的区块链地址)按比例随机分为训练数据和测试数据。
71.以训练基于向量的分类模型(即分类器)为xgboost(极端梯度提升)算法为例,算法的输入是训练集样本j={(x1,y1),(x2,y2),...(xm,ym)},训练集样本j中,xi表示区块链地址的地址向量,yi为标签,标签表示该区块链地址的类别,i∈[1,m]。最大迭代次数为t,损失函数为l,正则化系数为λ,γ;输出是强学习器f(x);算法主流程如下,对迭代轮数t=1,2,...t:
[0072]
计算第i个样本(i=1,2,..m)在当前轮损失函数l基于f
t-1
(xi)的一阶导数g
ti
,二阶导数h
ti
,计算所有样本的一阶导数和二阶导数和
[0073]
基于当前节点尝试分裂决策树,默认分数score=0,g和h为当前需要分裂的节点的一阶二阶导数之和。对特征序号k=1,2...k:
[0074]gl
=0,h
l
=0
[0075]
将样本按特征k从小到大排列,依次取出第i个样本,依次计算当前样本放入左子树后,左右子树一阶和二阶导数和:
[0076]gl
=g
l
+g
ti
,gr=g-g
l
[0077]hl
=h
l
+h
ti
,hr=h-h
l
[0078]
尝试更新最大的分数:
[0079][0080]
基于最大score(分数)对应的划分特征和特征值分裂子树;
[0081]
如果最大score为0,则当前决策树建立完毕,计算所有叶子区域的w
tj
,得到弱学习器h
t
(x),更新强学习器f
t
(x),进入下一轮弱学习器迭代。如果最大score不是0,则转到上述“基于当前节点尝试分裂决策树”的步骤以继续尝试分裂决策树。
[0082]
把待分类的区块链地址的地址向量输入训练好的分类模型(即分类器),对地址类别进行判别,得到分类后的结果,即区块链地址的类别。
[0083]
本发明实施例基于地址向量训练分类模型,完成区块链地址的分类任务,分类器可以不限于上述的xgboost算法实现的分类器,也可以采用基于机器学习的其他的分类模型、分类网络或分类算法来实现。
[0084]
图3是本发明一个实施例的cbow模型训练输出词向量的流程示意图。本发明一个实施例的cbow模型训练输出词向量的流程包括:输入上下文单词的独热编码,即交易编号编码向量;所有独热编码分别乘以共享的输入权重矩阵;将输入的向量相加求平均作为隐层向量;乘以输出权重矩阵;使用激活函数处理得到概率分布(激活函数用于将输出向量中的数值转换为概率);与标签的独热编码比较;定义损失函数;采用梯度下降法更新输入权重矩阵w和输出权重矩阵w


[0085]
下面详细介绍本发明一个实施例的cbow模型训练输出词向量的过程。
[0086]
cbow模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这个特定词的词向量,其中,词的词向量即本发明实施例的交易编号对应的词向量,也即交易向量。流程包括以下子步骤:
[0087]
计算隐藏层h的输出,如下:
[0088][0089]
此公式中xi为输入上下文单词,w为输入权重矩阵,c为窗口大小,该输出就是输入向量的加权平均。
[0090]
计算在输出层每个结点的输入。如下:
[0091][0092]
其中是输出权重矩阵w

的第j列。
[0093]
计算输出层的输出,输出yj如下:
[0094]
[0095]
定义损失函数,这个损失函数就是给定输入上下文的输出单词的条件概率,一般都是取对数,如下所示:
[0096][0097]
输出权重矩阵w

的更新规则:
[0098][0099]
输入权重矩阵w的更新规则如下:
[0100][0101]
训练完毕后,输入层的每个单词与输入权重矩阵w相乘得到的向量就是需要的词向量;其中在本发明实施例中,单词即为交易编号。
[0102]
图4是根据本发明一个实施例的区块链地址分类装置的主要模块示意图。
[0103]
如图4所示,本发明一个实施例的区块链地址分类装置400主要包括:交易向量生成模块401、地址向量生成模块402、地址类别确定模块403。
[0104]
交易向量生成模块401,用于提取区块链地址集合中各区块链地址对应的交易记录,并对每一交易记录生成对应的交易向量,区块链地址集合包括待分类的区块链地址;
[0105]
地址向量生成模块402,用于根据待分类的每个区块链地址对应的交易向量,生成对应的待分类的区块链地址的地址向量;
[0106]
地址类别确定模块403,用于将待分类的区块链地址的地址向量输入分类器,以得到待分类的区块链地址的类别。
[0107]
交易向量生成模块401具体可以用于:提取区块链地址集合中各区块链地址对应的交易记录,并按照交易生成时间对提取的各交易记录依序编号,其中每一交易记录有唯一的交易编号;将区块链地址集合中每一区块链地址对应的交易记录的集合作为一条语料;按照各交易编号在所有语料中的出现频率,对各交易编号排序,得到交易编号词表;将交易编号词表中的各交易编号向量化,得到对应的交易记录的交易向量。
[0108]
交易向量生成模块401可以包括交易编号向量化子模块,用于:对交易编号词表中的各交易编号编码,得到包括各交易编号编码向量的稀疏矩阵,交易编号编码向量中为1的分量表示对应的交易编号在交易编号词表中的位置;通过预设的词向量生成算法,基于稀疏矩阵生成对应的各交易记录的交易向量。
[0109]
区块链地址集合中还可以包括带有标签的区块链地址,标签指示对应的区块链地址的类别。
[0110]
交易编号向量化子模块具体可以用于:将稀疏矩阵输入预设的词向量生成算法的连续词袋模型,训练得到输出的各词向量,作为对应的各交易记录的交易向量。
[0111]
地址向量生成模块402具体可以用于:对于待分类的每个区块链地址,分别计算该待分类的区块链地址对应的所有交易向量的平均值,得到相应待分类的区块链地址的地址向量。
[0112]
区块链地址分类装置400还可以包括第一训练模块,用于:根据带有标签的区块链地址对应的交易向量,生成对应的带有标签的区块链地址的地址向量;利用带有标签的区
块链地址的地址向量训练分类器。
[0113]
第一训练模块具体可以用于:利用带有标签的区块链地址的地址向量构造训练集,将训练集中的地址向量输入极端梯度提升算法模型进行训练,得到分类器。
[0114]
另外,在本发明实施例中区块链地址分类装置的具体实施内容,在上面区块链地址分类方法中已经详细说明了,故在此重复内容不再说明。
[0115]
图5示出了可以应用本发明实施例的区块链地址分类方法或区块链地址分类装置的示例性系统架构500。
[0116]
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0117]
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
[0118]
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0119]
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息
‑‑
仅为示例)反馈给终端设备。
[0120]
需要说明的是,本发明实施例所提供的区块链地址分类方法一般由服务器505执行,相应地,区块链地址分类装置一般设置于服务器505中。
[0121]
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0122]
下面参考图6,其示出了适于用来实现本技术实施例的服务器的计算机系统600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0123]
如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有系统600操作所需的各种程序和数据。cpu 601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0124]
以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0125]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机
可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本技术的系统中限定的上述功能。
[0126]
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0127]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0128]
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括交易向量生成模块、地址向量生成模块、地址类别确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,交易向量生成模块还可以被描述为“用于提取区块链地址集合中各区块链地址对应的交易记录,并对每一交易记录生成对应的交易向量的模块”。
[0129]
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:提取区块链地址集合中各区块链地址对应的交易记录,并对每一所述交易记录生成对应的交易向量,所述区块链地址集合包括待分类的区块链地址;根据待分类的
每个区块链地址对应的所述交易向量,生成对应的待分类的区块链地址的地址向量;将所述待分类的区块链地址的地址向量输入分类器,以得到所述待分类的区块链地址的类别。
[0130]
根据本发明实施例的技术方案,对区块链地址集合中区块链地址对应的每一交易记录生成对应的交易向量,根据待分类的每个区块链地址对应的交易向量,生成对应的待分类的区块链地址的地址向量,将待分类的区块链地址的地址向量输入分类器,确定待分类的区块链地址的类别。使得能够得到表示区块链地址的等长向量以用于分类器分类,实现了对区块链中各参与实体的交易行为和关联关系进行有效表达,同时避免了传统机器学习中进行特征工程时容易受到参与人群、交易模式、区块链代币与法币兑换比率等外部环境影响的问题,并且分类准确度高,结果可靠,还克服现有方法存在的误差传递问题、算法泛化性不足、对硬件资源和时间成本要求较高等缺陷。
[0131]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1