在大模型的预训练阶段,通常可以利用知识图谱中的实体、三元组或路径作为额外的输入或目标,使大模型能够学习到知识图谱中的语义信息
利用知识图谱作为大模型的辅助
模型预训练阶段
知识图谱转化为文本语料库:
代表论文:(Knowledge Graph Based Synthetic Corpus Generation for Knowledge-Enhanced Language Model Pre-training)
将知识图谱转换为合成自然语言句子以增强现有的预训练语料库,使其能够在不改变架构的情况下集成到预训练语言模型中,从而在提供事实知识是必不可少的知识密集型任务(例如问答)等任务中,能够潜在地降低有毒输出,提高真实性。
使用TEKGEN语言化管道来将知识图谱转化为知识增强语言模型 (Knowledge-Enhanced Language Model,KELM) 语料库。
-
•
启发式对齐器(一个大型启发式构造的、能够自动对齐 Wikipedia(文本) 和 Wikidata KG(知识图谱) 三元组的训练语料库)
-
•
一个将 KG 三元组转换为文本的文本到文本生成器(T5)
-
•
生成三元组组合语言的实体子图创建器
-
•
删除低质量输出的后处理过滤器
输出结果是一个包含整个 Wikidata KG 作为自然文本的语料库,我们称之为知识增强语言模型语料库
将知识图谱结构嵌入大语言模型
从文本捕捉事实知识,并利用丰富的文本信息,在相同规模和算力下实现更好效果
代表文章:ERNIE: Enhanced Language Representation with Informative Entities
字词混合的自监督对比学习预训练技术
-
•
对比学习直接学习数据本身,能够探索数据结构信息来帮助模型学习,缓解传统模型训练策略对直接语义监督的依赖,提升模型鲁棒性和泛化能力。其可以应用于预训练阶段和finetune阶段,当前已将该任务适配至阅读理解任务、句对分类任务、句对匹配任务、单句分类任务和序列标注任务。
-
•
学术界当前对比训练中引入对比样本的方式分为两种:
-
•
通过增加、删除或者修改部分token的方式构建对比样本 —> 易改变原始文本的语义
-
•
利用dropout的随机性构建对比样本 –-> 不会改变原始文本的语义,但却倾向于认为相同或相似长度的句子在语义上更相似
-
-
•
基于字词混合粒度切分构建对比样本同时解决了上述两个问题。如下图所示
知识图谱
{实体,关系,实体}
知识嵌入算法:对于一个三元组,h实体向量加上r关系向量后应该尽可能地等于t实体向量
算法要做的就是通过优化向量的取值,让知识图谱中的每一个三元组都尽可能满足h + r = t,这样就可以得到一个关于知识图谱的最优向量表示。
该模型解决了以下问题:
-
•
结构化的知识编码:对于抽象的知识信息,需要将它们进行编码,这样才能够将知识用于语言表征。
-
•
异质信息融合:显然,BERT预训练时对单词的编码和对知识的编码是不同的,虽然都是将其转化为向量,但是却位于不同的向量空间,因此就需要对模型进行设计,来实现对于词汇、句法和知识信息的融合。
将三元组和原句子一起作为模型输入
那么三元组(用A段表示)可以代表了一对实体以及其关系,这个关系具有一定的语义信息,比如逻辑关系,这个我们一般认为是知识(Knowledge),而元语句(用B段表示)则代表着原始的文本信息(Plain Text)。为了让模型能学习到这个知识图谱的关系,可以采用以下两种方法:
-
1.
将三元组中的某个实体或者关系去掉,然后通过B段去预测A段的masked部分。
-
2.
将B段的某个实体去掉,通过A段去预测B段被masked的部分。
将结构化知识直接注入大型语言模型中
SKILL: Structured Knowledge Infusion for Large Language Models
-
•
训练语料库:
-
•
使用Wikidata KG中的三元组格式,以及由Wikidata KG转换而来的KELM语料库(包含合成的自然语言句子)。
-
•
为了防止模型在自然语言理解任务上的性能下降,将Wikidata语料库或KELM语料库与C4自然语言文本按50:50的比例混合,用于知识注入训练数据。
-
-
•
训练方法:
-
•
T5模型通过掩码语言建模(MLM)进行训练,具体包括随机掩码跨度破坏(random span corruption)。
-
•
在知识注入训练中应用显著跨度掩码(salient span masking)。对于知识三元组,掩码主语或宾语实体;对于KELM句子,识别对齐的三元组,并掩码与三元组中的主语或宾语对应的完整跨度。
-
引入知识图谱中的实体和细粒度关系
细粒度关系指的是在知识图谱(Knowledge Graph, KG)中,描述实体之间具体且明确的关系类型。这些关系不仅仅是简单的连接或关联,而是具有具体语义的、详细的关系类型。例如,“出生地”、“职业”、“获得奖项”等就是细粒度关系
知识聚合器(Knowledge Aggregator)
a. 知识图谱注意力(Knowledge Graph Attention)
知识图谱注意力模块用于对知识图谱中的实体和关系进行编码,并考虑它们的图结构。这部分引入了实体之间的细粒度关系,通过以下步骤进行处理:
-
•
实体和关系嵌入:使用TransE算法将知识图谱中的实体和关系嵌入到向量空间中。
-
•
图结构编码:通过引入可见矩阵(visible matrix),仅允许知识图谱中相邻的实体和关系在注意力机制中相互可见,从而捕捉图结构信息。
b. 实体跨图注意力(Entity-level Cross-KG Attention)
实体跨图注意力模块用于计算文本中实体跨度与知识图谱中相关实体和关系之间的交互,从而生成增强的实体表示。这部分的处理步骤包括:
-
•
实体跨度表示:通过自注意力机制(self-attentive span pooling)对文本中的实体跨度进行编码。
-
•
跨图注意力机制:使用多头注意力机制,让文本中的实体跨度作为查询,知识图谱中的实体和关系作为键和值,从而计算交互注意力分数,生成增强的实体表示。
增强大模型的推理能力
LaMDA: Language Models for Dialog Applications
基本原理是在大模型的推理阶段,利用知识图谱中的实体、关系和属性等信息进行编码建模,使大模型能够根据知识图谱中的语义信息进行推理。
LaMDA 中使用专门的LaMDA-Research 模型来从知识图谱中检索符合要求的三元组,来作为大模型输出的事实凭据,从而确保了大模型知识的准确性,其架构见下图所示。
有两个模型:
-
•
LaMDA-Base:生成初步回答,不涉及外部知识检索。
-
•
训练数据:大规模对话数据和网页文本。
-
•
训练目标:语言生成和理解,预测下一个词。
-
•
知识注入:无特定的外部知识注入机制。
LaMDA-Research::细化回答并检索外部知识图谱,生成基于事实的详细回答。
-
•
训练数据:相同的大规模对话数据和网页文本。
-
•
训练目标:包括基础语言生成和理解,以及集成外部知识检索和细粒度信息处理。
-
•
知识注入:通过多任务学习和外部知识注入机制,使模型能够生成更准确、基于事实的响应。
-
•
微调:包括安全性和事实基础性微调,以提高生成响应的质量和可靠性。
-
检索增强生成(Retrieval-augmented generation,RAG)
知识图谱增强大模型的泛化,用于解决精确的知识获取,以及协调大模型自身无法更新知识的问题
RAG不仅仅针对知识图谱,而是针对文档索引来进行的外部知识的引入
检索增强生成(Retrieval Augmented Generation, RAG)是一种技术,它通过从数据源中检索信息来辅助大语言模型(Large Language Model, LLM)生成答案。简而言之,RAG 结合了搜索技术和大语言模型的提示词功能,即向模型提出问题,并以搜索算法找到的信息作为背景上下文,这些查询和检索到的上下文信息都会被整合并发送给大语言模型的提示中。
相比于 LaMDA检索知识图谱这种精确的知识,RAG 本身能够检索更为广泛的文档,但检索结果精确度受到相当的损失
基础RAG: 将文本切分成小段,然后利用某种 Transformer 编码器模型,将这些文本段转换成向量形式。接着,把所有向量汇集到一个索引里。最后,你需要为大语言模型(Large Language Model, LLM)制定一个提示词,这个提示词会指导模型根据我们在搜索步骤中找到的上下文信息来回答用户的查询。
在应用阶段,根据用户的提问,将提问问题向量化处理,然后通过高效的检索方法,从向量数据库中召回与提问最相关的知识,并融入 Prompt;大模型参考当前提问和相关知识,生成相应的答案。
利用大模型辅助知识图谱构建
知识抽取
利用大模型的自然语言理解能力来从文本或其他数据源中抽取实体、关系和属性,构建、补全和持续更新知识图谱中的内容
简单提问
将知识图谱补全中的三个任务三元组分类、关系预测和实体(链接)预测转化为大模型中的简单提示问题,并通过问答的方法从大模型中获得结果
输入一个三元组,利用大模型完成以下任务
-
1.
三元组分类(Triple Classification):
-
•
判断给定的三元组是否真实。
-
-
2.
关系预测(Relation Prediction):
-
•
预测两个实体之间的关系是什么。
-
-
3.
实体预测(Entity Prediction):
-
•
预测在特定关系下的实体是什么
-
融入结构信息
代表论文:
Making Large Language Models Perform Better in Knowledge Graph Completion
将知识图谱中的实体、关系等结构信息融入大模型,实现大模型中结构感知的推理,能够获得更有效和准确的知识图谱补全。
知识前缀适配器(KoPA),通过预训练结构嵌入和指令调优(instruction tuning)来增强大语言模型的推理能力。
-
•
结构嵌入预训练:
-
•
通过自监督的方式预训练实体和关系的结构嵌入。这些嵌入捕捉了知识图谱中的复杂结构信息,如子图结构和关系模式。
-
•
使用负采样技术来优化嵌入,从而更好地反映知识图谱的结构信息。
-
-
•
知识前缀适配器:
-
•
结构嵌入在不同于文本表示空间的表示空间中训练。因此,需要一个适配器将结构嵌入投影到文本表示空间。
-
•
具体来说,适配器将结构嵌入转换为虚拟知识标记,并作为前缀添加到输入序列中。这样,后续的文本标记可以通过单向注意力机制“看到”这些前缀,增强模型的结构感知能力。
-
-
•
模型训练与推理:
-
•
在训练过程中,冻结预训练的结构嵌入,只优化适配器。这使得适配器能够学会将结构知识映射到文本表示,从而在推理阶段对新三元组进行有效预测。
-
利用大模型引导的知识图谱复杂推理
将复杂的知识图谱推理转化为为上下文知识图谱搜索和逻辑查询推理的组合,以利用图提取算法和大语言模型双方的优势来实现复杂推理的更高性能。
利用大语言模型生成知识图谱的查询语言,或者利用大模型的语言理解和生成能力,来实现知识图谱的问答,为知识图谱用户提供自然语言的交互方式。
图模互补
在知识图谱中,事件图谱是知识图谱中特殊的一类,是与时间强相关的知识的表示。
大模型擅长于进行事件抽取、事件之间的关系检测、时间的检测与归一化等。
与此同时,大模型则不擅长与进行时间方面的推理。
由此,将大模型与知识图谱结合,既可以极大地方便构建时间知识图谱、事件图谱和事理图谱,同时所构建的图谱又可以用于增强大模型的复杂时间推理能力,并提升推理结果的可解释型
反馈机制
如何在知识图谱与大模型之间建立有效的反馈机制,使两者能够根据不同的任务和场景进行动态调整和优化至关重要。
-
•
一方面大模型会利用知识图谱和用户的查询作为输入,来生成合适的问答答案。
-
•
另一方面则是通过大模型生成知识图谱的检索语句,并利用图数据库执行结果的反馈来纠正可能存在的错误。最后,这些结果以提示工程的方式输入到大模型中,并生成最终的答案来实现与用户的交互。
原文:
“新KG”视点 | 知识图谱与大语言模型协同模式探究 (qq.com)
知识图谱增强的大语言模型
模型预训练
目的:利用外部知识,例如KG、词典或其他文本描述,加强模型的语言表示能力。
方法:
-
•
利用KG中的实体和关系信息,如GLM、K-Adapter等,直接将文本中的实体与KG实体对齐,从而捕捉文本中未明示的知识,利用实体关系的描述增强语言模型的表示能力。
优点:能够理解处理更复杂的关系,捕捉文本中未明示的知识
缺点:效果依赖于KG的质量和完整性
-
•
使用词典或其他形式的文本描述为模型提供丰富的背景知识,如E-BERT、K-BERT等,帮助模型更好地理解文本中的罕见词或实体,与其在词典中的定义描述对齐,提供更丰富的上下文信息及背景知识
有助于更好地理解和解释文本
该方法依赖于词典或描述文本的质量和完整性,对于非常专业或领域特定的文本,可能缺乏足够的描述信息。
模型知识融合
-
•
基于检索增强的方法利用KG增强LLM的预测能力,该方法在生成结果或推理过程中,从大型外部KG中抽取与输入相关的外部信息辅助推理
主要优点在于能够动态利用丰富的外部知识,但可能需要更多的计算资源
-
•
深度集成方法,这类方法在模型架构的多个层次上融合语言模型和KG的信息,使两者能够深入交互并相互补充
优点在于允许在整个模型架构的深入整合和交互,但可能需要大量的计算资源和复杂的模型设计
模型可解释性
-
•
知识探测方法通过设计探测任务评估模型中的知识,尝试直接从模型中提取特定的知识。
-
•
知识图谱增强推理能力和可解释性。
-
•
神经元与知识关联方法尝试探索模型的内部结构,解释模型如何存储知识,这类方法为模型的内部知识编码提供直观的解释
大语言模型增强的知识图谱
知识图谱构建
-
•
KG与深度学习模型交互,
基于现有的深度学习模型,如RNN、LSTM等,并令它们与KG进行交互,从文本中提取和利用知识,结合深度学习的学习效果和KG的丰富性,处理大量的文本数据并从中提取知识,但由于依赖深度学习模型,这类方法可能需要大量的计算资源。
-
•
KG文本化方法
通常将KG转化为文本格式并使用语言模型进行处理,能够充分利用预训练模型的优势,处理更复杂的关系和上下文,但转换过程可能导致信息丢失,且需要大量的数据和计算资源。
-
•
KG与LLM融合
直接将KG和大型预训练模型(如BERT、GPT-3)结合在一起,直接从LLM中提取知识,处理大量的数据和复杂的关系,但由于依赖特定的预训练模型,可能会受到模型局限性的影响,且对计算资源的需求量大。
-
•
KG自动生成与拓展
从现有的数据和知识中自动生成和扩展KG,能够自动地生成和更新KG,处理大量数据和关系,但自动生成的知识可能不够准确,且需要复杂的算法和大量的计算资源。
-
•
KG与符号计算结合的方法
结合了KG和符号计算方法,如知识蒸馏,能够结合符号计算的精确性和KG的丰富性,可以处理复杂的关系和上下文,但需要复杂的算法和大量的计算资源,且对数据的质量和完整性有很高的要求。
知识图谱补全
利用Seq2Seq模型,如Transformer,对KG的实体和关系进行编码,并生成目标实体或关系。
核心优势在于其自然的处理方式,可直接将KG任务转化为文本生成任务,但可能面临处理长序列的挑战,或需要特定的训练策略优化性能
-
•
对比学习和负采样策略方法
-
•
语言模型抽取方法
-
•
语义和结构融合的方法