【文本】词嵌入经典模型:从one-hot到BERT
one-hot编码(独热编码):
- 根据词表的所有词构建一个向量特征。每一个文段中每个单词有一个词向量(二进制且只有一位为1) --- 稀疏、缺乏语义(father&mother;like&love)
word2vec编码:
- 原则:"一个词被周围的词所代表"
- 有两种模型:CBOW(Continuous Bag of Words) 上下文单词预测目标单词(完形填空) 和 Skip-Gram 目标单词预测上下文单词(造句),中心词可替换,上下文不变,那就是相似的词
- 步骤:
- 随机初始化向量表示,经历无数次训练(如下)
- 正样本:-(正向传播 )将中心词和上下文两个词向量输入神经网络,模型中输出的是"是否为上下文的概率"-(反向传播)概率不符合实际(损失函数大),则更新神经网络模型的参数(根据梯度调整权重),以及两个词的向量表达,使得下次预测更接近于1(学到了中心词的语义)
- 负样本:使其概率更接近0
- --- 确乏全文信息;无法解决一词多义
Bert模型
- Bert模型基于transformer架构,加入句向量(解决全文信息),可以处理一词多义
- 苹果(中心词)的语义信息,由句子内所有上下文的单词有关,整个句子信息都要混入当前单词中(self-attention,用文本中的更多上下词,增加目标此语义,中心词语义=∑所有词*权重,权重由模型训练)
- --- 考虑完形填空(MLM任务 ),在训练时随机替换句子中++一些++词为mask。一个单词被mask掉后,根据句子中其他词的语义中混合的信息,反向猜出被mask的词,输出的mask词预测是一个概率分布,表示每个单词被成功预测的概率,目标是向1训练(减少损失函数);没有负样本训练。
- --- 考虑续写(NSP任务 ),即句子间训练(模型接收一对句子,判断第二个句子是否是第一个句子的下一句),帮助理解句子间逻辑
- --- CLS特殊符号,排入开头位值,但是没有自己语义(所以能够表示整个句子信息---存在争议)