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

我们在上一篇博客中介绍如何对基于平移嵌入+对齐损失来完成知识图谱中的实体对齐。这些方法都是通过两个平移嵌入模型来将知识图谱G1和G2的重叠实体分别进行嵌入,并加上一个对齐损失来完成对齐。不过,除了基于平移的嵌入模型之外,是否还有其它方式呢?答案是肯定的。目前已经提出了许多基于GNN的实体对齐方法,这些方法不仅采用GNN捕捉更多的实体结构化信息,还通过诸如参数共享、参数交换等方式在embedding模块中就使实体的embeddings尽可能统一到一个向量空间。
在知识图谱领域,最重要的任务之一就是实体对齐 (entity alignment, EA)。实体对齐旨在从不同的知识图谱中识别出表示同一个现实对象的实体。由于embedding模块独立地学习知识图谱的emebddings,这使得多个知识图谱的embeddings落入到不同的向量空间中。而alignment模块旨在将两个知识图谱的embeddings统一(unify)到同样的向量空间中,这样就能够识别出对齐的实体了,而这个统一操作也是知识图谱对齐最大的挑战。
在迁移学习/领域自适应中,我们常常需要寻找领域不变的表征(Domain-invariant Representation),这种表示可被认为是学习到各领域之间的共性,并基于此共性进行迁移。而获取这个表征的过程就与深度学习中的“表征学习”联系紧密。生成模型,自监督学习/对比学习和最近流行的因果表征学习都可以视为获取良好的领域不变表征的工具。
推荐系统中常常面临冷启动和用户交互数据稀疏的问题。解决这个问题的一个手段就是对用户在多个领域(domain)的日志数据联合起来进行建模,而多视角(multi view)/跨域(cross domain)推荐模型就是一种常见的跨域数据联合建模方式,它会将多个视角/领域对应的特征映射到一个共享的隐空间(latent space)。跨领域推荐在实际应用中常常面临隐私性的挑战,其一是不同用户的数据难以合法地进行集中化收集;其二是其使用的迁移学习模型跨不同的域和数据集进行映射,这常常会关联到不同的组织机构,同样会面临隐私问题[2]。此时上面提到的需要将数据集中起来的跨域推荐方法就不再行得通了,需要考虑在联邦场景下的跨域推荐模型。
在实际应用中我们常常面临一系列来自不同数据持有方的知识图谱,我们将其称为多源知识图谱(Multi-Source KG)。按照数据异构程度可分为两种形式,第一种类型中各知识图谱的领域(domain)相同,比如都是来自不同银行的用户知识图谱。这些知识图谱中也可能有实体重叠(overlapped),因为在日常生活中,一个用户很可能在不同银行都产生有相关的数据(元组);第二种情况数据更具有异构性,各个知识图谱之间是跨领域(cross domain)的 。
时空数据挖掘做为智慧城市的重要组成部分,和我们的日常生活息息相关。如我们打开地图软件,会根据交通流量的预测为我们推荐路线;通过网约车软件下单,会为我们就近做订单匹配;通过外卖软件点外卖,会为我们就近做外卖员匹配,等等。然而,时空数据挖掘在实际使用的过程中会面临一个难点,那就是跨平台协作。比如在疫情期间,我们需要对确诊病例的行程轨迹做追溯。而我们知道,一个人在行程中可能会使用多个软件,比如滴滴出行、共享单车乃至健身软件等。而如何让信息在不同平台间共享便成为难点。
众所周知,Python中的列表和numpy数组都支持用begin: end语法来表示[begin, end)区间的的切片索引。numpy数组还支持用列表和numpy数组来表示切片索引,而列表则不支持。Pytorch的torch.utils.data.Dataset数据集支持单元素索引,但不支持切片。
SSGD算法由于通信比较频繁,在通信与计算比较大时(不同节点位于不同的地理位置),难以取得理想的加速效果。模型平均方法(MA)中,每个工作节点会根据本地数据对本地模型进行多轮的迭代更新,直到本地模型收敛说本地迭代轮数超过一个预设的阈值,再进行一次全局的模型平均,并以此均值做为最新的全局模型继续训练。但是MA算法通常会带来精度损失,实践中需要仔细调整参数设置,或者通过增加数据块粒度的动量来获取更好的效果。EASGD方法则不强求全局模型的一致性,而是为每个工作节点保持了独立的探索能力。
其中,SSGD算法每次依据来自 𝐾个不同的工作节点上的样本的梯度来更新模型,设每个工作节点上的小批量大小为 𝑏,则该算法等价于批量大小为 𝑏𝐾 的小批量随机梯度下降法。尽管梯度的计算可以被分摊到个计算节点上,然而梯度下降的迭代是串行的。每轮迭代中,Spark会执行同步屏障(synchronization barrier)来确保在各worker开始下一轮迭代前w已被更新完毕。如果存在掉队者(stragglers),其它worker就会空闲(idle)等待,直到下一轮迭代。
浙公网安备 33010602011771号