吴恩达深度学习网课 通俗版笔记——(05.序列模型)第二周 自然语言处理与词嵌入

自然语言处理与词嵌入

本周是序列模型第二周的内容。


2.1 词汇表征

上一周有讲到,处理句子时对于每个单词的表示是通过一个one-hot向量,也就是需要一个词汇库,向量显示其位置。这种语言模型的缺陷是无法捕捉词语之间的相关性,泛化能力比较差。

引出一种特征表示的方法,每一个词语依然由一个向量表示,而向量的每个值代表一种特征,这样的向量表示可以使得相似的词语在表示上也更为接近,从而解决上述问题。
在这里插入图片描述
上述过程即称为词嵌入,将单词用多维特征向量表示,而为了可视化,我们可以把多维特征向量再嵌入到二维空间中,使用t-SNE算法。
在这里插入图片描述

2.2 使用词嵌入

词嵌入做迁移学习步骤:
在这里插入图片描述

  1. 从大量文本集中学习词嵌入,或者从网上下载训练好的词嵌入模型。
  2. 将模型迁移到新任务中,小的训练集。(比如用300维特征取代one-hot向量,这些特征具体如何表示通过自己学习的知识或者别人训练好的模型得到)
  3. 决定是否用新数据微调词嵌入。(数据集小时一般不需要,词嵌入广泛应用于NLP领域,例如命名实体识别、文本摘要、文本解析、指代消解等任务中)

词嵌入和之前人脸识别中提到的人脸编码有一些相似之处,都是用单独的向量来表示图片或者单词。
在这里插入图片描述

2.3 词嵌入的特性

词嵌入有一个特性是它能做类比推理。单词里有一些对立的词汇,例如man,woman;king,queen等,如何在给出king的情况下自动给出对立单词,就需要用到这种类比推理。
在这里插入图片描述
将对立词汇向量作差,如上图所示两组词汇都是性别上的差异,因此作差后的值是非常相近的。

上述思想具体实现时也就是找到这样的词汇向量,使其能最大化下图的相似度函数
在这里插入图片描述
上述相似度函数通常使用的是余弦相似函数,公式如下,当两者很接近时,分子分母都会比较大且接近,整个函数值就接近1,从而推出两者非常相似。
在这里插入图片描述

2.4 嵌入矩阵

词嵌入的学习,归根结底就是学习一个嵌入矩阵,这个嵌入矩阵的内容就是词汇表里每一个单词的特征向量表示。
在这里插入图片描述
E表示嵌入矩阵,ej表示词汇表中第j个单词的特征向量,Oj表示第j个单词的one-hot向量,实际编码的时候不会用矩阵乘法运算,效率很低,一般直接从嵌入矩阵中直接提取某列。

嵌入矩阵中的具体元素值需要学习得到,这也是词嵌入学习最关键的步骤,后续展开。

2.5 学习词嵌入

学习词嵌入,也就是要学习上节所说的嵌入矩阵E,该矩阵存了语料库中所有词语的特征向量。

学习词嵌入可以通过语言模型,将某个句子的所有词(可以取预测位的前四个词)的特征向量堆起来通过一个神经网络,预测输出句子之后下一个词,以此方式训练学习E矩阵。
在这里插入图片描述
刚才说到取前四个词作为神经网络输入,也可以取其他上下文形式,例如左右各四个词、前一个词、附近的一个词(skip gram)等。
在这里插入图片描述

2.6 Word2Vec

上节说到通过语言模型来学习词嵌入,skip-gram模型是其中一种方式,即通过上下文的形式找附近的目标词。选定一个上下文词,建立与附近目标词的映射,要实现的就是给出一个上下文词,预测出其附近的词。

模型细节如下:
同上节所说一致,首先通过one-hot向量乘以嵌入矩阵得到嵌入向量,再通过一个softmax单元输出所有目标词可能的概率,E中有很多参数,包括softmax单元也有一些参数,通过优化下图中的损失函数,就能得到比较好的嵌入向量集。
在这里插入图片描述
上述方法有一个问题就是,softmax单元计算量过大,分母要进行一个大面积求和,解决方案这里提了一个方法——分级softmax分类器。具体是使用一棵分类树,通过检索判断预测的是哪一类,实践中常用的词放在上面,不常用的在更深层。
在这里插入图片描述
还有一个问题,如何对上下文c采样?由于各词汇出现频率不一致,例如for、of等出现的更多,为了确保不常见的词能被采样到,不能均匀随机地在训练集里取,而需要采用不同的启发来平衡(应该后续节会有详细解释)。

除了skip-gram,还有一种Word2Vec模型是CBow,它获得中间词两边的上下文,通过周围的词来预测中间的词。

2.7 负采样

上节有说到softmax计算成本太高,这节提出一个新的学习问题——负采样,可有效解决该问题。
在这里插入图片描述
构造一个新的监督学习问题,输入为上下文词-目标词,输出是一个0-1标签,表明目标词是否在上下文词附近(具体看如何定义附近),对于每一个词,有1个正样本,K个负样本。训练集小,K就大一点,反之亦然。
在这里插入图片描述
具体地说,就是将原有的softmax计算转变为10000个二分类logistics分类器(sigmoid),而每次迭代只需要训练其中K+1个样本,大大减少计算成本。
在这里插入图片描述
最后一个问题,这些负样本如何采样?由于每个词出现频率不同,随机选取不太合适,有一种研究者提出的常用方法,如上图公式。

2.8 GloVe词向量

GloVe算法是学习词嵌入的另一个较为常用的算法,其优点在于简便。

Xij表示单词i在单词j的上下文中出现的次数,Xij和Xji通常具有对称性。
在这里插入图片描述
该算法就是最小化上图中的这样一个函数,和之前softmax的计算相比就是多算上Xij,以及再给了一个f(Xij)表示权重,兼顾不同频率词汇的训练。这里还提到θ和e完全对称,最后计算时取平均值。(细节不懂,最好会用)
在这里插入图片描述
最后就是说该算法学习到的特征向量我们很难解释,例如每行表示的特征我们最早提过可能是性别、年龄等,而算法学习到的没有办法这样解释出来,只是一些看似无意义的数字,但并不影响我们解决实际问题。

2.9 情绪分类

情感分类问题就是看一段文本,判断该文本传达出的是喜欢还是不喜欢,例如电影评论对应星级等等。
在这里插入图片描述
简单的模型:训练时,用句子每个词转换得到词嵌入特征向量,然后求和或者求平均,再送入softmax分类器中,得到对应5种结果的可能概率。但这种模型没有考虑词的顺序,可能因为某些个别单词的情感导向而做出错误的判断,为了考虑词序,这里不使用简单的叠加,而是使用一个多对一RNN,如下所示:
在这里插入图片描述

2.10 词嵌入除偏

所有的词汇都带有感情色彩,有些是中性词,有些则带有明显的偏向性。目前的词嵌入存在这样一个情况,其中包含了一些诸如性别、种族歧视的预测结果,例如下图中对不同性别目标词的生成,显然具有一定的性别歧视成分。

由于机器学习与深度学习已经开始为社会作重大决策,这种偏见的消除则非常重要!
在这里插入图片描述
这里提供了一个简化的算法思路:
在这里插入图片描述
以性别偏见举例,首先是识别一个偏见趋势,具体是将性别对立的词的特征向量作差,之后再取平均值(实际会用SVU算法);然后是一个中和步,目的是消除那些不是很明显的性别对立词的偏见趋势距离;最后是均衡步,调整性别对立的词和非偏见轴的距离。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值