CN110782346A - 一种基于关键字特征提取和注意力的智能合约分类方法 - Google Patents
一种基于关键字特征提取和注意力的智能合约分类方法 Download PDFInfo
- Publication number
- CN110782346A CN110782346A CN201910957449.XA CN201910957449A CN110782346A CN 110782346 A CN110782346 A CN 110782346A CN 201910957449 A CN201910957449 A CN 201910957449A CN 110782346 A CN110782346 A CN 110782346A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- vector
- intelligent
- long
- term memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于关键字特征提取和注意力的智能合约分类方法,该方法利用长短期记忆网络对智能合约的代码进行处理,对它们相应的关键字进行特征提取,并结合注意力机制从而达到对智能合约进行分类的目的。使用词转词向量模型Word2Vec将智能合约训练成内容词向量,同时使用向量化文本工具Tokenizer将关键字转化为序列化向量。将序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络,最终使用softmax分类器进行智能合约的分类。最后在DApps去中心化应用程序结合以太坊网站的数据集上评估我们的模型,实验结果证明了其有效性。训练准确度达到89.1%。
Description
技术领域
本发明涉及服务计算技术领域,具体涉及一种基于关键字特征提取和注意力的智能合约分类方法。
背景技术
随着比特币等加密货币的日益普及,作为一种创新性的去中心化極架与分布式计算范式,
区块链技术迅速崛起并应用到了众多领域。其中,区块链技术在彩票、债券、医疗等领域的应用尤其表现出了令人振奋的前景。区块链技术利用POW、PBFT等算法在去中心化的环境下达成共识,共同维护一个分布式的账本,部分解决了拜占庭将军问题。
在比特币中,为了实现验证公钥、签名等应用,比特币实现了一种基于栈的脚本编程语言。但是这种编程语言具有区块链数据缺失、状态缺失、客户端不兼容等问题。因此在这样的背景下,以太坊等智能合约平台扩展了比特币的脚本语言并实现了一种图灵完备的编程语言。用户可以利用以太坊提供的编程语言与编程环境实现个性化的智能合约。
随着以太坊等智能合约平台的迅速发展,区块链上智能合约代码信息快速增加。如何管理和组织智能合约代码变得根据挑战性。庞大的智能合约数量使得人工选择智能合约变得不再可能。通过代码自动分类可节约人工标记海量智能合约的巨大时间成本,有利于智能合约的分类组织与管理。然而传统的算法如朴素贝叶斯、决策树存在不能实现跨域分类、特征稀疏的问题。而本发明提出基于关键字特征提取和注意力的智能合约分类方法,可从关键字和智能合约文本中提取出有效的稠密的特征,并通过注意力机制关注关键字在智能合约中的相关片段,有效提高了分类的准确度,方便用户获取有效的智能合约。
发明内容
针对现有的智能合约分类方法存在的不能跨域分类以及特征稀疏问题,本发明提供了一种基于关键字特征提取和注意力的智能合约分类方法。
本发明采用以下的技术方案:
1.一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,包括以下步骤:
步骤1:收集DApps去中心化应用程序的智能合约及标签和关键字作为数据集文档,再收集以太坊网站的智能合约作为数据集文档。将在DApps去中心化应用程序收集到的智能合约和标签按照用途定义为九类,并将标签集转化为one-hot向量;
步骤2:对收集的DApps去中心化应用程序中的智能合约和以太坊网站中的智能合约进行文本预处理:使用向量化文本工具Tokenizer将智能合约转化为序列化的向量。将DApps去中心化应用程序中的智能合约转化后的序列化向量作为输入,将转化为one-hot向量的标签集作为输出,利用长短期记忆神经网络中进行训练,训练完成后将以太坊网站的智能合约转化后的序列化向量作为输入,输入到训练完成的长短期记忆神经网络中,进行标签的预测。而后根据以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约。最后将DApps去中心化应用程序的智能合约及标签和关键字的数据集文档与以太坊网站的智能合约及标签和关键字的数据集文档合成为一个统一包含智能合约及标签和关键字的数据集文档,并按照数据集中数据的分布将数据分为训练集与测试集。
步骤3:对训练集与测试集进行文本预处理:使用词转词向量模型Word2Vec将将训练集与测试集中的智能合约训练成智能合约的词嵌入表示,同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量。将序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络,最后对该整体的神经网络模型进行训练,不断修改参数直至分类效果达到最优。
2.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,步骤1中对DApps去中心化应用程序收集到的智能合约加标签的过程为:将标签分为K类,在这里K的值为9,分别为:1分、2分、3分、4分、5分、6分、7分、8分,9分,分别对应游戏类、彩票类、金融类、娱乐类、工具类、安全类、货币类、信息管理类、健康类。并使用one-hot工具将标签转化为one-hot向量。
3.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,所述步骤2,具体包括以下子步骤:
步骤2.1:使用向量化文本工具Tokenizer将收集的DApps去中心化应用程序中的智能合约智能合约和以太坊网站的智能合约转化为序列化的向量;
步骤2.2:将根据步骤2.1中得到的DApps去中心化应用程序的序列化向量(w1,w2,wi...,wn)及one-hot标签向量分别作为模型的输入与输出,放入长短期记忆神经网络中进行训练,并在每个时间步长t处得到相应的隐藏状态ht,如下式所示。
ht=LSTM(wt) (1)
其中,LSTM表示长短期记忆神经网络。最后使用激活函数softmax函数将长短期记忆神经网络输出的结果映射到0,1之间,将激活函数softmax函数映射的结果与DApps去中心化应用程序标签的one-hot标签向量进行比对,经过迭代后训练出最优参数。
训练完成后将以太坊网站的序列化向量作为输入,输入到训练好的长短期记忆神经网络中进行标签的预测;
步骤2.3:将根据步骤2.2得到的以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约;
步骤2.4:将DApps去中心化应用程序的智能合约及标签和关键字的数据集文档与以太坊网站的智能合约及标签和关键字的数据集文档合成为一个统一包含智能合约及标签和关键字的数据集文档,并按照4:1的比例将数据集中的原始数据分为训练集与测试集。
4、根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,所述步骤3包括将步骤2中的得到的数据集中的原始数据进行文本预处理,将关键字的序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络。最后进行整合并分类,具体包括以下步骤:
步骤3.1:使用词转词向量模型Word2Vec将将训练集与测试集中的每条智能合约(x1,x2,xi...,xn)训练成智能合约的词嵌入表示(v1,v2,vi...,vn),其中xi为训练集和测试集中的每条数据中的词,i为索引,vi表示为在智能合约中第i个词向量。同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量a;
步骤3.2:将根据步骤3.1得到的序列化向量a作为长短期记忆网络的输入,输入到神经网络中,将得到的隐藏状态向量t与当前智能合约中的每个词向量vi进行连接,先经过一层卷积运算,再经过一层池化运算后,放入一个维度为d的长短期记忆神经网络中,将生成的n个隐藏状态向量表示为矩阵H;
步骤3.3:注意力机制应用于根据步骤3.2得到的矩阵H以获得注意力向量α,用于生成Hi的加权表示。通过使用加权表示作为关键字的智能合约表示向量s。这使得注意力机制能够关注关键字的智能合约中的相关片段。生成s的整体注意机制概括为:
M=tanh(H,Wh) (2)
α=softmax(MT,Wb) (3)
其中,Wh和Wb是在训练过程中需要学习的参数矩阵,MT和αT是矩阵M和α的转置矩阵;
步骤3.4:将智能合约表示向量s放入长短期记忆神经网络中进行整合与分类。由于智能合约分类问题是一个多分类问题,所以使用激活函数softmax函数将长短期记忆神经网络输出的结果映射到0,1之间,映射函数如公式(5)所示:
其中,Smi表示为第i类智能合约映射的结果;i,j表示为K类标签中的索引;
步骤3.5:在步骤3.4之后,将softmax函数映射的结果与one-hot标签向量进行比对,若不相同,则通过反向传播算法对模型的参数进行调整;若相同,则参数不变,经过迭代后训练出最优参数,定义的损失函数如公式(6)所示:
本发明具有的有益效果是:
(1)可以实现以太坊等多个智能合约平台的智能合约分类,具有较好的通用性;
(2)使用传统的分类算法效果不理想,本方法通过利用关键字特征提取与注意力机制关注关键字在智能合约中的相关片段,提高了检测结果的准确性
(3)本方法提出了用自动智能合约分类来对智能合约进行管理,通过对智能合约代码进行分类,用户可以快速找到自己想要的服务;
(4)本检测方法的精度达到了89.1%,能够胜任大部分的分类任务。
附图说明
图1为本发明所提供的基于关键字特征提取和注意力的智能合约分类方法流程图
图2为基于关键字特征提取和注意力长短期记忆神经网络的结构示意图。
图3为生成关键字特征表示向量的模型结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的具体实施方式做进一步说明:
结合本发明实施例中的附图,一种基于关键字特征提取和注意力的智能合约分类方法,包括以下步骤:
1.一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,包括以下步骤:
步骤1:收集DApps去中心化应用程序的智能合约及标签和关键字作为数据集文档,再收集以太坊网站的智能合约作为数据集文档。将在DApps去中心化应用程序收集到的智能合约和标签按照用途定义为九类,并将标签集转化为one-hot向量;
步骤2:对收集的DApps去中心化应用程序中的智能合约和以太坊网站中的智能合约进行文本预处理:使用向量化文本工具Tokenizer将智能合约转化为序列化的向量。将DApps去中心化应用程序中的智能合约转化后的序列化向量作为输入,将转化为one-hot向量的标签集作为输出,利用长短期记忆神经网络中进行训练,训练完成后将以太坊网站的智能合约转化后的序列化向量作为输入,输入到训练完成的长短期记忆神经网络中,进行标签的预测。而后根据以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约。最后将DApps去中心化应用程序的智能合约及标签和关键字的数据集文档与以太坊网站的智能合约及标签和关键字的数据集文档合成为一个统一包含智能合约及标签和关键字的数据集文档,并按照数据集中数据的分布将数据分为训练集与测试集。
步骤3:对训练集与测试集进行文本预处理:使用词转词向量模型Word2Vec将将训练集与测试集中的智能合约训练成智能合约的词嵌入表示,同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量。将序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络,最后对该整体的神经网络模型进行训练,不断修改参数直至分类效果达到最优。
2.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,步骤1中对DApps去中心化应用程序收集到的智能合约加标签的过程为:将标签分为K类,在这里K的值为9,分别为:1分、2分、3分、4分、5分、6分、7分、8分,9分,分别对应游戏类、彩票类、金融类、娱乐类、工具类、安全类、货币类、信息管理类、健康类。并使用one-hot工具将标签转化为one-hot向量。
3.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,所述步骤2,具体包括以下子步骤:
步骤2.1:使用向量化文本工具Tokenizer将收集的DApps去中心化应用程序中的智能合约智能合约和以太坊网站的智能合约转化为序列化的向量;
步骤2.2:将根据步骤2.1中得到的DApps去中心化应用程序的序列化向量(w1,w2,wi...,wn)及one-hot标签向量分别作为模型的输入与输出,放入长短期记忆神经网络中进行训练,并在每个时间步长t处得到相应的隐藏状态ht,如下式所示。
ht=LSTM(wt) (1)
其中,LSTM表示长短期记忆神经网络。最后使用激活函数softmax函数将长短期记忆神经网络输出的结果映射到0,1之间,将激活函数softmax函数映射的结果与DApps去中心化应用程序标签的one-hot标签向量进行比对,经过迭代后训练出最优参数。
训练完成后将以太坊网站的序列化向量作为输入,输入到训练好的长短期记忆神经网络中进行标签的预测;
步骤2.3:将根据步骤2.2得到的以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约;
步骤2.4:将DApps去中心化应用程序的智能合约及标签和关键字的数据集文档与以太坊网站的智能合约及标签和关键字的数据集文档合成为一个统一包含智能合约及标签和关键字的数据集文档,并按照4:1的比例将数据集中的原始数据分为训练集与测试集。
4、根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,所述步骤3包括将步骤2中的得到的数据集中的原始数据进行文本预处理,将关键字的序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络。最后进行整合并分类,具体包括以下步骤:
步骤3.1:使用词转词向量模型Word2Vec将将训练集与测试集中的每条智能合约(x1,x2,xi...,xn)训练成智能合约的词嵌入表示(v1,v2,vi...,vn),其中xi为训练集和测试集中的每条数据中的词,i为索引,vi表示为在智能合约中第i个词向量。同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量a;
步骤3.2:将根据步骤3.1得到的序列化向量a作为长短期记忆网络的输入,输入到神经网络中,将得到的隐藏状态向量t与当前智能合约中的每个词向量vi进行连接,先经过一层卷积运算,再经过一层池化运算后,放入一个维度为d的长短期记忆神经网络中,将生成的n个隐藏状态向量表示为矩阵H;
步骤3.3:注意力机制应用于根据步骤3.2得到的矩阵H以获得注意力向量α,用于生成Hi的加权表示。通过使用加权表示作为关键字的智能合约表示向量s。这使得注意力机制能够关注关键字的智能合约中的相关片段。生成s的整体注意机制概括为:
M=tanh(H,Wh) (2)
α=softmax(MT,Wb) (3)
其中,Wh和Wb是在训练过程中需要学习的参数矩阵,MT和αT是矩阵M和α的转置矩阵;
步骤3.4:将智能合约表示向量s放入长短期记忆神经网络中进行整合与分类。由于智能合约分类问题是一个多分类问题,所以使用激活函数softmax函数将长短期记忆神经网络输出的结果映射到0,1之间,映射函数如公式(5)所示:
其中,Smi表示为第i类智能合约映射的结果;i,j表示为K类标签中的索引;
步骤3.5:在步骤3.4之后,将softmax函数映射的结果与one-hot标签向量进行比对,若不相同,则通过反向传播算法对模型的参数进行调整;若相同,则参数不变,经过迭代后训练出最优参数,定义的损失函数如公式(6)所示:
实施例1
下面是应用本发明具体实施例:
使用DApps去中心化应用程序的数据集文档和以太坊网站的智能合约的数据集文档来验证本方法。DApps去中心化应用程序的数据集文档包括2100条智能合约代码、标签及对应的关键字。以太坊网站的智能合约的数据集文档包含5000条智能合约代码。
执行步骤1,收集DApps去中心化应用程序的数据集文档与以太坊网站的智能合约的数据集文档,将带有标签的DApps去中心化应用程序的数据集文档中的标签y分为9类,分别为:1分、2分、3分、4分、5分、6分、7分、8分,9分,分别对应游戏类、彩票类、金融类、娱乐类、工具类、安全类、货币类、信息管理类、健康类。并使用one-hot工具将标签转化为one-hot向量;
执行步骤2,使用向量化文本工具Tokenizer将收集的DApps去中心化应用程序中的智能合约智能合约和以太坊网站的智能合约转化为序列化的向量。将DApps去中心化应用程序的序列化向量及one-hot标签向量分别作为模型的输入与输出,放入长短期记忆神经网络中进行训练,训练完成后将以太坊网站的序列化向量作为输入,输入到训练好的长短期记忆神经网络中进行标签的预测。将以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约。最后将两个数据集文档合成为一个数据集文档,并按照4:1的比例将数据集中的原始数据分为训练集与测试集;
执行步骤3,使用词转词向量模型Word2Vec将将训练集与测试集中的每条智能合约训练成智能合约的词嵌入表示,同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量。将序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络。最后对该整体的基于关键字特征提取和注意力的智能合约分类模型进行训练,不断修改参数直至分类效果达到最优。其中模型参数如表1所示:
表1模型参数设置
在步骤3之后,模型参数基本固定后,用测试集对模型进行评价。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (4)
1.一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,包括以下步骤:
步骤1:收集DApps去中心化应用程序的智能合约及标签和关键字作为数据集文档,再收集以太坊网站的智能合约作为数据集文档。将在DApps去中心化应用程序收集到的智能合约和标签按照用途定义为九类,并将标签集转化为one-hot向量;
步骤2:对收集的DApps去中心化应用程序中的智能合约和以太坊网站中的智能合约进行文本预处理:使用向量化文本工具Tokenizer将智能合约转化为序列化的向量。将DApps去中心化应用程序中的智能合约转化后的序列化向量作为输入,将转化为one-hot向量的标签集作为输出,利用长短期记忆神经网络中进行训练,训练完成后将以太坊网站的智能合约转化后的序列化向量作为输入,输入到训练完成的长短期记忆神经网络中,进行标签的预测。而后根据以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约。最后将DApps去中心化应用程序的智能合约及标签和关键字的数据集文档与以太坊网站的智能合约及标签和关键字的数据集文档合成为一个统一包含智能合约及标签和关键字的数据集文档,并按照数据集中数据的分布将数据分为训练集与测试集。
步骤3:对训练集与测试集进行文本预处理:使用词转词向量模型Word2Vec将将训练集与测试集中的智能合约训练成智能合约的词嵌入表示,同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量。将序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络,最后对该整体的神经网络模型进行训练,不断修改参数直至分类效果达到最优。
2.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,步骤1中对DApps去中心化应用程序收集到的智能合约加标签的过程为:将标签分为K类,在这里K的值为9,分别为:1分、2分、3分、4分、5分、6分、7分、8分,9分,分别对应游戏类、彩票类、金融类、娱乐类、工具类、安全类、货币类、信息管理类、健康类。并使用one-hot工具将标签转化为one-hot向量。
3.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,所述步骤2,具体包括以下子步骤:
步骤2.1:使用向量化文本工具Tokenizer将收集的DApps去中心化应用程序中的智能合约智能合约和以太坊网站的智能合约转化为序列化的向量;
步骤2.2:将根据步骤2.1中得到的DApps去中心化应用程序的序列化向量(w1,w2,wi...,wn)及one-hot标签向量分别作为模型的输入与输出,放入长短期记忆神经网络中进行训练,并在每个时间步长t处得到相应的隐藏状态ht,如下式所示。
ht=LSTM(wt) (1)
其中,LSTM表示长短期记忆神经网络。最后使用激活函数softmax函数将长短期记忆神经网络输出的结果映射到0,1之间,将激活函数softmax函数映射的结果与DApps去中心化应用程序标签的one-hot标签向量进行比对,经过迭代后训练出最优参数。
训练完成后将以太坊网站的序列化向量作为输入,输入到训练好的长短期记忆神经网络中进行标签的预测;
步骤2.3:将根据步骤2.2得到的以太坊网站中的每条智能合约预测的标签与DApps去中心化应用程序的智能合约中同一标签中的每条智能合约利用文本对比工具difflib进行文本内容差异对比,选取相似度最高的智能合约,将该DApps去中心化应用程序的智能合约的关键字推荐给以太网网站中与之对应的智能合约;
步骤2.4:将DApps去中心化应用程序的智能合约及标签和关键字的数据集文档与以太坊网站的智能合约及标签和关键字的数据集文档合成为一个统一包含智能合约及标签和关键字的数据集文档,并按照4:1的比例将数据集中的原始数据分为训练集与测试集。
4.根据权利要求1所述的一种基于关键字特征提取和注意力的智能合约分类方法,其特征在于,所述步骤3包括将步骤2中的得到的数据集中的原始数据进行文本预处理,将关键字的序列化向量放入长短期记忆网络,将最后隐藏状态向量与智能合约中每个词向量进行连接。将连接后的向量经过一层卷积运算一层池化运算后,将运算后的向量放入长短期记忆神经网络,将最后的隐藏状态向量与通过注意力生成的向量相乘。将得到的句子表示放入长短期记忆神经网络。最后进行整合并分类,具体包括以下步骤:
步骤3.1:使用词转词向量模型Word2Vec将将训练集与测试集中的每条智能合约(x1,x2,xi...,xn)训练成智能合约的词嵌入表示(v1,v2,vi...,vn),其中xi为训练集和测试集中的每条数据中的词,i为索引,vi表示为在智能合约中第i个词向量。同时使用向量化文本工具Tokenizer将训练集与测试集中关键字转化为序列化向量a;
步骤3.2:将根据步骤3.1得到的序列化向量a作为长短期记忆网络的输入,输入到神经网络中,将得到的隐藏状态向量t与当前智能合约中的每个词向量vi进行连接,先经过一层卷积运算,再经过一层池化运算后,放入一个维度为d的长短期记忆神经网络中,将生成的n个隐藏状态向量表示为矩阵H;
步骤3.3:注意力机制应用于根据步骤3.2得到的矩阵H以获得注意力向量α,用于生成Hi的加权表示。通过使用加权表示作为关键字的智能合约表示向量s。这使得注意力机制能够关注关键字的智能合约中的相关片段。生成s的整体注意机制概括为:
M=tanh(H,Wh) (2)
α=softmax(MT,Wb) (3)
其中,Wh和Wb是在训练过程中需要学习的参数矩阵,MT和αT是矩阵M和α的转置矩阵;
步骤3.4:将智能合约表示向量s放入长短期记忆神经网络中进行整合与分类。由于智能合约分类问题是一个多分类问题,所以使用激活函数softmax函数将长短期记忆神经网络输出的结果映射到0,1之间,映射函数如公式(5)所示:
其中,Smi表示为第i类智能合约映射的结果;i,j表示为K类标签中的索引;
步骤3.5:在步骤3.4之后,将softmax函数映射的结果与one-hot标签向量进行比对,若不相同,则通过反向传播算法对模型的参数进行调整;若相同,则参数不变,经过迭代后训练出最优参数,定义的损失函数如公式(6)所示:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957449.XA CN110782346B (zh) | 2019-10-09 | 2019-10-09 | 一种基于关键字特征提取和注意力的智能合约分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957449.XA CN110782346B (zh) | 2019-10-09 | 2019-10-09 | 一种基于关键字特征提取和注意力的智能合约分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110782346A true CN110782346A (zh) | 2020-02-11 |
CN110782346B CN110782346B (zh) | 2022-07-08 |
Family
ID=69384929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910957449.XA Active CN110782346B (zh) | 2019-10-09 | 2019-10-09 | 一种基于关键字特征提取和注意力的智能合约分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110782346B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460454A (zh) * | 2020-03-13 | 2020-07-28 | 中国科学院计算技术研究所 | 一种基于栈指令序列的智能合约相似度检索方法及系统 |
CN113032001A (zh) * | 2021-03-26 | 2021-06-25 | 中山大学 | 一种智能合约分类方法及装置 |
CN113268732A (zh) * | 2021-04-19 | 2021-08-17 | 中国人民解放军战略支援部队信息工程大学 | Solidity智能合约相似性检测方法及系统 |
CN113486915A (zh) * | 2021-04-26 | 2021-10-08 | 深圳前海移联科技有限公司 | 一种基于多平台的智能合约分类方法、系统及电子设备 |
CN113783852A (zh) * | 2021-08-29 | 2021-12-10 | 复旦大学 | 一种基于神经网络的智能合约庞氏骗局检测算法 |
CN114331396A (zh) * | 2021-12-28 | 2022-04-12 | 中国科学技术大学 | 面向以太坊智能合约的协议安全属性自动提取方法及系统 |
CN117951747A (zh) * | 2024-03-26 | 2024-04-30 | 成都飞机工业(集团)有限责任公司 | 一种自适应脱敏方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778882A (zh) * | 2016-12-23 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种基于前馈神经网络的智能合约自动分类方法 |
US20190122258A1 (en) * | 2017-10-23 | 2019-04-25 | Adbank Inc. | Detection system for identifying abuse and fraud using artificial intelligence across a peer-to-peer distributed content or payment networks |
CN109977682A (zh) * | 2019-04-01 | 2019-07-05 | 中山大学 | 一种基于深度学习的区块链智能合约漏洞检测方法及装置 |
-
2019
- 2019-10-09 CN CN201910957449.XA patent/CN110782346B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778882A (zh) * | 2016-12-23 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种基于前馈神经网络的智能合约自动分类方法 |
US20190122258A1 (en) * | 2017-10-23 | 2019-04-25 | Adbank Inc. | Detection system for identifying abuse and fraud using artificial intelligence across a peer-to-peer distributed content or payment networks |
CN109977682A (zh) * | 2019-04-01 | 2019-07-05 | 中山大学 | 一种基于深度学习的区块链智能合约漏洞检测方法及装置 |
Non-Patent Citations (4)
Title |
---|
GANG TIAN 等: "Smart Contract Classification With a Bi-LSTM Based Approach", 《IEEE ACCESS》 * |
吴雨芯 等: "基于层级注意力机制与双向长短期记忆神经网络的智能合约自动分类模型", 《HTTP://KNS.CNKI.NET/KCMS/DETAIL/51.1307.TP.20190929.1405.014.HTML》 * |
高飞: "基于区块链技术的智能合约自动分类系统设计", 《高原科学研究》 * |
黄步添 等: "基于语义嵌入模型与交易信息的智能合约自动分类系统", 《自动化学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460454A (zh) * | 2020-03-13 | 2020-07-28 | 中国科学院计算技术研究所 | 一种基于栈指令序列的智能合约相似度检索方法及系统 |
CN113032001A (zh) * | 2021-03-26 | 2021-06-25 | 中山大学 | 一种智能合约分类方法及装置 |
CN113032001B (zh) * | 2021-03-26 | 2022-02-08 | 中山大学 | 一种智能合约分类方法及装置 |
CN113268732A (zh) * | 2021-04-19 | 2021-08-17 | 中国人民解放军战略支援部队信息工程大学 | Solidity智能合约相似性检测方法及系统 |
CN113268732B (zh) * | 2021-04-19 | 2022-12-20 | 中国人民解放军战略支援部队信息工程大学 | Solidity智能合约相似性检测方法及系统 |
CN113486915A (zh) * | 2021-04-26 | 2021-10-08 | 深圳前海移联科技有限公司 | 一种基于多平台的智能合约分类方法、系统及电子设备 |
CN113783852A (zh) * | 2021-08-29 | 2021-12-10 | 复旦大学 | 一种基于神经网络的智能合约庞氏骗局检测算法 |
CN113783852B (zh) * | 2021-08-29 | 2022-12-20 | 复旦大学 | 一种基于神经网络的智能合约庞氏骗局检测算法 |
CN114331396A (zh) * | 2021-12-28 | 2022-04-12 | 中国科学技术大学 | 面向以太坊智能合约的协议安全属性自动提取方法及系统 |
CN117951747A (zh) * | 2024-03-26 | 2024-04-30 | 成都飞机工业(集团)有限责任公司 | 一种自适应脱敏方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110782346B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110782346B (zh) | 一种基于关键字特征提取和注意力的智能合约分类方法 | |
Tian et al. | Deepcluster: A general clustering framework based on deep learning | |
US9852177B1 (en) | System and method for generating automated response to an input query received from a user in a human-machine interaction environment | |
Lin et al. | Optimizing ranking measures for compact binary code learning | |
Aziguli et al. | A robust text classifier based on denoising deep neural network in the analysis of big data | |
Lu et al. | Adversarial multi-label variational hashing | |
Bansal et al. | An Evolving Hybrid Deep Learning Framework for Legal Document Classification. | |
CN115687610A (zh) | 文本意图分类模型训练方法、识别方法、装置、电子设备及存储介质 | |
CN112214570A (zh) | 一种基于对抗投影学习哈希的跨模态检索方法及装置 | |
Abir et al. | Bangla handwritten character recognition with multilayer convolutional neural network | |
Tong et al. | A Multimodel‐Based Deep Learning Framework for Short Text Multiclass Classification with the Imbalanced and Extremely Small Data Set | |
CN114462039A (zh) | 一种基于Transformer结构的安卓恶意软件检测方法 | |
Dinov et al. | Black box machine-learning methods: Neural networks and support vector machines | |
CN116739787B (zh) | 基于人工智能的交易推荐方法及系统 | |
CN111611395A (zh) | 一种实体关系的识别方法及装置 | |
CN116561314B (zh) | 基于自适应阈值选择自注意力的文本分类方法 | |
CN113204975A (zh) | 一种基于远程监督的敏感文风识别方法 | |
CN117333146A (zh) | 基于人工智能的人力资源管理系统及方法 | |
Yang et al. | Multi-Label Learning Based on Transfer Learning and Label Correlation. | |
using Relevance | A Meta-heuristic optimization approach for content based image retrieval using relevance feedback method | |
Han et al. | Meta-learning siamese network for few-shot text classification | |
Liu et al. | Powering fine-tuning: learning compatible and class-sensitive representations for domain adaption few-shot relation extraction | |
Zhang et al. | Visual-guided attentive attributes embedding for zero-shot learning | |
Kumar et al. | A Recommendation System & Their Performance Metrics using several ML Algorithms | |
Shen et al. | Software crowdsourcing task pricing based on topic model analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |