LM深度模型原理

数据挖掘 神经网络 深度学习 nlp 语言模型 变压器
2022-02-17 23:27:31

语言模型(LM)是预测下一个单词的任务。

深度模型需要编码器吗?从 tensor2tensor 的 ptb 代码中,我发现深度模型不包含编码器。

或者带编码器和不带编码器都可以完成 LM 任务?

1个回答

LM 的目标是学习与一种语言有关的符号序列的概率分布。

也就是说,要学习P(w1,...,wN)资源)。

这种建模可以通过

  1. 给定前面的单词预测下一个单词:P(wi|w1,...,wi1), 或者
  2. 给定中心词(Skip-gram)预测相邻词:P(wi+k|wi),k{2,1,1,2}, 或者
  3. 给定相邻词(CBOW或连续词袋)预测中心词:P(wi|wi2,wi1,wi+1,wi+2),或其他设计。

深度模型需要编码器吗?从 tensor2tensor 的 ptb 代码中,我发现深度模型不包含编码器。

是的。现代 LM 解决方案(所有深度解决方案)试图找到一种编码(嵌入),以帮助他们尽可能接近地预测下一个、相邻或中心词。但是,单词编码可以用作其他模型的常量输入。ptb.py代码调用text_encoder.TokenTextEncoder以接收此类单词编码。

with-encoder 和 without-encoder 都可以做 LM 任务吗?

LM 任务也可以在没有编码器的情况下解决。例如,我们可以使用相邻词的频率表来构建模型(n-gram 建模);例如,所有对 (We, ?) 出现 10K 次,对 (We, can) 出现 100 次,因此 P(can | We) = 0.01。然而,编码器是现代 LM 解决方案的核心。