Mxnet (39): 上下文敏感的nlp模型:BERT
word2vec和GloVe之类的词嵌入模型是与上下文无关。他们将相同的预训练向量分配给相同的单词,而不管该单词的上下文(如果有)。他们很难用自然语言处理好多义性或复杂的语义。这种上下文无关的很有局限性,因此出现了很多上下文敏感的模型,ELMo为其中之一。 ELMo将来自预训练的双向LSTM的所有中间层表示形式组合为输出表示形式,然后ELMo表示将作为附加功能添加到下游任务的现有模型中。虽然这解决了上下文无感的问题,但是解决的方案取决与特定的任务体系。但是,为每个自然语言任务设计特定的体系比价困难。为此GPT模型设计为用于上下文相关且非任务确定的通用模型。GPT建立在Transformer解码器上,可以预训练将用于表示文本序列的语言模型。当将GPT应用于下游任务时,语言模型的输出将被馈送到添加的线性输出层中,以预测任务的标签。但是由于模型具有自回归特征,只能向前看(从左到右),在“我去银行存钱”和“我去银行坐下”的情况下,由于“银行”对左侧的上下文很敏感,因此GPT将为“银行”返回相同的表示形式有不同的含义。 ELMo双向编码上下文,GPT与任务无关。BERT吸取了二者的有点,可以双向编码上下文,使用预训练的Transformer编码器,BERT可以基于其双向上下文表示任何token。下图展示了三者的差异: 用于下游任务的监督学习时: BERT表示将被输入到一个附加的输出层中