自然语言处理:RNN

关键词:RNN;吴恩达课堂笔记;自然语言处理;联合概率-后验概率;马尔可夫性;

- - - - - - - - - -

笔记:桃子

日期:2021.8

- - - - - - - - - -

自然语言处理:RNN_第1张图片

目录

概念

联合概率

马尔可夫性

语言模型(language model)

为什么不能用CBOW、word2vec?

传统神经网络模型为什么不适应?

RNN结构

RNN结构及其应用

公式

矩阵形状

Forward

RNN语言模型(例子:创建莎士比亚文风)

RNNLM

RNNLM的评价


概念

RNN(Recurrent Neural Network,循环神经网络)

提出人:托马斯·米科洛夫( 2010 年)

RNN应用:语音识别;音乐创作;DNA序列分析;翻译;

优点:处理时序数据;结构非常简单,易于实现

缺点:许多情况下无法很好地学习到时序数据的长期依赖关系(因为 BPTT 会发生梯度消失和梯度爆炸的问题。)

联合概率

使用乘法定理,把m 个单词的联合概率 P(w1, ··· , wm) 用后验概率来表示(单词序列每次减少一个,分解为后验概率)。

自然语言处理:RNN_第2张图片

 

马尔可夫性

是指未来的状态仅依存于当前状态。此外,当某个事件的概率仅取决于其前面的 N 个事件时,称为“N 阶马尔可夫链”。

语言模型(language model)

语言模型给出了单词序列发生的概率。具体来说,就是使用概率来评估一个单词序列发生的可能性

为什么不能用CBOW、word2vec?

在 CBOW 模型的中间层求单词向量的和,因此上下文的单词顺序会被忽视。比如,(you, say) 和 (say, you) 会被作为相同的内容进行处理。(忽略顺序)

word2vec 是以获取单词的分布式表示为目的的方法,因此一般不会用于语言模型。(单词分布模型)

传统神经网络模型为什么不适应?

1.句子的长度不同,输入层/输出层长度也不同 (input/output长度)

2.不同位置无法共享特征,无法复用已经学习到的知识,减少参数(类似于卷积神经网络中将一部分图片学到的内容快速推广到其他部分) (无法迁移学习)

RNN结构

自然语言处理:RNN_第3张图片

 

自然语言处理:RNN_第4张图片

 

RNN结构及其应用

one-to-one 标准神经网络

one-to-many 音乐创作

many-to-one 情感分类

many-to-many (相等) 命名体识别

many-to-many   (不等)   机器翻译

 

公式

自然语言处理:RNN_第5张图片

RNN 有两个权重,分别是将前一个 RNN 层的输出转化为当前输出的权重 Wh和将输入x转化为当前输出h的权重 Wx 。此外,还有偏置 b。

自然语言处理:RNN_第6张图片

 

各个时刻的 RNN 层接收传给该层的输入和前一个RNN 层的输出,然后据此计算当前时刻的输出ht

矩阵形状

自然语言处理:RNN_第7张图片

 

Forward

自然语言处理:RNN_第8张图片

RNN语言模型(例子:创建莎士比亚文风)

自然语言处理:RNN_第9张图片

 

 输入:一个句子(构建词典:one-hot;index)

标记:EOS句子结尾;unk未知词

输出:y 单词概率

RNNLM

我们将基于 RNN 的语言模型称为 RNNLM(RNN Language Model,RNN 语言模型)。

RNNLM 可以“记忆”目前为止输入的单词,并以此为基础预测接下来会出现的单词。

RNN 层通过从过去到现在继承并传递数据,使得编码和存储过去的信息成为可能。

处理样本语料库“you say goodbye and i say hello.”的RNNLM的例子

第 1 层是 Embedding 层,该层将单词 ID 转化为单词的分布式表示,这个单词向量被输入到 RNN 层。RNN 层向下一层(上方)输出隐藏状态,同时也向下一时刻的 RNN 层(右侧)输出隐藏状态。RNN 层向上方输出的隐藏状态经过 Affine 层,传给 Softmax 层。(RNN 将“you say”这一过去的信息保存为了简短的隐藏状态向量。RNN 层的工作是将这 个信息传送到上方的 Affine 层和下一时刻的 RNN 层。)

自然语言处理:RNN_第10张图片

 

RNNLM的评价

基于困惑度可以评价模型的预测性能。好的模型可以高概率地预测出正确单词,所以困惑度较小(困惑度的最小值是 1.0);而差的模型只能低概率地预测出正确单词,困惑度较大

自然语言处理:RNN_第11张图片

数据量为 N 个。tn  是 one-hot 向量形式的正确解标签,tnk 表示第 n 个数据的第 k 个值,ynk 表示概率分布(神经网络中的 Softmax 的输出)。

参考资料

吴恩达:RNN

book:《深度学习进阶(自然语言处理)》

RNN应用案例

推荐系统遇上深度学习(四十)-使用RNN做基于会话的推荐 - 云+社区 - 腾讯云 (tencent.com)

推荐系统遇上深度学习(四十三)-考虑用户微观行为的电商推荐 - 云+社区 - 腾讯云 (tencent.com)

你可能感兴趣的:(NLP,rnn,语言模型,nlp,自然语言处理)