文献同名消歧
发布时间:2019-02-22 浏览次数:135
作者:俞泽西、武锦
背景
同名消歧,就是区分同名的不同实体。区分同名的朋友对于我们人类来说并不困难,但如果站在一个更广的层面上来看,同名消歧可就是一个不容忽视的大问题。在美国,300个最常见的名字的使用者占了总人口的78.74%,这也就意味着如果一个美国学者拥有一个常见名,那么他所在的大学里和有同名学者的概率高达99%。同名现象给科学文献管理、任务搜索、社交网络分析等领域带来了比较大的挑战。而我们本次的报告就将专注于文献管理里面的同名消歧任务。
2.
本文研究的数据描述了某文献搜索平台中文献的信息,包括文献的作者authors, 标题title, 关键词keywords, 期刊venue, 年份year, 文献编码id.
数据格式—json文件
一个名字下面,有很多个同名作者写的文献,我们要做的工作就是判断出哪些文章是同一个人写的。
后续的分析建模工作需要我们先对文本数据作分词处理。分词时在每个词前面加一个前缀,表示其原本属于哪个特征。预处理结果如下,
__NAME__ke_xu
__ORG__department__ORG__of __ORG__radiology __ORG__department_of_radiology
__TITLE__impact__TITLE__of __ …
__KEYWORD__receptor__KEYWORD__gene __KEYWORD__case-control…
加前缀的好处是在后面计算逆文档频率
时,可以避免“一锅炖”,而是计算每个词在每个特征中的普遍重要性,更加合理。
4.
针对文献同名消歧问题,本文提出了2种消歧方法,一种是基于文献共同特征的分类方法;另一种是基于图卷积神经网络的方法。
4.1基于文献共同特征的分类方法
一般情况下,我们认为两篇文献如果是同一个作者写的,那么这两篇文献在某些特征上可能会很相似,比如说这两篇文献可能有一样的共同作者或者有相同的机构,也有可能这两篇文献的关键词很相似。为了验证这种猜想,我们首先从数据中筛选出一些同一个人写的文献,统计文献中各个机构出现的频数,
从柱状图中可以看出,同一个作者写的文献一般所属机构是相同的。再统计合作者出现的次数,
从柱状图中可以看出,一般一个作者会有比较稳定的合作者。基于上面的结论,不妨先简单粗暴地建立一个强规则,只要两篇文献的作者机构是相同的或者两篇文献至少有一个相同的合作者,那么就认定这两篇文献是同一个作者写的。
尽管这个规则有点强,但我们还是想搓搓小手,看看是否会有大力出奇迹的效果。然而,结果却是啪啪打脸的,
强规则结果
上面这个图每个点代表一篇文献,所有文献的作者是同一个人,如果两个点之间被连上线了,那么就表明这两篇文献是满足前面提出的强规则的,也就是说这两篇文献应该是同一个人写的。结果显而易见的差,然而也是意料之中的。因为这样的判定规则损失了很多重要信息,比如期刊、关键词、摘要等,而这些信息可对于我们的判断更有价值。
为了利用更多的信息,我们采用了这样一种思路:基于两篇文献的共同特征,计算两篇文献的相似度:
其中,表示的是文献i的特征(机构、合作者、摘要、关键词等),idf表示逆文档频率,
表示文献i的所有特征逆文档频率之和,
是文献i和文献j的相似度。
对于idf逆文档频率,它衡量的是一个词语的普遍重要性,某一个特定词语的idf可以由总文档数目除以包含该词语的文档数目,再将得到的商取以10为底的对数得到。比如说,现在有10000份文档,如果“大数据”这个词在100份文档里出现,那么“大数据”这个词的逆文档频率.另外如果一个词在10000份文档里都出现过,那么其idf=0.
因此,如果两篇文献有较多的相同特征,那么相似度也就会相应大一些。采用
的一个优点是可以将特征的重要性融合到相似度计算中。另外我们在相似度计算公式中引入一个正则化因子作为分母,这样做的一个好处就是可以将不同文献间的相似性放在同一个量级上进行比较,避免直接在绝对值上进行比较可能带来错误结论的风险。
下面的做法就是每次取出两篇文献,基于文献共同特征的idf,就可以得到两篇文献的相似度,然后根据阈值来判断两篇文献的作者是否是同一个人。
还是使用前面强规则方法的数据,考虑更多特征后的判断结果如下:
基于文献共同特征的判定规则得到的结果
我们发现计算相似度的方法效果有明显的提升,大多数文献都被连接了起来。但是这种方法有个缺点,就是阈值比较难定,不同姓名对应的能够进行最优分类的阈值是不一样的,这就会造成算法效果的不鲁棒。
为了克服这样的不足,我们基于前面所作的工作,提出了图卷积神经网络的算法来进一步优化。
4.2基于图卷积神经网络的方法
思路:利用Word2Vec提取每条文献信息的特征向量,然后依次用神经网络和图卷积神经网络对特征进行微调,使得同名下不同作者的文献的特征相互分离。(注:本模型主要参考了清华大学Aminer团队2018年的一篇文章《Name Disambiguation in AMiner: Clustering, Maintenance,andHuman in the Loop》)
Step1. Word2Vec
Word2Vec是NLP领域常用的提取词向量的模型,由于它不是本文的重点,这里就不作详细介绍了。在进行简单的清洗工作之后,我们将所有的文献数据作为语料库,输入Word2Vec模型中,再将一篇paper的所有单词的词向量根据idf值加权求和得到了文章i的特征向量.
名为li_gao的不同作者的特征向量(采用T-SNE降维)
Step2. Triplet Loss Network
模型示意图
第一步得到的特征虽然能够反映一定的语义信息,但降维的散点图显示仍然有混淆现象。我们可以利用已知的信息去改进:构建一个全连接的神经网络f,输入是文章的特征向量,输出新的特征向量
.每次从全部paper中取3篇:anchor, positive, negative,其中positive是确定了anchor之后任取的同一作者的另一篇文章,negative则是从其余作者(不一定同名)的所有文章中任取一篇。在分别将
输入得到
之后,我们要求anchor和pos的特征向量的欧式距离加上一个margin小于anchor和neg的特征向量的欧式距离:
所以有损失函数:
经过Triplet Loss Network改进前后的特征对比
注意到,三元组的negative不一定是同名文章,但实际运用我们只要判断某一名字下面的文章的归属。那我们为什么不仅仅选区同名下面的文章作为negative呢?1.某些名字下面的文章数量少,没有办法只用同名文章训练模型。2.不用同名文章本身具有合理性:比如数据库里有两个名字A和B,模型输入进来A的两篇文章,一篇是统计学的paper,一篇是医学的paper,模型根据语义信息判断它们应该不是同一作者所写;但如果我们输入进来一篇A的文章和一篇B的文章,而B的文章是研究古汉语的,那我们的模型依旧是通过语义信息来做推测。所以我们利用了这两种任务的相似性,来解决样本不足的问题。
调整后特征的分离度明显更高,同作者的特征变得更加紧凑。
Step3.图自编码网络
模型示意图
这一步我们将对特征做最后的调整,我们可以利用第一部分所提到的方法,用一些强约束来过滤一遍样本,挑选出几乎可以肯定是同一作者所写的文章对,从而构建出一张有很多孤立点的无向图(graph),现在我们要将每个名字下面的文章所形成的图结构作为限制条件嵌入到特征中去。我们用的工具,就叫图自编码网络(GAE)。
熟悉VAE的朋友肯定知道,自编码网络是embedding的一种常见手段。它的思想是先用若干层网络将输入进行编码(encode),这通常是一个降维的过程,再用若干层网络进行解码(decode),目标是让输入和输出尽可能保持一致,也即让信息经过压缩和还原后尽可能没有损失,那么编码后的输出就是一个很好的降维表达。图自编码网络(GAE)不仅可以实现数据的降维,更重要的是它可以嵌入图结构。
编码:
解码:
损失函数(交叉熵):
我们先来理解编码,两个layer表示两层全连接层,表示用度矩阵(degree)正则化后的邻接矩阵:
我们以三个点的图为例,看看邻接矩阵乘特征向量会发生什么:
邻接矩阵表示相邻,
是孤立点,可以看到左乘邻接矩阵后,输出的特征向量前两行相等,而它们正好也是相邻的。也就是说图的结构被成功嵌入了。
解码阶段实际是算了一个余弦相似度,这样我们就可以得到一个近似的邻接矩阵。
现在我们看一下特征改进的结果:
图自编码器改进前后的特征图
至此,我们的特征终于改进完毕,直观上看类内距离似乎有些增大,但是组间分得都还比较开。最后我们对特征进行分层聚类,得到的pairwise-f1为67%。
5. 总结
这次报告我们的重点放在特征的构建上,在最后聚类的时候我们没有去做组数的估计,而是直接使用了真实样本的分组数量。对于如何在不知道组数的情况下聚类,这里笔者提供两种思路:1.使用X-Means方法;2. 参考《Name Disambiguation in AMiner: Clustering, Maintenance,andHuman in the Loop》里面的方法,即从特定数量K的小组里面抽取若干文章,训练一个双向的LSTM来估计K。
