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


    1 导引

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

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

    2.1 基于GAN的方法

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

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

    W=argminWMd(R)WXYF

    其中d为embeddings维度,X,YRd×n为字典embeddings矩阵,Md(R)d×d的实矩阵空间。源单词s的对应翻译单词定义为t=argmaxtcos(Wxs,yt)

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

    W=argminWOd(R)WXYF=UVT, with UΣVT=SVD(YXT)

    事实上,若两个语言embedding空间的维度不相同,即xiRd1yiRd2时,即WRd2×d1不可逆时,亦可通过SGD来求数值解[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是如何训练的。设X={x1,,xn}Y={y1,,ym}分别为源语言和目标语言embeddings的集合。GAN的判别器需要区分从WX={Wx1,,Wxn}Y中随机采样的元素,而生成器(参数为W)要尽可能去阻止判别器做出正确的判断:

    LD(θDW)=1nni=1logPθD(source=1Wxi)1mmi=1logPθD(source=0yi).

    LW(WθD)=1nni=1logPθD(source =0Wxi)1mmi=1logPθD(source=1yi)

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

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

    W(1+β)Wβ(WWT)W

    其中经验表明β=0.01表现良好。

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

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

    C S L S(Wxs,xt)=2cos(Wxs,yt)rT(Wxs)rS(yt)

    这里rT(Wxs)xs和其目标向量空间中的K个邻居间的平均距离:

    rT(Wxs)=1KytNT(Wxs)cos(Wxs,yt)

    同理定义rS(yt)yt和其K个邻居间的平均距离。

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

    2.2 基于对比学习的方法

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

    这里采用NCE损失来做实体对齐。令pxpy为两个知识图谱GxGy的表征分布,ppos表示正实体对(x,y)Rn×Rn的表征分布。给定对齐的实体对(x,y)ppos,负样本集合{yiRn}Mi=1 i.i.d. py,温度τ,满足f()=1的编码器f,我们有NCE损失为:

    LNCElogef(x)f(y)/τef(x)f(y)/τ+ief(x)f(yi)/τ=1τf(x)f(y)alignment +log(ef(x)f(y)/τ+ief(x)f(yi)/τ)uniformity .

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

    LRSM=1τ+E{yi}Mi=1i. i.d .py[log(e1/τ+ief(x)f(yi)/τ)]LASMLRSM+1τ[1min

    这里上界等于\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_xp_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_xG_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.

    __EOF__

  • 本文作者: 猎户座
  • 本文链接: https://www.cnblogs.com/orion-orion/p/16814589.html
  • 关于博主: 研究生小菜一枚,机器学习半吊子,并行计算混子。
  • 版权声明: 欢迎您对我的文章进行转载,但请务必保留原始出处哦(*^▽^*)。
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    linux 定时执行脚本
    PHREEQC建模及典型案例解析与高阶拓展应用【反向“编译”、“玩转”后处理技术、GibbsStudio和PhreePlo方法】
    Python 数据清洗:pd.cut()分箱统计
    【每日一题】1175. 质数排列
    C#在.NET Windows窗体应用中使用LINQtoSQL
    【路径优化】基于改进的RRT算法的全局路径规划(Matlab代码实现)
    网页版”高德地图“如何设置默认城市?
    day10每日3题(3):数组中的字符串匹配
    【SSR服务端渲染+CSR客户端渲染+post请求+get请求+总结】三种开启服务器的方法总结
    C#8.0本质论第八章--接口
  • 原文地址:https://www.cnblogs.com/orion-orion/p/16814589.html