Language Model

Word2vec

word2vec有两种训练方法

  1. CBOW:在句子序列中,从当前次的上下文去预测当前词
  2. skip-gram:与CBOW相反,输入某个词,预测当前词的上下文

NNLM的训练:输入一个单词的上文,与预测这个单词

word Embedding 存在的问题:多义词问题

ELMO:

ELMO对这一问题有了好的解决:

使用预先训练的语言模型学习好单词的word Embedding,此时多义词无法区分。在实际的下游任务中,句子已经具备了上下文信息,可以根据上下文语义去调整单词的word Embedding,这样调整后的Word Embedding更能表达在上下文中的具体含义。

deep contextualized 词向量的特点:

在word2vec为代表的词向量模型中,每个词对应着一个向量,但是这个模型是根据一个句子赋予每个词汇向量。ELMO提出的方法,在NLP模型的输入之前加一个动态计算词向量的前向量的前向网络BiLMs;这个前向网络是在一个大的数据集上训练好的,同时前向网络的输入及n个更初始的词向量(来自于大的数据集)。

这个词向量论文中是采用字符卷积的方式得到的(如下图),采用英文语料进行文本分类准确率可达95%;也可以采用word2vec、glove等训练的词向量,效果未实现过,暂不好说。

关于深层:

 (盗图)知乎传送门:https://zhuanlan.zhihu.com/p/37684922

这是一个深层双向LSTMs网络,层数为L,每个位置的输出在输入到下一个位置的同时,也作为下一层的同一位置的输入。

以下是前向网络的举例:

ELMO的问题:在特征抽取器方面使用的是LSTM而不是transformer,特征提取能力较弱。

ELMO的输出

最简单的方法:使用最顶层的LSTM输出

优化:对每层(LSTM层等),添加一个权重S_{j}^{task}(一个实数),将每层的向量与权重相乘,然后再乘以一个权重\gamma ^{task}

每层LSTM输出或者每层LSTM学到的东西是不一样的,针对每个任务每层的向量重要性也不一样。

GPT

GPT也是采用两阶段模型进行训练:

  1. 利用语言模型进行预训练
  2. 通过fine-tuning模式解决下游任务

GPT与ELMO的区别:

  • 特征抽取器采用的是transformer,特征抽取能力更强
  • 预训练仍然是以语言模型为目标,但采用的是单向的语言模型

GPT下游任务的改造......

Bert

与GPT完全相同的两阶段模型:

  1. 双向语言模型预训练
  2. Fine-Tuning模式解决下游任务

Bert 最关键两点,一点是特征抽取器采用 Transformer;第二点是预训练的时候采用双向语言模型。

Bert与ELMO的区别:

对比ELMo,虽然都是“双向”,但目标函数其实是不同的。

ELMo是分别以P(w_i| w_1, ...w_{i-1}) 和 P(w_i|w_{i+1}, ...w_n) 作为目标函数,独立训练处两个representation然后拼接。

BERT则是以 P(w_i|w_1,  ...,w_{i-1}, w_{i+1},...,w_n) 作为目标函数训练LM。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值