自2012年Google首次提出知识图谱以来,知识图谱得到了业界和学术界的广泛关注,并在信息检索、在线推荐、问答等领域得到了广泛的应用。然而,传统的知识图谱集中构建面临着许多挑战,如费时费力、易被篡改或篡改、缺乏监督等。因此,本文提出了一种新的基于众包的分散式知识图谱构建方法,并利用区块链驱动的智能合约实现众包的业务逻辑,以保证其透明性、完整性和可审计性。在此基础上,将分散知识图谱应用于深度推荐系统,并通过实例验证了系统的有效性。本文旨在为构造知识图提供一种新的分散方法,为知识图谱的未来研究和实际应用提供参考和指导。
1 引言知识图谱作为一种有向标记图,对实体的结构化信息及其丰富的关系进行了系统的编码,从而能够更好地提取对象之间潜在的知识层次关系。近年来,Google知识图谱、DBpedia、Freebase等多种开源或商用知识图谱被提出,并在推荐系统、语义检索、问答、虚拟助手等领域得到了成功的应用。
然而,知识图谱的构建面临诸多挑战。首先,构建一个知识图谱是非常费力和耗时的,因为它通常涉及到知识边缘提取、知识融合、知识验证,知识推理、知识更新等,因此只有谷歌、微软等行业巨头有足够的数据和资源来构建(如谷歌知识图谱、微软Satori、Facebook实体图谱),中小企业很难构建自己的领域知识图谱。其次,构建过程通常是集中的。由于数据被一些巨人垄断,知识图谱容易受到操纵、攻击和攻击。一个臭名昭著的例子是,2018年9月,一名匿名黑客利用系统漏洞获得了近5000万个Facebook用户帐户的访问权限。此外,垄断者还可以对知识图谱进行恶意修改。第三,从知识图谱求精的角度来看,由于缺乏公众的监督和监督,大规模知识图谱很难在完整性(在图中添加缺失的知识)和正确性(在给定的图中发现错误或冲突的信息)之间寻求取舍。寻求一种新的知识图谱构造方法是非常有挑战性但意义重大的。
我们认为众包和新兴的区块链技术是协作、分散式知识图谱构建的新方法,特别是由于区块链具有分散性、不可变性、抗篡改性、匿名性和可审计性等特性。作为一个分散的基础设施,区块链被认为是现有集中式共享数据存储的替代品[2 ]。区块链的发展复兴了所谓的智能合约,智能合约是一种安全的、不可阻挡的计算机程序,代表了在区块链网络上自动执行和执行的协议。众包是一种向公众传播问题的实践,是一种公开征集帮助解决问题的贡献。众包本质上也是一种分布式的问题解决和生产模式。因此,本文提出了一种新的基于众包的分散式知识图谱构建方法,该方法通过区块链驱动的智能合约实现,以保证构建过程的透明性、完整性和可审计性。然后,将分散知识图谱应用于一个深度推荐系统的案例分析,验证其有效性。
本文的主要贡献如下。
1)据我们所知,这是将众包和区块链应用于领域知识图谱构建的首次尝试,旨在实现知识图谱构建的分散化;
2)利用区块链驱动的智能合约对众包的所有业务逻辑进行编码,并能自动执行和执行,因此没有人能够操纵知识图谱的构建过程;
3)在我们的案例研究中,我们使用分散式知识图谱作为一个深度推荐系统来实现工作任务的员工推荐。相信本文的工作将为今后知识图谱的研究和实际应用提供指导和参考。
本文的其余部分安排如下。在第二节中,我们回顾了知识图谱构建、众包、区块链驱动的智能合约和基于知识图谱的深度推荐系统相关工作。第三节介绍了基于分散知识图谱的深度推荐系统,包括框架模型、智能合约驱动的众包、知识图谱嵌入和深度推荐系统模型。在第四节中,进行了案例研究,以验证该系统的有效性。第五节对论文进行总结,并探讨未来的发展趋势。
2 相关工作A.传统知识图谱构建方法
术语知识图谱是Google在2012年提出的[1],它通过从各种来源收集信息来提高搜索引擎的性能。知识图谱表示实体的相互关联的描述的集合,例如现实世界的对象、事件和抽象概念。如图1所示,在知识图谱中,实体对应于节点,关系对应于有向边。两个实体和一个关系构成一个三元组(例如,(Barack Obama、BornIn、Honolulu)),多个三元组构成一个知识图谱[3]、[4](根据[1],Googlezh致死图谱包含180亿条语句,约5.7亿个实体,模式包括1500个实体类型和35000个关系类型)。知识图谱可分为两类,即全局知识图谱和领域知识图谱[5]。前者涵盖了整个世界的知识,如DBpedia和YAGO[6],而后者则侧重于特定的领域,如GeoNames(用于地理信息)和天眼查(用于企业信息)。
如图2所示,传统的知识图谱构建过程一般包括以下4个步骤[7]:
1)知识提取。它旨在从结构化、半结构化或非结构化数据源中提取实体、关系和实体属性。命名实体识别(NER)[8]和关系提取[9]通常用于此步骤。
2)知识融合。知识抽取的结果可能包含许多冗余或错误的信息,因此需要数据清理和集成(统称为知识融合)。常见的技术包括链接推理[10]和共指解析[11]。
3)知识处理。为了获得一个网络化、结构化的知识图,需要进行本体构建、知识推理和质量评价等知识处理[12]。它们将以正式的方式对实体及其关系给出明确的定义。
4)知识更新。更新有两种方式:全面更新和增量更新。全面更新意味着从头开始重新构建建设管道,增量更新正在为现有的图表添加新的知识。全面更新将消耗大量资源,而增量更新通常需要手动干预[13]。
显然,知识图的构建是非常繁琐和耗时的。更糟糕的是,许多知识图谱是以一种集中的方式构建的,并由单个行业巨头(如谷歌或微软)垄断。集中式知识图谱的构建带来了许多严重的问题,如易受黑客攻击、篡改甚至恶意篡改。因此,迫切需要一种新的分散式知识图谱构造方法。
B. 众包
众包(crowdsourcing)一词由J.Howe于2006年提出[14],是指一种新的基于网络的商业模式,通过在一个由个人组成的分布式网络上公开征集提案来利用创造性的解决方案[15]。维基百科,Linux,和Yahoo!Answers等,都可以看作是众包的显著例子。最常见的众包过程是,一个需求者在网上发布一个问题,然后大量的个人提供问题的解决方案,而获胜的想法将得到一些奖励。众包的核心理念在于,它能够以分散的方式促进不同意见的交流,彼此独立。因此,针对集中式知识图谱所面临的问题,我们提出了利用众包来构造分散式知识图谱。
C.区块链驱动的智能合约
区块链是比特币和以太坊等新兴加密货币的基础技术。它可以定义为一个去中心化的、分布式的账本,它使用按时间顺序排列的、加密的和链接的块来存储对等(P2P)网络中可验证的和同步的数据(事务或状态)[16],[17]。由于区块链具有分散性、透明性、不变性、可审计性和成本节约等良好特性,有望颠覆金融、管理、医疗、物联网等多个行业。根据访问权限的不同类型,区块链可分为三类:公链、私链和联盟链。
智能合约是部署在区块链上并由区块链保护的计算机程序[18],[19]。它们通常包括合约创建者之间以业务逻辑形式达成的协议。智能合约是自动执行和可执行的[20],这意味着一旦满足预设条件,合约条款将自动执行。仲裁员或第三方不得影响或操纵智能合同的执行。区块链驱动的智能合约还确保,对于网络中的每个节点,当它们执行相同的合约时,它们将获得相同的结果。因此,智能合约具有高度的可靠性和可用性,是各种分散式应用程序(dapp)的理想工具。目前,有几个区块链平台支持智能合约。例如,以太坊通过称为以太坊虚拟机(EVM)的图灵完整虚拟机支持高级和定制的智能合约。本文提出利用智能合约来实现众包的业务逻辑,从而实现知识图谱的分布式构建。
D. 基于知识图谱的深度学习推荐系统
近年来,基于深度学习的推荐系统(简称deep recommender systems)已被证明比传统方法(如协作过滤、基于内容和混合推荐系统)的性能有所提高[21]-[23]。这是因为深度学习可以有效地捕获非线性或非平凡的用户项关系,并使更复杂的抽象编码成为更高层的数据表示[24]。大多数网络模型,如自动编码器(AE)、卷积神经网络(CNN)、递归神经网络(RNN)和深度强化学习,都是针对不同的推荐场景开发的。例如,Sedhain等人提出了一种新的自动编码器框架称为AutoRec,它具有代表性和计算优势,超过包括协同过滤[25]等现有的方法;Catherine等人提出了一种改进的CNN模型,名为TransNets,学习将用户和项目的潜在表示转化Pair-wise review,从而在测试时可以生成目标评审的近似表示并用于预测(26);卢等人提出了一种协同进化的推荐模型,该模型通过优化矩阵分解和基于注意力的GRU网络,从评分和客户评论中共同学习用户和项目信息[27]。
在当前的深度学习推荐系统中,基于知识的推荐系统(尤其是基于知识图谱的推荐系统)不断涌现,引起了学术界的广泛关注。这是因为知识图谱可以提高推荐的准确性和质量,并减轻与传统推荐技术相关的其他缺点,如冷启动和数据稀疏问题[29]。例如,Wang等人提出了一种利用新闻推荐中知识图表示的卷积神经网络(KCNN)。结果表明,KCNN在推荐的几种基于深度学习的最新方法上取得了显著的进步[30]。Lin等人提出了一种基于异质知识的短时音乐推荐注意神经网络模型。利用从网易云音乐中提取的6种实体和8种关系的知识图谱进行实体表示。实验结果表明,该模型在真实数据集上的性能优于强基线,能够向特定用户推荐不受欢迎的歌曲[31]。Zhang等人提出了一种混合推荐系统,称为协作知识库嵌入(CKE),它利用知识图谱中的异构结构信息来提高推荐质量[32]。在这些基于知识边缘图谱的深度学习推荐系统中,构造精确的知识图谱是关键。本文提出了一种基于区块链智能合约的知识图谱分散构建方法,并将知识图谱作为深层神经网络的输入完成推荐任务。
3 分布式知识图谱上的深度学习推荐A. 架构模型
基于分散知识图谱的深度推荐系统框架模型如图3所示。整个系统可分为链上部分和链下部分。链上部分通过众包构建领域知识图谱,由区块链驱动的智能合约实现;链下部分使用分散的知识图谱进行推荐。
整个系统的工作流程如下:在企业内部的私链上记录特定领域的动态数据和静态属性。由于区块链的透明性,所有信息都对每个参与者开放。然后,可以相应地构建一个粗粒度的领域知识图谱(我们称之为基本图)。为了不断完善基本图,通过智能合约启动众包投票,从而生成更细粒度的知识图(我们称之为更新图)。
对于链下部分,采用知识图谱嵌入的方法为更新后的图谱的实体和关系构造低维表示向量,然后采用深层神经网络进行推荐(本研究的目的是为新的工作任务推荐合适的员工)。推荐结果反馈给企业领导,企业领导根据推荐结果分配任务。注意,推荐结果记录在区块链上,便于跟踪,避免篡改。领导的最终任务和新的动态数据也记录在区块链上,作为下一轮知识图谱更新的基础。
B. 智能合约驱动的众包
如前所述,为了实现去中心化,我们建议使用众包来构建知识图谱。具体地说,众包投票[33]被用来获得知识图的三元组。每个参与者可以提出一个三元组的提案,然后剩下的参与者将对此提案进行投票。如果建议通过,建议的三元组将记录在知识图谱中。也需要奖励和惩罚来奖励那些做出贡献的人,或者惩罚那些行为不当的人。众包投票的整个过程被写入区块链驱动的智能合约中,该合约可以自动执行。众包的细节将在第四节B中介绍。
C. 知识图谱嵌入
知识图谱通常包含大量的实体和关系。知识图谱嵌入是指将实体和关系嵌入到一个低维语义向量空间中,同时保留一定的信息。近年来,人们提出了几种基于翻译的知识图谱嵌入方法,如TransE[34]、TransH[35]和TransR[36]等。
在典型的三元组(h,r,t)中,h表示头实体,t表示尾实体,r表示关系。实体和关系嵌入的一般思想是将关系r看作是从头实体h到尾实体t的转换,对于TransE和TransH,实体和关系的嵌入都放在同一语义空间Rk 。然而,这是不合理的,因为一个实体通常有多个方面,而各种关系可能集中在不同的方面。TransR通过将实体和关系映射到不同的空间(即实体空间和多个关系空间)来解决这个问题,然后在相应的关系空间中执行转换[36]。在这里,我们选择TransR,因为它可以更好地保存知识图的结构信息。下面,我们简单介绍一下TransR。
如图4所示,在TransR中,对于每个三元组(h,r,t),实体嵌入被设置为h,t∈Rk,关系嵌入被设置为r∈Rd(k不一定等于d)。对于每个关系r,引入一个投影矩阵Mr∈Rkxd,将实体嵌入从实体空间映射到相应的关系空间。特定于关系的投影可以使保持关系的头/尾实体与不保持关系的头/尾实体既近又远。
实体的投影向量定义如下:
score function定义如下:
在实际的应用中,应加强一些约束。
然后使用以下基于边距的score函数进行训练:
其中γ是margin,S和S′是正确三元组和错误三元组的集合。训练完成后,我们可以得到给定知识图中实体和关系的矢量表示
D. 链下深度学习推荐系统
如图5所示,链下深度推荐系统以新的工作任务tj和员工i以前的工作任务作为输入,输出员工承担该任务的概率。在这里,我们采用前面提到的知识感知进化神经网络(KCNN)[30],它可以通过融合任务的词级和知识级表示来生成任务的嵌入向量[37]。然后,为了得到员工的嵌入向量,采用注意机制动态地将员工先前的任务相对于新任务进行聚合。最后,将新任务的嵌入e(tj)和员工的嵌入e(i)输入到一个深度神经网络中,预测员工承担任务的概率。
对于长度为n的任务t,其原始输入序列可以表示为t = W1:n = [w1,w2,...,wn]。t的表示向量可以表示为单词嵌入、实体嵌入和上下文嵌入的连接:
其中w1:n=[w1,w2,...,wn]是t的嵌入矩阵,可以从大型语料库中预先学习或随机初始化;e1:n=[e1,e2,...,en]是使用知识图嵌入对t中的每个单词进行的实体嵌入;是实体的上下文嵌入,计算为上下文实体的平均值:
然而,这种简单的连接策略破坏了单词和相关实体之间的连接,并且不知道它们的对齐方式。因此,参考文献[30]提出了多通道和词实体对齐的KCNN,用于组合词语义和知识信息,9并介绍了转换后的实体嵌入和转换后的上下文嵌入,具体如下:
其中g是转换函数。然后将任务t的嵌入矩阵重写为:
之后,应用多个窗口大小为 l 的滤波器h来提取任务中的局部模式。然后在输出特性映射上使用max-over-time池操作来选择最大的特性。最后,将所有特征串接,得到任务的嵌入向量:
其中b是偏差,m是滤波器的数量。
利用上述方法,我们可以得到新任务和员工先前任务的嵌入表示。为了获得员工对新任务的嵌入表示,采用注意机制自动将新任务与员工之前的每一项任务进行匹配,并用不同的权重进行聚合:
其中H是注意模块,Ni是员工以前的任务数。最后,将e(tj)和e(i)输入到一个深度神经网络中,计算出员工i承担任务的概率tj。
4 案例研究A. 任务描述和数据集
为了验证基于分布知识图谱的深度推荐系统的有效性,我们在一家拥有300多名员工的中国企业中进行了案例研究。具体来说,对于新的工作任务,我们验证系统是否可以为该任务推荐合适的员工。然后将推荐结果反馈给企业领导,作为他们分配工作任务的参考。最后,通过自我验证和外部验证对推荐结果进行了验证。
通过智能合约的众包投票,我们不仅得到了一个名为员工技能知识图谱的领域知识图谱,还得到了一个子图,记录了每个员工擅长的技能。此外,我们还从企业的历史数据库中获取员工以前的任务和任务描述。在知识边缘图谱嵌入和知识感知卷积神经网络(KCNN)的基础上,得到了任务的嵌入e(tj)和员工的嵌入e(i)。经过训练,对于给定的新任务,深度推荐系统将输出员工承担任务的概率。
如第3节A所述,为了发起众包投票,特定域的动态数据和静态属性应记录在区块链上。在我们的案例研究中,动态数据是员工的工作报告。我们企业要求员工在规定的时间内提交日常工作报告,报告系统建立在中国最流行的社交媒体平台微信上。表1显示了包含与员工技能相关的所有属性的静态属性,例如教育背景、知识框架、技能水平和项目成就等。共有36000份工作报告记录,在企业内部的私有区块链上收集并记录了400多条员工静态属性记录,用于知识图谱的构建。值得注意的是,该系统依靠新的动态工作报告来更新基础知识图谱,并且这些数据也被及时地检索并记录在私有区块链上,以确保及时性。
B. 众包投票策略
在这一部分中,我们将介绍用于知识图谱构建和更新的众包投票方案,该方案由授权机制、投票规则和激励机制三部分组成。投票规则和激励机制均以智能合约形式编写并部署在区块链上。
对于授权机制,在我们的系统中,很多员工被企业授权提议和验证投票,前者我们称之为提议者,后者我们称之为投票者。这些员工都是从事高科技研发(R&D)工作的,所以他们对相关领域有专门的知识。与传统的集中式系统发布的众包任务不同,提案人主要发起提案,选民积极收集并验证提案。提议者和选民都是众所周知的,对任何不当行为都负有责任。企业为所有参与者保留一定数量的代币作为存款。如果出现不当行为,他们的存款将被罚款。
对于投票规则,有两种投票建议,即branching和lighting。每个提议者都可以以三元组的形式发起投票。分支意味着建立新的点(实体)或连接新的边(关系),例如“区块链-应用到-加密货币”。照明意味着将个人技能映射到一个特定的点,并用一定的权重来判断熟练程度,例如“Alice–5–Blockchain”,其中5是表示员工是区块链专家的权重。投票系统还可以通过发起新的提案来消除一些不一致或错位的节点或边,例如“区块链不属于机器学习”来实现知识图谱的修正。
然后,所有投票者都可以在预定的到期日(到期日)之前有选择地参与验证投票。验证只需选择同意或不同意即可。提案的有效性由智能合约中预先确定的规则来管理。我们简单介绍如下规则:只有满足n≥m̄,β≥ᾱ,其中n为投票者数,m̄为所需投票者数,β为同意率,ᾱ为所需同意率的条件,方案才被认定为有效。否则,提案将被视为无效,不能记录。此外,为了避免重复无效提案,我们还设置了阈值m和α,以确定当存在n<m或β<α时提案是不诚实的。只有满足上述预设规则的方案才能被记录到领域知识图谱中,其中分支方案进入通用图,照明方案进入子图。
在激励机制上,众包投票需要员工充分有效的参与,以保持结果的可靠性和持续性。我们试图通过以下两种方式提供适当的激励来实现这一目的。首先,企业授权员工提出并验证投票,员工对自己的行为负责。其次,他们提交提案和投票的直接动机是在企业内部发行的奖励代币。由于他们只有积极参与才能获得奖励,因此他们将加入旨在赚取代币的系统。
在本文中,我们简单地为那些提议者和投票者设计了一个奖励机制,如图6所示。每个提案都有预先确定的奖励r,提案人和选民将分享这些诚实提案的奖励。在诚实的提议中,这些有效的提议将导致对提议者的rp代币的固定奖励,并将剩余的r-rp代币的平均分配给同意的投票者;而那些无效的提议不能为提议者产生任何奖励,并且如果n≥m̄和β<α;对于n<m的情况,没有一个提议者或投票者能够赢得奖励。对于不诚实的提议,提议者将被扣留一些代币,在当前系统中设置为w。这些规则也写在智能合约中。
在企业内部,代币不仅是一种数字货币,更是一种员工绩效的利息凭证,可以兑换成货币收入或作为晋升参考。事实上,如果员工偏离了预期行为,他们将受到相应的惩罚,例如暂时或永久撤销授权,或不给予他们所获得的代币。此外,由于知识图谱用于实现新任务的员工推荐,自然会带来另一种间接激励:积极参与有助于构建代表员工专业技能的子图,从而使任务与员工更好地匹配,通过这种更好的匹配,可以提高员工的实际工作绩效。
预设的投票规则保证了系统的效率,而授权机制和参与者的理性则使系统有效。根据众投票方案,经过5个月的运行和23100次投票,我们构建了一个包含3015个实体和437个关系的分散域知识图谱。分散知识图谱的一部分如图7和图8所示。图7是表示员工技能领域知识图谱的通用图,图8是表示员工技能树的子图。一般图中的实体和关系用于知识图的嵌入以获得它们的向量表示,图9显示了使用TransR的嵌入结果。子图将用作验证推荐结果的参考。
C. 案例研究和验证
在使用历史数据和员工技能知识图谱进行训练后,我们的链下推荐系统被用来推荐适合新工作任务的员工。由于没有可供比较的基线,我们在此提供一个案例研究来说明系统的有效性。下面是一个新的工作任务和任务描述,目标是推荐合适的候选员工来完成这项任务。然后,对推荐结果进行自我验证和外部验证。
工作任务:基于区块链技术的电子证据公开见证。
任务描述:在区块链上记录电子证据(如电子发票),确保存款安全,提高追溯效率。具体来说,电子证据通过哈希运算进行数字消解,并在给定时间戳后存储在链上。当电子证据同步到链上所有节点后,采用非对称加密实现电子证据的加密传输,并在认证过程中通过比较哈希值验证数据完整性,从而充分保证电子证据的真实性和安全性。
将任务和员工的嵌入表示输入到链下深度推荐系统中,并根据输出概率推荐5名员工。结果反馈给企业领导参考。然后我们对推荐结果进行自我验证和外部验证。
自我验证是指利用企业内部的私链,对员工的历史工作报告和之前分配的工作任务进行跟踪。研究发现,在这些推荐员工的历史工作报告中,出现了许多与区块链技术相关的技术词汇,如P2P网络、时间戳、非对称加密、一致性算法等。子图中的技能树还表明候选人具有相关技能。此外,我们发现五位候选人中有四位曾承担过与区块链相关的任务或项目,这也说明推荐结果是合理的。
外部验证是指企业领导最终采用推荐结果的比率。在这种情况下,五个被推荐的员工中有四个最终被分配去承担给定的任务(剩下的一个没有被分配任务的候选人是因为他的劳动时间限制)。
推荐系统已经运行了3个月,通过它推荐了85个工作任务的员工。统计显示,在所有被推荐的员工中,61%的人被分配承担相应的工作任务。我们还注意到,53%的未分配任务的人是由于工时或其他不可抗力原因。
由于推荐结果反馈给企业领导作为决策参考,我们对企业领导进行了系统有用性问卷调查。问卷主要包括三项内容:
1)推荐结果是否有助于任务分配的决策?
2) 应聘者的技能是否符合任务要求?
3) 推荐结果能节省你的决策时间吗?
每项满分为5分,超过12分为合格。共有24名企业中层领导参加问卷调查。结果表明,其中20人(83.3%)满意,他们认为推荐结果合理有效,可以帮助他们对任务分配做出决策。
5 总结和未来工作本文提出了一种基于区块链驱动的智能合约的分布式知识图谱构建方法,并将其应用于深度推荐系统中,通过实例验证了该方法的有效性。该方法有三个优点:
1)充分利用群体的智慧,在知识图的完整性和正确性之间做出了很好的权衡。
2) 分散建设过程是高度可靠的,因为所有的结果都记录在区块链上,这是透明的,可审计的,和防篡改。
3) 链上/链下反馈使知识图不断改进和更新。
在案例研究的基础上,可以进一步探索以下方向:
首先,虽然我们目前的工作重点是构建一个专门用于推荐的企业级领域知识图谱,但是可以将其扩展为构建一个更广义的知识图谱。这可以通过在许多中小企业或企业联盟内发起更大规模的众包来实现,这可以在财团区块链上实现。随着知识图谱的细化和效用的增加,我们相信我们提出的系统会有更好的性能。
其次,知识图谱的修正现在只需通过反向投票就可以实现。为了拥抱更复杂的场景,在未来,我们计划设计新的验证机制,以允许现有知识图谱的集成、修改、修改、消除和更新。应考虑采用新的验证机制,以精确地适应以智能合约为动力的分散系统的具体要求。
最后,我们将努力把所提出的方法应用到其他领域,使我们的工作发挥更实际的作用。基于海量的异构数据,可以构建教育、医疗、交通、社交网络等多个行业的知识图谱,这些知识图谱不仅可以用于推荐,还可以用于语义搜索、问答、欺诈检测等,而关键是挖掘潜在的应用需求。