陶嘉庆,樊树海,曹建军,常 宸
(1. 南京工业大学,江苏 南京 210009;
2. 国防科技大学第六十三研究所,江苏 南京 210007;
3. 陆军工程大学,江苏 南京 210007)
随着通信网络不断进步,移动通信设备和互联网平台也在快速发展,数以亿计的用户每天都会产生海量数据。数据信息为人们的生活带来便利的同时,也使得数据质量问题日益凸显。由于互联网的开放性和多源性,不同互联网平台所提供的关于同一实体或事件的描述常有差异,网络数据存在过时、不完整甚至错误等问题,用户难以获取准确可靠的信息[1],低质量数据也会给平台和用户带来不可估量的损失。因此,提高数据质量,充分发挥数据价值是当前大数据领域的研究重点。
数据冲突是造成数据准确性降低的关键问题,提高数据质量的首要工作是对冲突数据进行消解。真值发现是对冲突数据进行消解的重要技术手段,能从不同数据源提供的冲突信息中找出正确信息。传统真值发现是基于结构化数据进行研究的,主要采用投票和求平均值的方法,这些方法假设所有数据的来源同样可靠,但是该假设在大多数情况下并不成立[2],因此传统真值发现方法的准确率较低。大多数学者对文本数据真值发现问题进行简化,将问题转化为二值属性问题进行研究[3],但是该方法难以对数据源和观测值之间的复杂关系进行有效表征,不能适用于真值发现的一般场景。
随着深度学习的快速发展,神经网络逐渐被应用到结构化数据真值发现中,将数据源与观测值信息输入前馈神经网络,通过训练网络自主学习数据源和观测值之间的关系来寻求真值[4]。随后神经网络应用于文本数据真值发现,将语义表征后的文本向量输入CNN提取特征信息,但是传统CNN池化层采用最大池化算法选择特征信息来表征文本语义,即选择特征值最大的特征信息,丢弃特征值小的特征信息,造成文本语义丢失,且CNN采用标量输出特征检测器传输特征信息,无法获取文本数据空间及位置信息。
本文基于真值发现的基本假设:真值应尽可能的与各数据源所提供的观测值接近;
数据源质量越高,则其所提供的答案与真值越相似[5],提出一种基于胶囊网络的文本数据真值发现算法,在神经网络模型中构造语义胶囊层,采用矢量传播方式取代传统神经网络方法中的标量传播方式,提取更加丰富的文本语义信息,有效提高真值发现的准确率。
本文的主要贡献如下:
1)采用语义胶囊替代CNN池化层,利用动态路由算法解决最大池化算法丢失语义信息的问题,在真实数据集上Caps-Truth的平均准确率相较于CNN-Truth提高了12.46%;
2)使用矢量输出胶囊替代传统神经网络标量输出特征检测器,将标量特征转化为向量特征,多维度获取文本语义信息;
3)减少了Caps-Truth对样本量的依赖,使用小规模数据集训练网络模型,就可取得很好效果。在小规模数据集上Caps-Truth的平均准确率相较于大规模数据集提高了2.16%。
研究者针对结构相对简单、场景单一的结构化数据进行研究并提出一些传统真值发现算法。Yin等人[6]首先提出TruthFinder算法,该算法打破了所有数据源同样可靠的假设,并提出两个新的假设:1)若数据源提供越多真实信息,则该数据源越可靠;
2)若信息由可靠数据源提供,则该信息越可信。众多学者在这两个假设的基础上进行研究并提出基于优化、迭代、概率图模型和神经网络的传统真值发现算法。Li等人[7]通过设置目标函数,将真值发现问题转化为优化问题进行求解。Poler等人[10]采用坐标下降法,通过固定一个值,迭代寻求另一个值的最优解,从而计算数据源可靠度和观测值可信度。Zhou等人[11]通过固定数据源可靠度,以加权平均的方式计算真值,利用本次迭代产生的真值评估数据源可靠度。Marshall[4]首次在真值发现问题中应用神经网络,利用前馈神经网络求解相关问题,以人工标记部分对象的方式,判断网络观测值是否为真。然而传统真值发现算法[12-14]采用简单函数来描述数据源与观测值间的关系,但它们之间的依赖关系非常复杂,简单函数无法对其准确描述,所以传统真值发现算法的适用性受到制约。
对于文本数据真值发现问题,国内外学者也提出了一些方法。Popat等人[3]通过构建“数据源-语言风格”输入向量,利用Logistic回归将问题转化为二分类问题,判断用户声明是否正确。Ma等人[15~16]通过将文本语义引入到真值发现中,将概率图模型作为基础,提出细粒度文本数据真值发现算法。Li[17]提出一种从众包用户中提取可靠答案的方法,通过将文本信息完全融入到真值发现中,将观测值分布用Beta分布模拟出来。Ouyang[18]将真值发现应用于移动众包场景,通过对位置访问指标、用户位置流行度、事件真相和用户可靠度进行建模,对用户位置的访问趋势进行模拟,无需监督和位置追踪即可自动发现真实事件。但是上述方法在提取语义信息和获取上下文关联上仍有不足。
胶囊网络由Sara等人[19]于2017年首次提出,该网络使用一组向量表示的胶囊神经元来替代传统CNN中的标量神经元,向量的大小和方向均可对检测对象的特征进行表达,能够克服CNN易丢失信息的缺点,并且采用动态路由算法替代传统CNN的最大池化算法,能够更有效地获取文本数据上下文的语义信息。胶囊网络首先应用于图像分类[19],并在MNIST数据集上取得了优于CNN的结果。在文本数据研究中,Zhao等人[20]首次将胶囊网络应用于文本分类问题,使用卷积层提取文本数据整体特征信息,再通过胶囊网络提取局部特征信息后进行分类。Xia等人[21]在胶囊网络的基础上提出意图胶囊模型,采用动态路由机制对文本意图进行分类。针对小规模数据集,Renkens[22]提出双向循环神经网络编码的胶囊网络模型,利用有限的数据集进行训练,由于动态路由机制可以获取文本细粒度语义信息,该算法在小规模数据集上取得的效果要优于CNN等方法。
文本数据真值发现是指对给定的某个问题,从不同用户提供的众多答案中找出正确答案。表1所列为不同用户对问题“How to prevent COVID-19 effectively?”的回答。
表1 用户回答实例
由表1可知,不同用户关于“How to prevent COVID-19 effectively?”这一问题的回答都不相同,但用户1、用户2、用户4的答案包含了正确答案的不同关键因素,因此这三个答案是部分正确的。文本数据具有词语使用多样性、答案多因素属性等自然语言特性,只有对文本数据进行细粒度特征提取,获取到每个细粒度单元的准确语义信息,才能评估用户答案的可信度。
定义文本数据真值发现模型如下:
1)定义问题:给定问题q,用户集合U={uj|j=1,2,…,m},其中uj表示第j名用户,m表示用户数量。问题q由m名用户回答,每名用户提供一个答案,构成问题q的答案集合A={aj|j=1,2,…,m}。
文本数据的预处理对真值发现研究至关重要,有效的预处理可以提高真值发现的准确率。用户答案预处理包括语义表征和用户答案去噪。
4.1 语义表征
语义表征是将文本转化为包含语义信息的g维向量,采用GloVe(Global Vectors for Word Representation)词嵌入工具和SIF(Smooth Inverse Frequency)[16]方法对用户答案aj进行语义表征。语义表征过程如图1所示,主要分为以下两个步骤:
1)获取词向量。
图1 语义表征过程示意图
对于用户答案aj,首先通过GloVe词嵌入工具获取到aj中每个单词的词向量。GloVe考虑文本数据细粒度问题,从语义相似性的角度对用户答案进行细粒度度量,将用户答案中的每个词映射到一个词向量,降低了词语使用多样性对语义表征的影响,式(1)为GloVe的表征公式
xjt=fGloVe(ajt)(t=1,2,…,l)
(1)
式(1)中,ajt表示第j个文本答案中的第t个单词,l表示aj中单词总数,xjt为单词ajt的词向量,fGloVe表示GloVe的映射函数。
2)词向量加权。
用户答案中关键词的语义信息很大程度上决定了该答案的可信度,第二步利用SIF方法根据单词的词频来计算每个单词的权重值,提升答案关键词在句向量中的比重。式(2)为单词ajt的权重计算公式。
(2)
式(2)中,wjt表示单词ajt的权重值,∂为权重值wjt的调整参数,∂的取值范围为(10-4,10-3),pjt为单词ajt的词频。词频pjt的设置使得频次越低的词,其重要性就越大,而词频越高的词,其重要性也就相对越小。采用加权平均的方式,降低了答案中非关键词的语义信息对用户答案整体语义的干扰,提高了句向量的表征能力。
通过加权平均,得到aj的句向量xj。式(3)为句向量xj的计算公式
(3)
答案集合A={aj|j=1,2,…,m}经过语义表征后生成用户答案矩阵X=[x1,x2,…,xm]。
4.2 用户答案去噪
如表1所列,某一问题的众多答案中,存在着一些不能提供有效信息的答案,将这些答案称为噪声答案(如用户3的答案)。噪声答案的存在,会对真值发现造成干扰,因此通过构造用户答案高维向量空间将其剔除。噪声答案不能提供可靠信息,其向量结构与有效答案的向量结构差异较大,将其嵌入到高维向量空间后,与有效答案的空间距离较远。
根据真值发现的基本假设:真值应尽可能的与各观测值接近;
高质量数据源所提供的观测值与真值也越接近。噪声答案的语义信息与求解问题无关,因此与正确答案或者部分正确答案的相似度较低。通过将所有用户答案嵌入到高维向量空间,计算各答案间的余弦距离dis,当某个用户答案与φ个用户答案的距离超过∂时,则将其视为噪声答案并将其从用户答案矩阵X中剔除,否则该答案为有效答案。式(4)为高维向量空间中用户答案间余弦距离dis的计算公式
(4)
经高维向量空间去噪后生成新的用户答案矩阵X=[x1,x2,…,xn],n为去除噪声答案后的用户答案数量。
传统CNN包括卷积层和池化层,池化层利用最大池化算法提取文本语义信息时会丢失部分信息,导致用户答案语义信息不全。Caps-Truth模型对传统CNN进行改进,在网络模型中构造了语义胶囊层替换池化层,用于表征用户答案的语义信息。改进后的网络解决了传统CNN丢失语义信息的问题,使用胶囊神经元作为用户答案上下文语义信息表征的基本结构,挖掘用户答案细粒度的语义信息。Caps-Truth真值发现算法模型如图2所示,模型由输入层、网络层和输出层组成,本节将对模型的主要网络结构进行介绍。
图2 Caps-Truth模型结构图
5.1 输入层
模型的输入层为n×g的输入矩阵,其中n为去噪后的用户答案数量,g为用户答案向量的维度。
5.2 网络层
Caps-Truth网络层包含四层网络结构:卷积层、初始胶囊层、语义胶囊层和全连接层。首先通过卷积层提取用户答案整体标量信息,然后初始胶囊层对上层提取的特征信息进行初始特征向量化,再由语义胶囊层中的语义胶囊利用动态路由算法对特征向量进行重新组合,得到能够进一步表征用户答案关键语义信息的特征向量;
最后将特征向量输入全连接神经网络挖掘用户答案可信度,输出用户答案可信度矩阵。
5.2.1 卷积层
卷积核是CNN的核心组件,卷积层通过卷积核提取用户答案的全局特征。与传统卷积层使用单一尺寸的卷积核不同,本文为了适应输入的用户答案向量,使用不同尺寸的卷积核生成多个特征映射来丰富全局特征。
(5)
式(5)中,R为卷积核数量,b1为卷积层偏置项,f1为非线性激活函数。用户答案矩阵X=[x1,x2,…,xn]经过卷积层提取特征后的生成全局特征矩阵Y=[y1,y2,…,yn-N1+1]。
5.2.2 初级胶囊层
与传统神经网络中标量神经元不同,胶囊网络由一组向量神经元组成,向量神经元可将标量信息转化为向量信息,向量信息的长度和方向均可对用户答案的特征信息进行表达,使得特征信息更加丰富。用户答案中单词语义和单词在用户答案中的位置等属性可由胶囊神经元的活动表达,这些属性通常包含着许多不同类型的实例化参数。初级胶囊层采用矢量输出胶囊替代传统神经网络标量输出特征检测器,对卷积层输出的全局特征矩阵做向量化处理,输出特征向量同时保存用户答案属性的实例化参数。
设胶囊维度为d,则初始胶囊层有n-N1+1个d维胶囊。初级胶囊层滑动窗口滤波器为W2,滤波器数量为G,步长为N2。式(6)为初级胶囊层实例化参数vr的表达式。
vr=f2(yj∘W2+b2)(r=1,2,…,G)
(6)
式(6)中,b2为初级胶囊层偏执项,f2为非线性激活函数。全局特征矩阵Y=[y1,y2,…,yn-N1+1]经过矢量输出胶囊向量化处理后生成特征矩阵V=[v1,v2,…,vG]。
5.2.3 语义胶囊层
为了提取细粒度的语义信息,本文在Caps-Truth模型的网络结构中添加了语义胶囊层,通过语义胶囊神经元来提取更丰富的语义信息和编码单词位置,整合零散语义,获取用户答案关键词语义信息的表征。
语义胶囊层采用动态路由算法将初始胶囊层输出的特征矩阵V传送到下一层级网络。胶囊神经元动态路由算法示意图如图3所示。
动态路由算法的运算原理如式(7~10)所示。
图3 动态路由算法示意图
hk=Dkvk
(7)
s=c1h1+c2h2+…+cGhG
(8)
v=fSquash(s)
(9)
(10)
式(7~10)中,D1,D2,…,DG为权重矩阵,c1,c2,…,cG为耦合系数,其中权重矩阵为固定参数,耦合系数是胶囊神经元的核心参数,随着胶囊神经元的活动动态更新。fquash为胶囊内部非线性压缩函数,用来替代传统神经网络中Relu激活函数,将短向量压缩为接近0的向量,将长向量压缩为接近1的向量。上层输出的特征矩阵v1,v2,…,vG经胶囊神经元处理后输出向量φ,向量长度在0到1之间。若有F个语义胶囊神经元,则特征矩阵V=[v1,v2,…,vG]经语义胶囊层提取语义特征后生成细粒度特征矩阵φ=[φ1,φ2,…,φF]。
5.2.4 全连接层
全连接层通过构建高维的向量空间结构,将语义胶囊层输出的细粒度特征向量φ嵌入到高维向量空间,对特征向量进行矩阵变换。全连接神经网络基于真值发现的基本假设,无监督挖掘用户答案间的依赖关系并输出用户答案可信度矩阵Z。
5.3 输出层
5.4 真值发现
本节主要根据Caps-Truth模型的输出结果为每个用户答案计算可信度分数,包括损失函数设计和用户答案评分两部分。
5.4.1 损失函数设计
根据本文假设:真值应尽可能的与各数据源所提供的观测值接近;
数据源质量越高,则其所提供的答案与真值越相似,设计Caps-Truth模型的损失函数如式(11)所示。
(11)
(12)
5.4.2 用户答案评分
(13)
根据式(13)计算各用户答案分数,分数越高,则答案越可信。将用户答案按分数进行排名,从众多用户答案中找到可靠答案。
6.1 实验环境与实验数据
本文使用tensorflow和capslayer框架搭建并训练网络,CPU为Inter Xeon E5-2630,内存为192GB,GPU为Nvidia Tesla P40×2,操作系统为64位CentOS 7。
本文在真实数据集Automated Essay Scoring(https:∥www.kaggle.com/c/asap-sas)上验证Caps-Truth算法。数据集来自Kaggle竞赛,答案平均长度150-550个单词,每条答案都经过相关人员打分。
6.2 评价指标和超参数设置
评价指标为归一化的Top-k均分:将用户答案按评分从大到小进行排序,选取前k个用户答案计算其平均分,再将平均分进行归一化处理作为评价指标。下表2为实验超参数设置。
表2 实验超参数设置
6.3 实验结果分析
6.3.1 对比实验分析
采用NN-Truth、CCN-Truth、Bi-GRU[23]三种对比算法进行对比试验。表3所列为对比实验结果。
NN-Truth:使用SIF对用户答案进行语义表征,再通过NN网络提取用户答案特征,计算用户答案间相似度进行真值发现。
表3 对比实验结果
CNN-Truth:在SIF语义表征后,采用CNN网络提取用户答案语义信息进行真值发现。
CRH[8]:是传统真值发现算法中表现优异的算法,将文本答案相似度融入CRH算法中,应用到本文场景中进行的真值发现。
Bi-GRU[23]:是目前效果较好的基于神经网络的真值发现算法,利用Bi-GRU网络表征用户答案的语义信息,同时结合双层注意力机制分别学习关键词可靠度及用户答案可靠度。
由表3可知,Caps-Truth算法的Top-k均分在k=10,30,50,70,90时较四种对比算法有所提升,实验效果优于四种对比算法。NN网络由于在迭代时需要大量的样本数据来训练和优化网络参数,在样本量较少时,网络训练效果较差。CNN池化层采用最大池化算法,导致答案关键词语义信息不全,真值发现准确率较低。CRH属于传统真值发现算法,算法假设数据源与观测值间的关系可用简单函数表示,而这种关系无法准确描述数据的底层分布,且CRH算法需要数据源提供大量观测值,对数据源可靠性进行评估,而对于文本数据真值发现场景,数据源众多而观测值较少,不能准确的评估数据源可靠度,造成真值发现效果不佳。Bi-GRU算法效果相对较好,但GRU网络作为RNN的变体,仍然具有RNN网络不能并行运算的弊端,导致网络运算量和模型体量不断增大,实验效果较低于Caps-Truth。相较于对比算法,Caps-Truth算法通过初始胶囊层、语义胶囊层提取用户答案语义信息,获取用户答案间的复杂关系,适用于数据源众多且每个数据源提供少量答案的稀疏性文本数据真值发现场景,可有效降低文本数据的自然语言特性对真值发现的影响。
6.3.2 消融实验分析
为验证胶囊网络的有效性,进行如下消融实验。
Caps-Truth 1:同时删除初始胶囊层和语义胶囊层,保留卷积层和全连接层。
Caps-Truth 2:删除语义胶囊层,保留卷积层、初始胶囊层和全连接层。
Caps-Truth 3:删除初始胶囊层,保留卷积层、语义胶囊层和全连接层。
将Caps-Truth 1、Caps-Truth 2、Caps-Truth 3三种算法与Caps-Truth算法进行对比。消融实验Top-k结果如表4所列。
表4 消融实验结果
由表4可知,Caps-Truth算法的Top-k均分在k=10,30,50,70,90时较其它三种算法有所提升,表明胶囊网络可以有效提高真值发现的准确率。Caps-Truth 1算法只有卷积层和全连接层,其网络结构与CNN类似,由于卷积层只能提取全局特征信息,而无法获取细粒度的语义相关性,因此实验效果不佳。Caps-Truth 2和Caps-Truth 3分别删除了语义胶囊层和初始胶囊层,只保留单层的胶囊网络,通过胶囊神经元挖掘文本的语义信息和位置关系,实验效果都优于Caps-Truth 1,验证了初始胶囊层和语义胶囊层的有效性。
6.3.3 学习率对实验结果的影响
学习率是神经网络的重要参数,学习率的设置会影响神经网络的学习效果,选择合适的学习率非常重要。本节分别采用五种不同的学习率,对比验证学习率对实验结果的影响,图4为实验结果。
由图4可知,算法受学习率影响较小,当学习率为0.01时,实验效果最佳。
图4 学习率对实验结果的影响
6.3.4 数据集规模对实验结果的影响
为了验证数据集规模对实验结果的影响,将数据集进行了切分,分为样本量为2000的Data1数据集和样本量为8000的Data2数据集进行对照实验,表5所列为两个数据集的Top-k值。
表5 不同规模数据集Top-k值
根据表5,得到实验结果如图5所示。
由图5可知,Caps-Truth算法在小规模数据集上的实验效果要优于大规模数据集,由于语义胶囊层使用少量样本数据就可获取准确的语义信息,并建立特征信息间的位置关系,使得算法在小规模数据集上的收敛速度快于大规模数据集,训练效果优于大规模数据集。
图5 不同规模数据集对比实验结果
由于文本数据存在答案多因素性、词语使用多样性及文本数据稀疏性等自然语言特性,传统神经网络无法有效克服这些自然语义特性为文本数据真值发现带来的影响,本文对传统CNN进行改进,将卷积层和语义胶囊层进行融合,提出基于胶囊网络的文本数据真值发现算法。通过语义表征对文本答案进行细粒度度量,在卷积层获取到用户答案全局特征的基础上,利用语义胶囊层挖掘用户答案上下文语义信息。算法有效地提取并整合了用户答案的语义,并且在小规模数据集上就能获取很好的训练效果。在真实数据集上的实验结果表明,Caps-Truth算法的实验效果优于对比算法。
猜你喜欢真值数据源语义语言与语义开放教育研究(2020年2期)2020-03-31Web 大数据系统数据源选择*计算机与生活(2018年3期)2018-03-1210kV组合互感器误差偏真值原因分析电子制作(2017年1期)2017-05-17基于不同网络数据源的期刊评价研究中国科技期刊研究(2017年2期)2017-05-14“上”与“下”语义的不对称性及其认知阐释现代语文(2016年21期)2016-05-25真值限定的语言真值直觉模糊推理智能系统学报(2015年5期)2015-12-03滚动轴承振动速度的乏信息真值估计轴承(2015年3期)2015-07-25基于真值发现的冲突数据源质量评价算法浙江大学学报(工学版)(2015年2期)2015-05-30认知范畴模糊与语义模糊大连民族大学学报(2015年2期)2015-02-27分布式异构数据源标准化查询设计与实现土木建筑工程信息技术(2013年4期)2013-10-17