2020自然语言处理 ElMo 模型
2020-03-17 本文已影响0人
zidea
elmo
elmo.jpeg
问题
- Have you paid that money to the bank yet? (银行)
- It is safest to deposit your money in the bank. (银行)
- They stood on the river bank to fish (岸边)
每一个句子都出现 bank,bank 他们是不同 token 但是同一 type。过去只要 type 一样的,他们 word embedding 就是一样。希望机器给不同意思 token 给出不用 word Embedding. 如何认为参与添加 type 这样做起来???。
目标
- 希望每一个词汇 token 都有一个 word Embedding 与之对应
- 词汇 token 由其所处上下文来决定
ELMo(Embeddings from Language Model)
ELMo 是基于 RNN 的语言模型
elmo.jpeg
这个 RNN 模型就是预测下一个词,学习完之后我们就具有上下文的词嵌入。现在同一个词如果上下文不同输出词向量就不同。随意是相同 token 但是因为之前词汇不同。
ELMo 通常可以叠很多层神经网络,每一层都有输出,在 ELMo 模型会把每一个层输出都组合起来进行输出。
这里和 参数取值是和接下来使用词向量要做的任务相关,不同任务 和 取值也会不同,所以 和 作为接下来模型参数一部分被学出来。
- token 表示没有上下文情况获取词向量
- LSTM 1 和 LSTM 2 就是 ELMo 的隐藏层,词汇通过每一层都会得到一个词嵌入向量。
- 然后我们通过对每一层输出词嵌入向量做加权得到最终的输出
横坐标为要做的语言任务,而纵坐标表示对每一个层权重的大小
任务分类
- SRL (语义角色标志)
- Coref (消歧)主要做的就是将代名词所指代的名称找出来
- SNLI (自然语言推理)
- SQuAD (阅读理解,问答系统)
- SST-S (情感分析)