自然语言处理(11:RNN(RNN的前置知识和引入)

系列文章目录

第一章 1:同义词词典和基于计数方法语料库预处理

第一章 2:基于计数方法的分布式表示和假设,共现矩阵,向量相似度

第一章 3:基于计数方法的改进以及总结

第二章 1:word2vec

第二章 2:word2vec和CBOW模型的初步实现

第二章 3:CBOW模型的完整实现

第二章 4:CBOW模型的补充和skip-gram模型的理论

第三章 1:word2vec的高速化(CBOW的改进)

第三章 2:word2vec高速化(CBOW的二次改进)

第三章 3:改进版word2vec的学习以及总结

第四章 1:RNN(RNN的前置知识和引入)

第四章 2:RNN(RNN的正式介绍)


文章目录

目录

系列文章目录

文章目录

前言

一、概率和语言模型

1.概率视角下的word2vec

2.语言模型

3.将CBOW模型用作语言模型?

总结



前言

上一次我们学习了最后的改进版word2vec的学习以及总结,(链接在此 自然语言处理(10:改进版word2vec的学习以及总结)-CSDN博客),且到目前为止,我们看到的神经网络都是前馈型神经网络。前馈是指网络的传播方向是单向的。具体地说,先将输入信号传 给下一层(隐藏层),接收到信号的层也同样传给下一层,然后再传给下一 层......像这样,信号仅在一个方向上传播。 虽然前馈网络结构简单、易于理解,但是可以应用于许多任务中。不过, 这种网络存在一个大问题,就是不能很好地处理时间序列数据(以下简称为 "时序数据")。更确切地说,单纯的前馈网络无法充分学习时序数据的性质(模式)。于是,RNN(Recurrent Neural Network,循环神经网络)便应运而生。

接下来这几节我们将指出前馈网络的问题,并介绍RNN如何很好地解决这些问 题。然后,我们会详细解释RNN的结构。


一、概率和语言模型

1.概率视角下的word2vec

我们先复习一下word2vec的CBOW模型。这里,我们来考虑由单词 序列w1,w2,···,wT 表示的语料库,将第t个单词作为目标词,将它左右的 (第t−1个和第t+1个)单词作为上下文。

注:目标词是指中间的单词,上下文是指目标词周围的单词。

且CBOW模型所做的事情就是从上下文(wt−1和wt+1) 预测目标词(wt)。

下面,我们用数学式来表示"当给定wt−1和wt+1时目标词是wt的概率",如下式所示:

CBOW模型对上式这一后验概率进行建模。这个后验概率表示"当给定wt−1和wt+1时wt发生的概率"。这是窗口大小为1时的CBOW模型。 顺便提一下,我们之前考虑的窗口都是左右对称的。这里我们将上下文限定为左侧窗口,比如下图所示的情况。

仅将左侧 2个单词作为上下文的情况下,CBOW模型输出的概率如下式所示:

为啥这里上下文只用了左侧的呢?(即左侧2个单词,右侧0个单词。)这样设定的理由是提前考虑了后面要说的语言模型。

使用上式的写法,CBOW模型的损失函数可以写成下式。下式 是从交叉熵误差推导出来的结果(参考前几节,因为重复多次了,这里直接给结果)

CBOW模型的学习旨在找到使上式表示的损失函数(确切地说, 是整个语料库的损失函数之和)最小的权重参数。只要找到了这样的权重参 数,CBOW模型就可以更准确地从上下文预测目标词。 像这样,CBOW模型的学习目的是从上下文预测出目标词。为了达成 这一目标,随着学习的推进,(作为副产品)获得了编码了单词含义信息的 单词的分布式表示。

那么,CBOW模型本来的目的"从上下文预测目标词"是否可以用来做些什么呢?

表示的概率是否可以在一些实际场景中发挥作用呢?说到这里,就要提一下语言模型了。

2.语言模型

语言模型(language model)给出了单词序列发生的概率。具体来说, 就是使用概率来评估一个单词序列发生的可能性,即在多大程度上是自然的单词序列。比如,对于"you say goodbye"这一单词序列,语言模型给出高概率(比如0.092);对于"you say good die"这一单词序列,模型则给 出低概率(比如0.000 000 000 003 2)。 语言模型可以应用于多种应用,典型的例子有机器翻译和语音识别。比如,语音识别系统会根据人的发言生成多个句子作为候选。此时,使用语言模型,可以按照"作为句子是否自然"这一基准对候选句子进行排序。 语言模型也可以用于生成新的句子。因为语言模型可以使用概率来评价单词序列的自然程度,所以它可以根据这一概率分布造出(采样)单词。

现在,我们使用数学式来表示语言模型。这里考虑由m个单词w1,···, wm构成的句子,将单词按w1,···,wm的顺序出现的概率记为P(w1,···, wm)。因为这个概率是多个事件一起发生的概率,所以称为联合概率

使用后验概率(概率论中的基本知识)可以将这个联合概率分解成如下形式(看不懂的话,看看博主前几篇文章,或者问deepseek,放心,不难):(但是我回想起,这整个文章是一篇入门级,因此必须解释下,免不了内容多,还请见谅

与表示总和的Σ(sigma)相对,式(5.4)中的Π(pi)表示所有元素相乘的乘积。如上式所示,联合概率可以由后验概率的乘积表示。 上式的结果可以从概率的乘法定理推导出来。这里我们花一点时间来说明一下乘法定理,并看一下它的推导过程。

首先,概率的乘法定理可由下式表示:

上式表示的乘法定理是概率论中最重要的定理,意思是"A和B两个事件共同发生的概率P(A,B)"是"B发生的概率P(B)"和"B发生后A发生的概率P(A|B)"的乘积(这个解释感觉上非常自然)。

(当然,概率P(A,B)也可以分解为P(A,B)=P(B|A)P(A)。也就 是说,根据将A和B中的哪一个作为后验概率的条件,存在 P(A, B) = P(B|A)P(A)和P(A,B) = P(A|B)P(B)两种表示 方法。)

使用这个乘法定理,m个单词的联合概率P(w1,···,wm)就可以用后 验概率来表示。为了便于理解,我们先将式子如下变形:

这里,将w1,···,wm−1整体表示为A。这样一来,按照乘法定理,可以推 导出上述式子右边。接着,再对A(w1,···,wm−1)进行同样的变形:

像这样,单词序列每次减少一个,分解为后验概率。然后,重复这一过程, 就可以推导出式

如上式所示,联合概率P(w1,···,wm)可以表示为后验概率的乘积 Π P(wt|w1,···,wt−1)。这里需要注意的是,这个后验概率是以目标词左侧的全部单词为上下文(条件)时的概率,如下所示:

这里我们来总结一下,我们的目标是求P(wt|w1,···,wt−1)这个概率。 如果能计算出这个概率,就能求得语言模型的联合概率P(w1,···,wm)。

(由P(wt|w1,···, wt−1)表示的模型称为条件语言模型(conditional language model),有时也将其称为语言模型。)

3.将CBOW模型用作语言模型?

那么,如果要把word2vec的CBOW模型(强行)用作语言模型,该怎么办呢?可以通过将上下文的大小限制在某个值来近似实现,用数学式可以如下表示:

这里,我们将上下文限定为左侧的2个单词。如此一来,就可以用CBOW 模型(CBOW模型的后验概率)近似表示。

上式是使用2个单词作为上下文的例子,但是这个上下文的大小可以设定为任意长度(比如5或10)。不过,虽说可以设定为任意长度,但必须是某个"固定"长度。比如,即便是使用左侧10个单词作为上下文的CBOW模型,其上下文更左侧的单词的信息也会被忽略,而这会导致问题, 如下图中的例子所示:

在上图的问题中,"Tom在房间看电视,Mary进了房间"。根据该语境(上下文),正确答案应该是Mary向Tom(或者"him")打招呼。这里要获得正确答案,就必须将"?"前面第18个单词处的Tom记住。如果CBOW模型的上下文大小是10,则这个问题将无法被正确回答。 那么,是否可以通过增大CBOW模型的上下文大小(比如变为20或 30)来解决此问题呢?的确,CBOW模型的上下文大小可以任意设定,但 是CBOW模型还存在忽视了上下文中单词顺序的问题。

关于上下文的单词顺序被忽视这个问题,我们举个例子来具体说明。比如,在上下文是2个单词的情况下,CBOW模型的中间层是那2个单词向量的和,如下图所示:

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

我们想要的是考虑了上下文中单词顺序的模型。为此,可以像图5-5中 的右图那样,在中间层"拼接"(concatenate)上下文的单词向量。但是,如果采用拼接的方法,权重 参数的数量将与上下文大小成比例地增加。显然,这是我们不愿意看到的。

那么,如何解决这里提出的问题呢?这就轮到RNN出场了。RNN具有一个机制,那就是无论上下文有多长,都能将上下文信息记住。因此,使用RNN可以处理任意长度的时序数据。下一节,我们就来感受一下RNN的魅力。


总结(下一节正式RNN)

word2vec是以获取单词的分布式表示为目的的方法,因此一般不会用于语言模型。这里,为了引出RNN的魅力,我们拓展了话题,强行将word2vec的CBOW模型应用在了语言模型上。 word2vec和基于RNN的语言模型是由托马斯·米科洛夫团队分别在2013年和2010年提出的。基于RNN的语言模型虽然也能获得单词的分布式表示,但是为了应对词汇量的增加、提高分布式表示的质量,word2vec被提了出来。

相关推荐
机器之心4 分钟前
AI也要007?Letta、伯克利提出「睡眠时间计算」,推理效率翻倍还不加钱
人工智能
机器之心7 分钟前
WSDM 25唯一最佳论文:从谱视角揭开推荐系统流行度偏差放大之谜
人工智能
新智元16 分钟前
国产 Vidu Q1 出道即顶流,登顶 VBench!吉卜力、广告大片、科幻特效全包了
人工智能·openai
人机与认知实验室41 分钟前
宽度学习与深度学习
人工智能·深度学习·学习
新智元43 分钟前
AI 永生时代来临!DeepMind「生成幽灵」让逝者赛博重生
人工智能·openai
HyperAI超神经1 小时前
【vLLM 学习】Aqlm 示例
java·开发语言·数据库·人工智能·学习·教程·vllm
cnbestec1 小时前
欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会
人工智能·机器人
爱的叹息1 小时前
关于 梯度下降算法、线性回归模型、梯度下降训练线性回归、线性回归的其他训练算法 以及 回归模型分类 的详细说明
人工智能·算法·回归·线性回归
EasyGBS1 小时前
室外摄像头异常自检指南+视频监控系统EasyCVR视频质量诊断黑科技
大数据·人工智能·音视频