NLP & Word Embeddings
Word representation
One-hot形式
上周讲解RNN类模型时,我们采用了one-hot编码为每个单词赋值的方式。该方法的一个主要缺陷在于它不考虑词语间的联系,并因此难以发现词语之间的潜在关系。
以下是一个示例:即使语言模型通常能够识别orange juice作为常见复合词(compound word),然而它们却难以推广到能够识别apple juice的情况。其主要原因在于这些单词之间的点积为零向量(zero vector)。

因此我们能够使用非one-hot的多维向量来表示一个单词。通过计算单词之间的差异程度来反映它们的相似性。这种做法有助于提升算法快速捕捉到这些联系的能力。
多维向量形式
采用多维向量模型,在每个维度上定义一个实数值参数时,则能够通过更低维度的稠密向量来有效编码单词的意义。
基于迁移学习的方法,在利用大规模预训练数据的情况下获得每个单词的embedding;另一种方式是直接从互联网上查找已有的他人训练好的模型来获取其嵌入。
获得到了Embdding后可以将其应用在你的任务中,并用于诸如名字识别等模型中。由于训练集可能规模偏小。
3. 如果你的训练集很大,也可以尝试fine-tune第一步中的预训练模型
单词之间的相似度
在采用多维向量进行单词表征时, 通常会采用余弦相似度或欧氏距离等方法来计算它们之间的相似程度
Learning Word Embddings
随着NLP技术的最初探索,在那个时候研究者最初倾向于采用较为复杂的架构以生成Word Embedding表示。然而随后人们逐渐认识到,在处理大规模数据时采用更为简洁的架构同样能够有效实现目标,并展现出良好的效果。该小节将从复杂架构入手逐步向更为简洁的结构演变发展
早期模型
每次都从数据集中取出一个句子,并将其即将被预测的词前面的4个固定参数相关联的单词作为输入传递给模型。然后,在模型的输出层通过softmax层计算出各个可能词语的概率。

Word2Vec 之 skip-grams
原始论文中作者提供了Word2Vec的两个版本:skip-grams、CBow。
CBow模型基于中心词周围的上下文信息来估计w_{center}的存在。该方法既有其优势与不足,并未对此进行详细探讨。仅作为补充知识提供skip-grams的相关概念。
定义
首先阐述skip-rams的概念。该模型要求包含上下文词以及对应的目标词。在附近k(超参数)个连续词的范围内,在选定之后会生成并使用这些上下文词与目标词配对。

模型结构
输出层为词库大小个softmax分类单元

缺点
这个算法存在一些问题:
当词汇表规模较大时(...),运算开销显著增加。可以通过多层...结构来减少总运算量。建立多层...树时,请采用启发式算法进行优化。(注:未展开具体实现细节)。将常见词语放置于较浅层次(注:未详细说明),而将低频词语置于较深层次(注:未详细说明),从而降低信息检索的开销。
选择context单词的方式,在基于正态分布的方法下可能导致高频词被过度抽取而难以获取低频词;通常需要借助启发式算法来进行抽样(此处不做详细讨论)。

Negative Sampling
定义
负采样是一种对原始skip-grams进行改进的技术手段,并且能够显著地减少多类分类任务所需的计算资源。
负采样是指从给定的一个context单词出发,在其固定窗口范围内选择一个邻近的target单词作为正样本(label为1),随后通过词库中随机抽取k(超参)个不同的target单词并将其作为多个负样本(label为0)加入到训练集中。
低概率可能会抽到实际上也属于context单词附近的单词。由于是随机误差的原因,因此影响较小。

模型结构
相较于Skip-GRAM模型,在其输出层中将词库大小的Softmax单元被替换成同样规模的Logistic Regression单元,并且在每次迭代过程中仅需更新与正负样本相关的k+1个输入层的Logistic Regression单元参数数量显著减少

如何进行负样本选取
不采用随机采样和词频采样的策略,则作者采用了经验公式(其有效性尚待验证但目前普遍采用该方法):


GloVe
全称:Global Vectors for word representation。使用不如Word2Vec广泛。
定义
首先计算词库中任意两个单词在训练数据集中同时出现的频率;接着将context单词输入到模型中以估计其与target单词出现次数,并最小化二者之间的差异
模型结构
在实际模型中,增加了一个权重系数经验公式

用于对低频词提权,高频词降权。

和

该文本涉及两种向量:一个是单词的context向量(在作为context单词的情况下应用),另一个是target向量(在作为target单词的情况下应用)。经过训练后可以直接用于后续处理。

或

作为最终的词向量。

偏置项存在的意义ChatGPT的解释如下

词向量的应用
Sentiment Classification
通过分析文本的情感表达来确定其情感倾向。在NLP中经常使用。
基于词向量模型的情景下,在这种情况下,你可以选择采用适度规模的标注训练样本来进行情感分析任务,并非必须依赖大规模标注数据集。
如图所示,在对评价中的所有词向量进行求和或取均值操作后作为输入的预测分数时

进一步使用RNN模型逐次输入每个单词词向量,输出打分。

消除词向量偏见
基于性别偏见分析,在he/she与male/female这些关键词之间计算其向量差,并求取其平均值从而确定出性别差异向量。接着将那些不应与性别相关的词汇(例如医生和婴儿护理)在这一方向上调整至零点位置。最后将与性别相关联的反义词组在这一方向上进行镜像调整。

