Name Disambiguation in AMiner: Clustering, Maintenance, and Human in the Loop
paper:http://keg.cs.tsinghua.edu.cn/jietang/publications/kdd18_yutao-AMiner-Name-Disambiguation.pdf
code:https://github.com/neozhangthe1/disambiguation/
本文通过结合全局和局部信息提出了一个全面的框架来解决名字消歧问题,并提出比传统基于 BIC 方法更好的端到端的簇大小估计方法。为提高准确性,加入反馈机制,与 GHOST 等目前集中最先进的方法相比,该方案有明显的性能提升。
与 AGNE 对比提升:
本文结合上述两种方法优点,结合监督学习全局嵌入和局部链接结构
本模型输入为一组文档嵌入,输出簇数量
设 a 为给定名字,关于 a 的文档集为
其中每篇文档的特征(包含 title,abstract,co-authors,venue.. )为
使用 I 表示 identity,如果
则两篇文章属于同一个人
姓名消歧问题
任务:寻早一个函数将一组文档 D 分到不同的集合
( 同一个集合仅包含同一人的文章 )
Ca 为 Da 名字a 的消歧结果
要解决消歧问题,需要更多的约束,此处主要考虑两种:
本身约束 Si 和成对约束 Sp
(y 表示是否数据集合 Ck)
成对约束
由个体约束推导成对约束
为有效量化不同文档间的相似性,将文档转换到同一嵌入空间,如果Di 与 Dj 相似,表示为:
每个文档 Di 被表示为一组不同长度的特征向量 Di = { x1,x2,...}---title,abstract,coauthors,venue..
每个特征为一个 one-hot 向量,首先将向量映射到一个连续的低维空间
每个文档的特征表示为
(每个特征嵌入的加权总和,an 是特征xn 的反转文档频率,xi 捕捉每个文档中共现统计量捕获特征之间的相关性)
但 xi 用于区分文档能力有限,需要其他协助
Contrastive Loss
给定一组约束
目的:强制正相关在嵌入空间内距离较近,反之,较远
设yi 为 Di 新的嵌入函数,目标为优化以下对比损失函数
(m 为margin)
由于将所有文档投影到同一空间的单个点上较困难(每个作者的不同文章可能为与不同社区协作的不同主题),因此采用排名学习,并优化三组损失函数
Triplet Loss
相对于投影到单个点,三元损失使得同一个体的文章可以在多个点,并同事获得与其他文档的距离
因为不同集合的文档被嵌入统一空间,因此称 {yi} 为全局嵌入
但是由于聚类是为每个名字单独进行的,还需要利用每个集合的局部信息提高性能
利用本地链路中的细粒度信息完善全局嵌入
为每个名称构建局部链路图(两个文档有较多相似特征则更有可能属于同一作者)
边为文档间的相似度,链接权重 W(Di, Dj) 为文档间共同特征的交集(共同特征的加权和)
如果 W 高于一个阈值,则建立边
使用无监督的自编码器从本地链路学习
自编码器
node encoder model
( Y 为D的嵌入矩阵,A 为图G 的邻接矩阵)
edge decoder model
(Z=[z1,z2...] 为节点嵌入矩阵,A 为预测的邻接矩阵
目标是最小化 A 和 A~ 之间的重构误差
使用图卷积网络(GCN)
( A 为对称的邻接矩阵,W0 W1分别是第一、二层的参数
解码器 g2
Di 和 Dj 间存在边的概率为
目标函数:最小化交叉熵
我们采用 Z=[z1,z2,...] 作为文档新的嵌入表示,包含来自全局和本地的信息
聚类大小估计
X-means缺点:
1. 基于预定义的测量方式(如贝叶斯信息准则)评分聚类质量--不能够处理复杂信息的融合,聚类数量较大时容易过拟合
2. 基于对潜在信息的拆分(数据集较大时不够高效)
因此提出 end-to-end 模型:
输入:文档集
输出:直接估计实体数量
方法
使用分层凝聚聚类(HAC) 作为主要聚类方法
本方法采用 RNN 作为编码器,尝试将一组嵌入向量映射到集合的真正簇数
递归神经网络在离散序列和数据集建模中的应用:
将 RNN 作为编码器,尝试将一组嵌入向量映射到分类簇中
挑战:
1. 输入集合变化范围是 1~nw
虽然 RNN 可通过填充或截断处理可变大小的输入,但也会引入偏差
2. 难构建一套训练集
手动标记不可行
解决-伪训练数据生成策略:
使用一种抽样策略构建伪训练集
设 C={C1, C2...} 是一组干净的簇(每个集群中仅包含单个作者的文档)
使用双向 LSTM 作为编码器,和一维全连接层作为解码器
输入:每篇文章的行特征嵌入
优化均方差 Lh
持续集成--如何处理不断增长的数据
本文以流媒体方式集成新文章
时间成本:主要来自本地链接的学习,聚类,及从数据库中抽取相关文档的 io
实时更新(使用最简单的KNN):
此策略能够实时更新文档,尽管可能为次优赋值,但可通过下次聚类重新计算的迭代进行校正
数据一致性
如何保证每次迭代更新之间的一致性
重新计算聚类后,可能结果与上次不一致
获取新的聚类后,搜索其与先前版本的最佳匹配
使用 Kuhn-Munkres 算法寻找最佳的映射
允许用户和注释根据聚类结果进行反馈,支持:
为在算法中利用反馈,根据等式1 将个体约束 Si 转换为成对约束 Sp,用到两个学习嵌入阶段
在全局嵌入中
从 Sp 中选取的训练集步骤如下
本地链路学习中
基于 Sp 改善本地链路,添加边(Di,Dj)如果满足: