知识图谱实体对齐:无监督和自监督的方法

知识,图谱,实体,对齐,监督,方法 · 浏览次数 : 618

小编点评

**文本翻译方法** 该文本翻译方法使用知识图谱技术,自负样本负样本对进行采样,以推远负样本之间的距离。 **知识图谱** 知识图谱是图谱结构的知识图,它包含对实体、关系和知识的知识。 **自负样本负样本采样** 自负样本负样本采样方法是基于知识图谱的负样本采样方法。该方法从知识图谱中提取实体和关系,并以这些知识作为负样本采样。 **负样本对** 负样本对是来自知识图谱中提取的实体和关系,它们被用以推远负样本之间的距离。 **知识图谱共享** 知识图谱共享是将两个知识图谱的知识进行共享的过程。 **训练过程** 训练过程包括以下步骤: 1. **负样本采样**:从知识图谱中提取实体和关系,并以这些知识作为负样本采样。 2. **推远负样本之间的距离**:使用负样本对推远负样本之间的距离。 3. **知识图谱共享**:将两个知识图谱的知识进行共享。 4. **联合优化**:将负样本对与知识图谱共享的知识一起优化。 **结果** 训练完成后,可以推导出负样本之间的距离,并使用这些距离来进行文本翻译。 **其他信息** * 本方法使用知识图谱技术,自负样本负样本采样方法。 * 该方法可以推导出负样本之间的距离,并使用这些距离来进行文本翻译。 * 本方法使用知识图谱共享技术,可以将两个知识图谱的知识进行共享。

正文

1 导引

我们在博客《知识图谱实体对齐1:基于平移(translation)嵌入的方法》和博客《知识图谱实体对齐2:基于GNN嵌入的方法》中介绍的都是有监督的知识图谱对齐方法,它们都需要需要已经对齐好的实体做为种子(锚点),但是在实际场景下可能并没有那么多种子给我们使用。为了解决这个问题,有许多无监督/自监督的知识图谱对齐方法被提出。

2 一些常见无监督和自监督方法

2.1 基于GAN的方法

首先我们来看一个基于GAN的方法[1],虽然该方法是用于解决NLP中无监督跨语言词向量对齐操作的,但是我觉得在知识图谱领域也很有借鉴意义。

在最原始的有监督跨语言词向量的对齐任务中,给定已经对齐好的字典(锚点)\(\left\{x_i, y_i\right\}_{i=1}^n\),我们需要找到一个线性变换\(W\)来将一个语言的embedding投影到另一个语言的embedding空间中:

\[W^{\star}=\underset{W \in M_d(\mathbb{R})}{\operatorname{argmin}}\|W X-Y\|_{\mathrm{F}} \]

其中\(d\)为embeddings维度,\(X, Y\in \mathbb{R}^{d\times n}\)为字典embeddings矩阵,\(M_d(\mathbb{R})\)\(d\times d\)的实矩阵空间。源单词\(s\)的对应翻译单词定义为\(t=\operatorname{argmax}_t \cos \left(W x_s, y_t\right)\)

这个优化问题在对\(W\)施以正交约束的情况下,可通过对\(YX^T\)进行奇异值分解来获得解析解:

\[W^{\star}=\underset{W \in O_d(\mathbb{R})}{\operatorname{argmin}}\|W X-Y\|_{\mathrm{F}}=U V^T, \text { with } U \Sigma V^T=\operatorname{SVD}\left(Y X^T\right) \]

事实上,若两个语言embedding空间的维度不相同,即\(x_i\in\mathbb{R}^{d_1}\)\(y_i\in \mathbb{R}^{d_2}\)时,即\(W\in \mathbb{R^{d_2\times d_1}}\)不可逆时,亦可通过SGD来求数值解[2],即求解以下优化问题:

\[\min _{W\in\mathbb{R}^{d_2\times d_1}} \sum_{i=1}^n\left\|W x_i-y_i\right\|^2 \]

以上是有对齐的字典的情况,对于没有字典的情况呢?我们可以先用GAN来学到一个\(W\)使得两个单词分布粗略地对齐,然后通过目前的\(W\)找一些高频单词在另一个向量空间中的最近邻,作为锚点,进行优化以获得更好的\(W\)。测试时,再通过最近邻搜索来得到单词在另一个向量空间中的翻译结果。文中的最近邻搜索采用CSLS(cross-domain similarity local scaling)作为距离度量。

整体算法流程如下图所示:

