论文阅读“Multi-View Clustering for O
Shen W, Yang Y, Liu Y. Multi-View Clustering for Open Knowledge Base Canonicalization[C]//Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. 2022: 1578-1588.
摘要
开放信息抽取(OIE)方法从非结构化文本中提取大量的<名词短语、关系短语、名词短语>,组成了大量的开放知识库(OKBs)。在这些OKBs中<名词短语>和<关系短语>没有被规范化,从而导致分散和冗余的事实。研究发现,两种知识视图(即基于事实三元组的事实视图--fact view 以及 事实三元组所在源上下文的上下文视图--context view)提供了补充信息,这对OKB规范化任务是至关重要的,该任务是将同义名词短语和关系短语聚类到同一组,并为它们分配唯一的标识符。
然而,到目前为止,现有的研究都是对这两种知识视图的单独利用。因此,本文提出了一种新的无监督框架-CMVC,在不需要手动注释的标签的情况下,共同利用这两种知识视图来规范OKBs。
为实现该目标,本文提出了一个多视图的CH K-Means 聚类算法通过考虑视图的不同聚类质量(clustering qualities)来相互加强从每个视图学习到的视图特定嵌入的聚类。
为进一步加强规范化的效果,提出了一种基于数据数量和数据质量的训练数据优化策略,以迭代的方式改进学习到的特定视图的嵌入表示。
此外,提出了一种Log-Jump算法,以数据驱动的方式预测类簇的最优值。
通过在多个真实世界的OKBs数据集上对最先进的方法进行广泛的实验,展示了所提出框架的优越性。
问题的形式化定义
在OKB中,一个OIE三元组可以由 表示,其中和是名词短语(NP),是关系短语(RP)。其中OIE三元组被提取出来的源文本用表示,它可以是源文章中的一个句子或一个段落。对于一个NP,将它的源上下文定义为,即源上下文中删除了NP所对应的文本。
()的源上下文也使用类似的方式来定义。
OKB规范化的定义: 给定一组OKB中的三元组及其对应的源文本,该任务的目标是 将引用到相同实体的同义NP 和 有相同语义含义的同义RP 各自聚类成组,从而将这些OIE三元组转换为规范化形式。
从任务定义可以看出,两个视图(即基于OIE事实三元组的fact view和基于对应源文本的context view)作为输入,作者的目标是共同利用这两种知识视图。基于特定视图的知识,以名词短语为例,可以学习的特定视图嵌入$𝑠𝑢𝑏_𝑖^{(v)}。在提出的框架中有两个视图,即𝑣∈{1, 2},其中视图1表示fact view,视图2表示context view。
模型浅析
多视图聚类(聚类框架+聚类参数的预测)
- Multi-View CH K-Means
提出的多视图CH K-Means是基于co-EM算法的。为了量化每个视图的聚类结果的质量,引入了CH指数作为每个视图的权重,而不是平等地对待不同的视图。为了相互加强每个视图的聚类,视图1中的步骤M、E和视图2中的步骤M、E 的轮流执行,聚类结果在两个视图之间传递。
M-step: 其输入是来自其他视图的聚类结果,其中是名词短语的一个类簇,是类簇的个数。由此,可以计算视图中-th类簇中心:
可以看出M步骤,主要是利用其他视图的聚类结果完成在该视图中类簇中心的估算。
E-step: 其输入是类簇中心向量 ,并通过下面的式子计算视图中每个样本对应的类簇分配: 这里的sim使用的是余弦相似度。并且作者在这里指出,中所有NP的NP嵌入都是单位长度的,即|| (v)||= 1。
在两个视图中轮流执行M step和E step,对应的最小化的目标如下: 整个过程达到收敛条件,就可以得到每个视图的聚类结果。然而,每个视图的聚类结果可能存在不一致的情况,为了消除这种冲突,本文为视图的每个类簇计算了consensus mean : 从形式上可以看出,只包含了两个视图具有一致性的结果。由于不同的视图具有不同的聚类质量,因此在整合其聚类结果的过程中应该以不同的方式对待它们。这里使用的是一个基于统计的度量方法CH index,为每个视图的聚类结果计算权重: 是中包含元素的数量,是全局中心向量--即视图中所有NP的嵌入的平均嵌入表示,是所有NP元素的数量。可以看出,CH指数的高值意味着集群之间分离得很好,簇内密集,也同时说明CH指数是衡量聚类质量的合理指标。因此,本文将CH指数视为每个视图的权重,并通过对两个视图中的加权余弦相似度进行平均,为NP分配一个最终的类簇。 由此,最终的聚类结果表示为: 该算法可以看做是co-EM算法,因此,算法需要像k-means一样初始化类簇中心。在本算法中,采用的是对视图2进行类簇中心的随机初始化。 - Log-Jump(数据驱动的参数估算)
给定输入嵌入表示的集合: 是输入的数量同时也是可能的最大类簇的数目。
在提出的Log-Jump算法中,引入的最主要的一个衡量指标是distortion --是一个度量每个输入嵌入与其最近的集群中心嵌入之间的平均距离的量,定义为如下形式: 依据的定义,设计如下的预测算法: 该算法是对现有Jump算法的改进,将的计算由Mahalanobis距离替换为cosine距离。直观上来说,当两个值之间对应的distortion差距越大,说明此次跳跃引起的
distortion极大。因此,算法输出不要引起大distortion的作为最优的类簇个数。
为了明确视图嵌入的过程,在算法框架的部分作者还以为例,给出了fact view 和 context view两个部分的学习。
Fact view
- Fact Embedding Learning
给定一个三元组,可以通过KB Embedding Model 对三元组中的每个元素做出映射。为了学到该视图的表示,引入了margin-based loss: 表示取和之间的最大值,是一个间隔参数,是表示OKB中所有可被视为正训练样本的fact 三元组,是负例训练数据,其通过负采样生成: 表示中所有的名词短语NPs的集合。式(9)表明,在一个正例三元组中,两个NPs中的一个被另一个随机NP所替换(但不是同时取代两者)。 - Data Augmentation Operator
一般来说,OKB的fact三元组通常是稀疏的,这妨碍了KEM学习高质量的fact嵌入。为了使训练数据密集,并使用更多的实例来增强它,本文利用种子对中的先验知识嵌入,提出了一个数据增强方法:若种子对(a,b)中的一项a出现在三元组中,那么将这a替换为b,以获得额外的增强训练数据。这里将原始OKB中存在的三元组记为,由数据增强操作产生的三元组为。
在没有外部资源的情况下自动收集一些同义NPs的种子对,然后利用它们作为高质量编码的先验知识。设表示一个种子对,其中和是指同一实体的同义NPs。给定原始三元组 那么依照种子对集合,可以形式化为: 那么正例的集合扩充为。考虑到自动抽取的种子集合是易于出错的,因此作者这里采用了和交替进行训练的方式获取fact view的embedding表示。
Context View
本部分和fact view一致,首先是对context view embedding的表示学习,其次是利用迭代聚类过程对表示的优化。
- Context Embedding Learning
对于context view而言,三元组的每个部分对应的上下文表示都是自然语言文本,因此,这里引用了PLM对其最嵌入。例如,给定NP 和其对应的context ,PLM将作为输入可以得出在context view的嵌入表示。
When fine-tuned over enough task-specific labeled training data, PLM could achieve excellent performance on the specific task, but these task-specific labeled training data usually require large amounts of manual annotation.
- Iterative Clustering Procedure
因此,作者这里构造了代表对应于NPs的相关实体的伪标签作为监督信息。具体如下:
首先,基于种子对集合对源上下文进行聚类,如果它们对应的NPs(名词短语)在中形成一对,这意味着这两个NPs是同义的,即指代同一实体。如果一个NP没有出现在任何的种子对中,那么它的源上下文将被分配到一个单例类簇(只有自己一个)中。在这种情况下,分组到同一组中的源上下文应该具有相同的伪标签。
随后,可以得到一个伪标签集合 代表所对应的标签分配。最终,可以利用这些源上下文的伪标签,使用交叉熵损失函数与分类器MLP联合微调PLM。
因为收集到的种子对的覆盖范围非常有限,而且有许多真正的同义NPs并没有出现在收集的种子对中,因此会造成一些源上下文中对应的NPs引用相同的实体,但没有被分配到相同的伪标签。为了生成高质量的上下文嵌入,需要更好的源上下文伪标签来微调PLM,以进一步改善上下文嵌入。
为了实现这一目标,本文提出了一种迭代聚类方法,将先验知识从有限的种子对转移到其他种子对,以生成更准确的伪标签,这可以作为一种在数据质量方面的训练数据优化策略。具体来说,基于出现相同实体的上下文表示时相似的假设,在每一次迭代中,首先使用层次聚类对PLM输出的embedding进行聚类。因此,分组到同一集群中的源上下文应该提到相同的实体,因此应该被分配相同的伪标签。然后与基于种子对的聚类相结合获取到新的聚类结果。 这里笔者给出了自己的理解。
然后,基于新的聚类结果,可以得到新的源上下文的伪标签,并利用这些伪标签对PLM进行微调。可以看出,聚类是将种子对的同义关系转移到其他对的关键步骤,通过将语义上相似的源上下文分组到 相同的集群,以便它们被分配相同的伪标签。这里关于层次聚类的K的预测也使用的是Log-Jump算法。
实验section结构分析
- 实验设置
数据集
评价指标
实现细节 - 主实验(三元组包含名词+关系短语,因此规范化实验也分为两个部分)
NP规范实验(对比方法+实验分析)
RP规范实验 - 消融学习
- 收敛学习
- 对提出的Log-Jump算法的对比
给出针对该部分的对比方法和评价指标
相关工作
- OKB的规范化
- 多视图聚类
提出的算法框架将OKB的规范任务与多视图结合起来,打破了现有仅使用一种知识视图的规范算法。整个框架的设计看上去中规中矩,但是细化到框架的每个部分都存在改进。如,在主算法中,引入了CH指数,并设计了改进的Log-Jump参数预测算法;在fact view中引入了自抽取的种子对进行了数据数量的增加;在context view中引入了层次聚类将种子对的进行扩展,并利用迭代的聚类过程加强对伪标签的利用,从而得到高质量的context 嵌入;更进一步的提高聚类的质量。