ELMO模型
- ELMO的本质思想是通过使用针对语言模型训练好的BiLSTM来构建数据的文本表示。
- 基于语言模型的词表示:传统的词向量表示方法(如word2vec和GloVe)将每个词映射为一个固定的向量,无法处理多义词。ELMo模型通过训练一个语言模型,将每个词的表示作为模型的隐藏状态,根据上下文来推断每个词的词向量。这样做的好处是可以结合前后文语境对多义词进行理解。
- 双向LSTM语言模型:ELMo模型使用双向LSTM(长短时记忆网络)作为语言模型。双向LSTM包括一个前向LSTM和一个反向LSTM,分别从左到右和从右到左对输入序列进行建模。前向LSTM通过前k-1个输入序列预测第k个位置的token,反向LSTM则相反。这样可以更好地捕捉上下文信息。
- 训练时,BiLSTM通过前k-1个序列t计算出第k个序列出现的概率p。
- 同理,后向的计算与前向类似,通过后N-k个序列计算第k个序列出现的概率p。
- 于是,BiLSTM训练过程中的目标就是最大化式(3)。
- 其中,θ_LSTM表示前向LSTM网络参数,反向的LSTM网络参数θ_LSTM同理;θx表示映射层的共享参数,θs表示上下文矩阵的参数。
- 训练时,BiLSTM通过前k-1个序列t计算出第k个序列出现的概率p。
- 融合多层表示:ELMo模型还引入了多层表示的概念。它通过将不同层的隐藏状态进行加权融合,得到最终的词向量表示。这种多层表示的融合能够更好地捕捉不同层次的语义信息。
GPT模型
- OpenAI针对ELMO的不足之处提出了GPT模型,其综合了ULMFiT的多阶段迁移方法和模型微调,在NLP领域的任务中取得比ELMO更佳的效果。
- GPT主要使用了生成式方法来训练语言模型。
- GPT的特征抽取器选择了Transformer,它在逐字翻译的过程中屏蔽了后续的语词序列,而且在处理长距离依赖性方面也比LSTM有着更好的表现。
- GPT的模型结构使用了单向的Transformer的解码器,结构如图2所示,并且在训练时只保留了一个多头注意力机制。
- 对于模型的输入处理,只需要在首尾添加各自标记;而输入的序列不止一个序列时,先用分隔符“$”分隔后再进行上述操作。
- GPT训练过程分为2个部分:无监督预训练语言模型和有监督的下游任务微调。
- 无监督训练语言模型时需要最大化如式(6)所示的似然函数。
- 其中,k是上下文窗口大小,Θ是神经网络参数。
- GPT输出词的概率分布为如式(7)所示。
- 其中,h0表示GPT的输入,Wp是单词的位置向量,We是单词的向量。得到h0之后,传入GPT的Transformer解码器中得到hl,通过softmax函数预测出下一个单词的概率。
- 经过无监督预训练之后,GPT根据单词序列预测类标y,如式(8)所示。
- 其中,m表示输入序列的个数,Wy表示预测输出时的参数,y为输出的分类标签。
- 并且需要最大化式(9)所示的函数值,L2是精调任务的损失。
- GPT微调过程中也需要考虑预训练的损失函数,所以最终需要优化的函数如式(10)所示,其中L3是无监督训练阶段的目标函数,L1是预训练任务损失,λ是辅助函数的权重。
BERT模型
- GPT模型虽然在很多任务上已经达到理想的效果,但其本质上仍然是一种单向语言模型,对于语义信息的建模能力有限,且在关系抽取领域的应用也不够普及。
- BERT的特征抽取器选择了特征抽取能力更强的Transformer子结构,模型结构如图3所示。
- 其包含2个任务:Masked-LM和Next Sentence Prediction。
- 所谓的Masked-LM就是指在模型训练的时候在模型的输入序列中遮掉一些单词,进而利用上下文信息来训练模型预测出遮掉的单词。它的主要作用是捕获到词语的信息让模型的预训练不再是单向语言模型的效果。
- Next Sentence Prediction任务就可以捕获到句子的语义信息,从而提升模型对句子的处理能力。
- 不足:
- 掩码标记在实际预测中并不会出现,而且训练时使用了过多的掩码,也导致影响了模型的性能。
- Bert在第一个预训练阶段,假设句子中多个单词被Mask掉,这些被Mask掉的单词之间没有任何关系,是条件独立的,而有时候这些单词之间是有关系的。
XLNet模型
- XLNet提出一种广义自回归预训练方法,通过最大化输入序列的因式,分解所有排列的似然函数的期望来学习双向上下文,克服了BERT的局限性。
- XLNet主要在bert的基础上进行了3个方面的优化:
- 1)提出了重排列语言模型,综合了自回归和自编码模型;
- 自回归语言模型是按照语句的顺序对词汇的单向依赖关系进行建模。
- 自编码语言模型则是通过掩膜机制来进行建模。
- 排列语言模型通过将词汇的顺序进行排列,从而同时建模上下文的双向依赖关系和词汇之间的关系。
- 2)为提升模型对目标位置的敏感引入了双流注意力;
重排列语言建模带来的问题:
- 首先,为了预测当前位置的标记,模型需要知道当前位置的位置信息,而不是其内容信息。
- 其次,为了预测其他位置的标记,模型需要知道当前位置的内容信息。
双流注意力:内容流注意力和查询流注意力。内容流注意力用于学习当前位置的内容信息,而查询流注意力用于学习当前位置的位置信息。
- 3)Transformer-XL代替了Transformer。
Transformer-XL的核心算法:
- 片段递归机制:传统的Transformer模型将输入数据分段处理,每个段独立地输入模型进行训练。而Transformer-XL引入了片段递归机制,使得数据能够在段与段之间流通,从而提升了模型捕获长期依赖的能力。
- 相对位置编码机制:传统Transformer模型使用绝对位置编码,将位置信息与词嵌入进行合并。而Transformer-XL使用相对位置编码,通过引入无参数的sinusoid decoding matrix,对每个片段中的元素进行相对位置编码,从而更好地捕捉上下文关系。
XLM模型
- XLM是一种跨语言语言模型,旨在解决多语言之间的语义理解和翻译问题。
- 在对XLM模型进行训练时,提出了3种预训练任务,包括:因果语言模型(即通过前面的序列预测了当前词出现的概率)、掩码语言模型和翻译语言模型。
- 2021年Jiang等人提出XLM-K跨语种预训练模型,将训练前的语言模型与跨多种语言的更具体的知识相关联,在LAMA数据集的关系抽取任务中取得较好成绩,这对于关系抽取任务来说也是新的突破。
预训练模型对比
- 在预训练模型被提出之前,关系抽取任务的解决思路就是在神经网络中通过
Word2Vec
的低维稠密矩阵去表征字词的语义关系。 - 而后
ELMO模型
利用语言模型进行预训练之后提取对应单词的字词表征以及句子的语义特征,作为新特征补充到具体的关系抽取任务中。 GPT模型
在特征抽取器方面使用了功能更强大的Transformer结构,能够捕捉更长的记忆信息。使用单向的语言模型,相较于传统的神经网络结构更易于并行化。BERT
在ELMO和GPT的基础上综合其各自优点,在针对具体的关系抽取任务训练时,使用掩码语言模型MLM学习大量的语言本身知识,从而应用到关系抽取任务中。- 清华大学提出的
ENRIE
引入了词与短语和百度公司提出的ENRIE1.0
着重改进了掩码策略,在进行关系抽取任务时引入了外部知识到预训练的过程中,从而学习到更多的特征信息。 - 在此基础上,
MTDNN
以及ENRIE2.0
也在预训练过程中引入了多任务学习来提高关系抽取的训练效果。 BERT-WWM
相比于BERT则通过改进掩码策略——对词进行掩码。RoBERTa
使用动态掩码策略相比于BERT少了预测下一句的任务,同时用更多的数据对模型进行训练进而提升模型效果。Span-BERT
相较于RoBERTa提出了一种分词级别的预训练方法,选择对邻接分词进行掩码,在关系抽取任务中效果也有更好的表现。ALBERT
、TINYBERT
以及DistilBER
T等通过结构设计以及蒸馏来实现模型轻量化,使关系抽取任务更容易实现。- 基于BERT的
NEZHA
模型则利用相对位置编码策略进行模型训练。 KnowBERT-W+W
通过将知识图谱的三元组信息、软位置编码以及可见矩阵引入到预训练模型中,从而学习到特殊领域的语义知识,进一步提升关系抽取的效果。
数据集
评测方法
- 针对关系抽取的结果,一般由准确率(Precision)、召回率(Recall)和F1值(F1-Measure)这3项指标进行评价。
研究挑战
- 资源消耗巨大。预训练规模越来越大,消耗的计算资源也越来越庞大。
- 关系类型OOV问题。关系类型OOV即为Out of Vocabulary。
- 关系重叠。数据中不同实体之间可能存在多种关系,这种现象称为关系重叠。
未来趋势
- 模型轻量化。
- 优化预训练目标。
- 开放领域的关系抽取。
- 引入外部知识。