如上图所示,(A) 为两个不同的词向量分布,红色的英语单词由\(X\)表示,蓝色的意大利单词由\(Y\)表示,我们想要进行翻译/对齐(在意大利语里面,gatto意为“cat”,profondo意为“deep”,felino意为“feline”,“auto”意为“car”)。每一个点代表词向量空间中的一个单词,点的大小和单词在训练语料中出现的频率成正比。 (B) 意为通过对抗学习机制学习一个旋转矩阵\(W\)将两个分布大致地对齐。 (C) 使用一些高频单词及其映射后的最近邻做为锚点,来对映射\(W\)进一步调整。(D) 寻找单词在目标向量空间中的最近邻以完成翻译。

首先我们来看GAN是如何训练的。设\(\mathcal{X}=\{x_1,\cdots, x_n\}\)\(\mathcal{Y}=\{y_1,\cdots, y_m\}\)分别为源语言和目标语言embeddings的集合。GAN的判别器需要区分从\(W\mathcal{X}=\{Wx_1,\cdots, Wx_n\}\)\(\mathcal{Y}\)中随机采样的元素,而生成器(参数为\(W\))要尽可能去阻止判别器做出正确的判断:

\( \mathcal{L}_D\left(\theta_D \mid W\right)=-\frac{1}{n} \sum_{i=1}^n \log P_{\theta_D}\left(\right.\text{source} \left.=1 \mid W x_i\right)-\frac{1}{m} \sum_{i=1}^m \log P_{\theta_D}\left(\right. \text{source} \left.=0 \mid y_i\right)\)

\( \mathcal{L}_W\left(W \mid \theta_D\right)=-\frac{1}{n} \sum_{i=1}^n \log P_{\theta_D}\left(\right.\text{source }\left.=0 \mid W x_i\right)-\frac{1}{m} \sum_{i=1}^m \log P_{\theta_D}\left(\right.\text{source}\left.=1 \mid y_i\right) \)

之后,我们从GAN初步训练得到的\(W\)来找到一些高频单词在另一个语言中的最近邻,把他们作为锚点,然后优化目标函数来获得更好的\(W\)

注意,在GAN的优化过程中对\(W\)进行调整时,采用一种特殊的更新方法来使其有正交性(正交变换在欧氏空间中保范数,且使得训练过程更加稳定):

\[W \leftarrow(1+\beta) W-\beta\left(W W^T\right) W \]

其中经验表明\(\beta=0.01\)表现良好。

\(W\)训练完毕后,对每个单词映射在其目标向量空间中做最近邻搜索。如果两个语言中的两个单词互为最近邻,则我们把他们加入字典,认为是高质量的翻译。

接下来我们看文中的最近邻搜索采用的距离度量方式。文中认为单词在配对过程中要尽量满足“双向奔赴”,防止某个单词是其它语言中很多单词最近邻的“海王”情况。文中将源单词\(x_s\)和目标单词\(y_t\)间的距离定义为:

\[\text{C S L S}(Wx_s, x_t)=2 \cos \left(W x_s, y_t\right)-r_T(Wx_s)-r_S(y_t) \]

这里\(r_T(Wx_s)\)\(x_s\)和其目标向量空间中的\(K\)个邻居间的平均距离:

\[r_T(W x_s)=\frac{1}{K} \sum_{y_t \in \mathcal{N}_T(Wx_s)} \cos \left(W x_s, y_t\right) \]

同理定义\(r_S(y_t)\)\(y_t\)和其\(K\)个邻居间的平均距离。

如果一个单词和另一语言中的很多单词都很接近,那么\(r\)值就会很高。\(r\)可以视为一种惩罚,用于抑制了某些单词是很多单词最近邻的情况。

2.2 基于对比学习的方法

本文介绍了通过一种基于对比学习的方法[3]将来自不同知识图谱实体embeddings映射到一个统一的空间。首先,用对比学习的视角来审视知识图谱\(G_x\)\(G_y\)的对齐,可以看做是将\(G_x\)中的实体\(x\)和其在\(G_y\)中的对齐实体\(y\)的距离拉近(先假设已获得对齐实体),而将\(x\)\(\mathcal{G}_y\)中其它实体的距离推远,如下图中左半部分:

这里采用NCE损失来做实体对齐。令\(p_x\)\(p_y\)为两个知识图谱\(G_x\)\(G_y\)的表征分布,\(p_{\text{pos}}\)表示正实体对\((x,y)\in \mathbb{R}^n \times \mathbb{R}^n\)的表征分布。给定对齐的实体对\((x,y)\sim p_{\text{pos}}\),负样本集合\(\left\{y_i^{-} \in \mathbb{R}^n\right \}_{i=1}^M \stackrel{\text { i.i.d. }}{\sim} p_y\),温度\(\tau\),满足\(\lVert f(\cdot)\rVert=1\)的编码器\(f\),我们有NCE损失为:

