深度语言模型-Cove

2021-02-05  本文已影响0人  南朝容止

2017 年,Salesforce 的 Bryan McCann 等人发表了一篇文章 Learned in Translation: Contextualized Word Vectors。

主要流程

第一步:

采用sequence to sequence架构模型,其训练任务为英文和德文之间的转换。这个训练任务是Encode和Decode同步的,同时是一个在有监督的训练语料上进行预训练。


图一

第二步:

而后用第一步预训练好的模型,只是用其Encoder的输出和每个word的 Embedding向量拼接, 做为其它下游任务的输入,而下游的task-specific 模型,根据自己需要来定。 文中给出了包括文本分类,Question Answering,Natural Language Inference 和 SQuAD 等等几种下游任务。

下面主要说下第一步的Encoder和Decoder怎么设计?

Encoder:

输入:每个word的GloVe Embedding: word embedding

中间: 双层双向的LSTM,同时文章自己给出了命名,叫MT-LSTM, 其中MT为machine translation。

image.png
输出: 每个词都会输出一个一个向量 zt

Decoder:

image.png

输入:
当前词t的输入是采用:
上一个词Encoder的输出 zt-1
上一个词Decoder的输出 ht-1
上一个词的注意力向量[图片上传中...(image.png-302cc3-1612492736851-0)]

image.png . 其计算方式为:
image.png image.png
可以看到主要计算中主要依赖当前词解码器的输出ht, 由于计算下一个词的时候才使用上一个词的注意力,所以此时已经有上一个词的ht-1,因此就能算出上一个词的注意力。

中间: 采用 双层单向 的LSTM

输出: 当前词的LSTM输出为当前词的向量,可以算损失。 同时当前词的输出向量还可以为下一个词预测提供输入的一部分。

优点是:

缺点:

上一篇 下一篇

猜你喜欢

热点阅读