\[\begin{aligned} \mathcal{L}_{\mathrm{NCE}} & \triangleq-\log \frac{e^{f(x)^{\top} f(y) / \tau}}{e^{f(x)^{\top} f(y) / \tau}+\sum_i e^{f(x)^{\top} f\left(y_i^{-}\right) / \tau}} \\ &=\underbrace{-\frac{1}{\tau} f(x)^{\top} f(y)}_{\text {alignment }}+\underbrace{\log \left(e^{f(x)^{\top} f(y) / \tau}+\sum_i e^{f(x)^{\top} f\left(y_i^{-}\right) / \tau}\right)}_{\text {uniformity }}\end{aligned} \]

然而,上面的NCE损失还是需要实现知道已对齐的实体,称不上完全的无监督对齐。作者在文中证明了,对于固定的\(\tau\)和满足\(\lVert f(\cdot)\rVert=1\)的编码器\(f\),我们可以为原始的优化目标函数\(\mathcal{L}_{ASM}\)(即NCE)找一个代理上界做为替代:

\[\begin{aligned} \mathcal{L}_{\mathrm{RSM}} &=-\frac{1}{\tau}+\underset{\left\{y_i^{-}\right\}_{i=1}^M { \stackrel{\text{i. i.d .}}{\sim}} p_y}{ \mathbb{E}}\left[\log \left(e^{1 / \tau}+\sum_i e^{f(x)^{\top} f\left(y_i^{-}\right) / \tau}\right)\right] \\ & \leq \mathcal{L}_{\mathrm{ASM}} \leq \mathcal{L}_{\mathrm{RSM}}+\frac{1}{\tau}\left[1-\min _{(x, y) \sim p_{\mathrm{pos}}}\left(f(x)^{\top} f(y)\right)\right] \end{aligned} \]

这里上界等于\(\mathcal{L}_{\text{RSM}}\)加一个常数(\(f(x)^Tf(y)\approx 1\)),因此可以直接优化\(\mathcal{L}_{\text{RSM}}\)。这样我们就可以不用去拉近正样本间的距离,只需要推远负样本间的距离就行了。

在具体的负样本采样上,作者采用了self-negative sampling方式。传统的label-aware counterpart negative sampling(上图的左半部分)给定\(x\in\text{KG}_x\),需要从\(KG_y\)中采负样本\(y_i^-\)来将其距离推远。而这里的Self-negative Sampling(上图的右半部分)只需要从\(KG_x\)从采负样本\(x_i^-\)来将其距离推远即可。接下来我们看为什么可以这么做。

\({\{x_i^-\in \mathbb{R}^n\}}_{i=1}^M\)\({\{y_i^-\in \mathbb{R}^n\}}_{i=1}^M\)分别为从分布\(p_x\)\(p_y\)中独立同分布采样的随机样本,\(S^{d-1}\)\(\mathbb{R}^n\)中的球面,如果存在映射\(f:\mathbb{R}^n\rightarrow S^{d-1}\)能够将\(\mathbb{R}^N\)中的样本映射到球面上,使得\(f(x_i^-)\)\(f(y_i^-)\)\(S^{d-1}\)上满足相同的分布,那么我们有:

\[\lim _{M \rightarrow \infty}\left|\mathcal{L}_{\mathrm{RSM} \mid \lambda, \mathrm{x}}\left(f ; \tau, M, p_{\mathrm{x}}\right)-\mathcal{L}_{\mathrm{RSM} \mid \lambda, \mathrm{x}}\left(f ; \tau, M, p_{\mathrm{y}}\right)\right|=0 \]

这就启发我们在两个知识图谱共享相似的分布、且负样本数量\(M\)充分大的情况下,self-negative sampling 可以看做是 Lable-aware sampling的近似,也即用\(\mathcal{L}_{\mathrm{RSM} \mid \lambda, \mathrm{x}}\left(f ; \tau, M, p_{\mathrm{x}}\right)\)来代替\(\mathcal{L}_{\mathrm{RSM} \mid \lambda, \mathrm{x}}\left(f ; \tau, M, p_{\mathrm{y}}\right)\)

最后,我们可以联合优化\(G_x\)\(G_y\)的损失函数,如下所示:

\[\mathcal{L}=\mathcal{L}_{\mathrm{RSM} \mid \lambda, \mathrm{x}}\left(f ; \tau, M, p_{\mathrm{x}}\right)+\mathcal{L}_{\mathrm{RSM} \mid \lambda, \mathrm{y}}\left(f ; \tau, M, p_{\mathrm{y}}\right) \]

在优化该目标函数的过程中,需要不断对负样本对进行采样,这里为知识图谱\(G_x\)和知识图谱\(G_y\)分别维护了一个负样本队列。整个训练过程如下图所示:

3 参考

  • [1] Alexis Conneau, Guillaume Lample, Marc’Aurelio Ranzato, Ludovic Denoyer, and Hervé Jégou. 2018. Word Translation Without Parallel Data. Proceedings of ICLR.
  • [2] Tomas Mikolov, Quoc V Le, and Ilya Sutskever. Exploiting similarities among languages for ma-chine translation. arXiv preprint arXiv:1309.4168, 2013b.
  • [3] Liu X, Hong H, Wang X, et al. SelfKG: Self-Supervised Entity Alignment in Knowledge Graphs[C]//Proceedings of the ACM Web Conference 2022. 2022: 860-870.

与知识图谱实体对齐:无监督和自监督的方法相似的内容:

知识图谱实体对齐:无监督和自监督的方法

我们在前面介绍的都是有监督的知识图谱对齐方法,它们都需要需要已经对齐好的实体做为种子(锚点),但是在实际场景下可能并没有那么多种子给我们使用。为了解决这个问题,有许多无监督/自监督的知识图谱对齐方法被提出。其中包括基于GAN的方法,基于对比学习的方法等。他们在不需要事先给定锚点的情况下将来自不同知识图谱实体embeddings映射到一个统一的空间。

联邦学习:联邦异构知识图谱数据划分

在联邦场景下,C个知识图谱位于不同的客户端上。知识图谱拥的实体集合之间可能会存在重叠,而其关系集合和元组集合之间则不会重叠。我们联系一下现实场景看这是合理的,比如在不同客户端对应不同银行的情况下,由于不同银行都有着自己的业务流程,所以关系集合不重叠。本文我们来看具体在实验环节怎么去划分联邦异构知识图谱数据。

NebulaGraph实战:1-NebulaGraph安装和基础操作

以前使用Neo4j图数据库,考虑到生产环境需要最终选择了NebulaGraph图数据库。对于数据要求比较高的领域,比如医疗、财务等,暂时还是离不开知识图谱的。后面主要围绕LLM+KG做一些行业解决方案和产品,涉及的技术主要是对话、推荐、检索这3个大的方向,可用于客服系统和聊天机器人等。 1.安装Ne

在线问诊 Python、FastAPI、Neo4j — 构建问题分类器

目录构建字典数据构建 Trie 字典树按实体组装字典问题分析 将问题进行分析,和系统已有的分类进行关联 构建字典数据 将构建的知识图片字典化, 用于后面对问题的解析,下图为症状的字典,其它字典同理 构建 Trie 字典树 将建字典数据,组装集合 cur_dir = '/'.join(os.path.

聊聊wireshark的进阶使用功能

emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步的使用阶段。也是利用部门内部的网络兴趣小组的讨论机会,私下对wireshark的一些进阶功能,比如专家模式、图表等功能进行调研,并结合实际场景抓包分析对功能进行对照说明。

京东APP百亿级商品与车关系数据检索实践

本文主要讲解了京东百亿级商品车型适配数据存储结构设计以及怎样实现适配接口的高性能查询。通过京东百亿级数据缓存架构设计实践案例,简单剖析了jimdb的位图(bitmap)函数和lua脚本应用在高性能场景。希望通过本文,读者可以对缓存的内部结构知识有一定了解,并且能够以最小的内存使用代价将位图(bitmap)灵活应用到各个高性能实际场景。

设计模式学习(二)工厂模式——工厂方法模式+注册表

目录工厂方法模式的瑕疵注册表 工厂方法模式的瑕疵 在前一篇笔记中我们介绍了工厂方法模式,示例的类图如下: 考虑一种情况:现在要在程序运行时,根据外部资源,动态的实例化对象。也就是说在编译期我们无法知道要实例化的对象的类型。因此在实例化的过程中,就需要加以判断。 例如,在我的例子中,要根据连接到主机的

《软件性能测试分析与调优实践之路》第二版-手稿节选-Mysql数据库性能定位与分析

在做MySQL数据的性能定位前,需要先知道MySQL查询时数据库内部的执行过程。只有弄清SQL的执行过程,才能对执行过程中的每一步的性能做定位分析。如图6-2-1所示。 图6-2-1 从图中可以看到,当查询出数据以后,会将数据先返回给执行器,此时执行器先将结果写到查询缓存里面,这样在下次查询相同的数

[转帖]磁盘的排队论的理论和实践

https://zhuanlan.zhihu.com/p/138887556 队列广泛应用在性能分析领域, 通过观察队列可以知道当时系统的繁忙程度和请求的延时, 甚至可以用排队论去做容量规划等. 对存储有一定了解的同学都或多或少听说过, 当iostat的util大于70%以后, 响应时间会如下图所示

知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j

上一篇使用了 CQL 实现了太极拳传承谱,这次使用JAVA SpringBoot 实现,只演示获取信息,源码连接在文章最后 三要素 在知识图谱中,通过三元组 集合的形式来描述事物之间的关系: - 实体:又叫作本体,指客观存在并可相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念或联系,实体是