(四)Semantics_and_Embeddings

本文最后更新于:6 months ago

Semantics&Embeddings

Relations

Lemmas can be polysemous (多义性,have multiple senses),比如说mouse:

  • 指一种小型啮齿动物
  • 鼠标…

单词之间的关系:

  • Synonymy(同义词):couch / sofa、big / large、automobile / car
  • Antonymy(反义词):dark / light、up / down
  • Similarity(相似性):car / bicycle、cow / horse
  • Relatedness(关联性):coffee / tea
  • Connotation(内涵):感情上的(happy/sad)、隐含的意义(褒贬)(copy/fake)、评价(great/terrible)

The meaning of a word is its use in the language

Connotation

单词可以从三个维度来看待:

  1. Valence(警觉度):the pleasantness of the stimulus
  2. Arousal(唤醒度):the intensity of emotion provoked by the stimulus
  3. Dominance(支配度):the degree of control exerted by the stimulus

image-20210926224807705

Vector Semantics

我们是否可以建立一种方法来表达词义呢?接下来就介绍一种常用的模型vector semantics。

“The meaning of a word is its use in the language”

  1. 通过语言的分布决定语义

  2. 从多个维度来看待语义(空间中的某个点)

我们使用一个向量来表示每一个词语。相似的词语在语义空间(semantic space)上是邻近的。

image-20210926230518609

对于情绪分析,如果基于单词本身

  • 单词特征就是用单词来标识的
  • 比如说在之前遇到一个单词为“terrible”
  • 那么我们在训练集和测试集中只能使用完全相同的单词

如果基于词向量(Embedding)

  • 单词特征就是一个向量来表示的
  • 前一个单词是向量vector[35,22,17…];现在测试集中我们可能看到相似的向量vector[34,21,14]
  • 此时我们就可以将其概括为similar but unseen words(不再局限于单一的单词,可以是相似的单词)

我们将会讨论两种词向量算法

  1. Tf-idf(特征:用于信息检索;一种基线模型;稀疏向量;单词用附近的单词计数表示)
  2. Word2vec(特征:密集向量;通过训练分类器来预测单词是否可能出现在附近;上下文嵌入contextual embeddings)

荃者所以在鱼,得鱼而忘荃;

言者所以在意,得意而忘言。

——庄子

Words and Vectors

文本间的关系

每个文本都可以表示成一个单词的向量。比如说下面莎士比亚的文章就分别记录了相关单词的出现次数:

image-20210926234152207

image-20210926234200465

可以看到,《亨利五世》和《裘力斯·凯撒》的相关性更强,《皆大欢喜》和《第十二夜》更加相似。

单词间的关系

两个单词如果它们的上下文相似,这两个单词也是相似的。

image-20210926234555455

image-20210926234638018

cos计算单词相似性

对两个向量进行点乘:

但是这可能会引起一些问题:如果维数过大,乘积可能会非常大

向量长度是:

我们可以计算出:

样例:

image-20210927000014433

image-20210927000051712

TF-IDF

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。

对于单词t在文本d中的ti-idf值,如下:

其中,像“the”或“it”的idf值将会非常小

tf的计算方法

通常不使用原始数据,我们将其压缩一下:

idf的计算方法

注意df不是指该单词在所有文档中出现的总次数(collection Frequency),而是指该单词出现在了多少个文档中(Document Frequency)

image-20210927220135195

可以注意到,加入一个单词在所有训练的文本中都有出现,那么它的idf就会是0。而出现的频率越低,它的idf就越大。

image-20210927221238680

PMI

经常会用到PMI(Pointwise Mutual Information,逐点互信息)这个指标来衡量两个事物之间的相关性(比如两个词):

虽然PMI的取值是负无穷到正无穷,但是取负值是有问题的。

所以我们用0取代负的PMI,得到PPMI:

举例,计算过程

image-20210927222604844

image-20210927222523541

image-20210927222536175

image-20210927222704853

Word2vec

稠密向量

相比于tf-idf更加稠密,且大部分元素不为零。

为什么要使用稠密向量:

  • 维度更小可以更好地用于机器学习(需要调整的权重更少)
  • 稠密向量可能比显式计数更通用
  • 维度过大可能拟合到一些噪音。维度更小的向量可以缓解过拟合的问题
  • 更好地获取同义词之间的关系
  • 实践证明,Word2vec可以做的更好

获取稠密向量的方法:

image-20210927164801858

基本思路

  • 基于二进制预测任务来训练一个分类器:w会喜欢出现在c的附近吗?(true/false)

  • 寻找到一个中心词$target$,在设定一个窗口大小(如下图为+/-2)下,如果$c$出现在$target$周围,就设为T,否则为F。

  • 我们并不关心这个分类器本身,而是将其权重作为词向量。
  • 自监督的学习方式。标签不是人为设置的,而是根据单词是否出现在窗口中自己形成的。c和w之间是非常弱的标签关系(它们可能在某个地方邻近,在其它可能又没有)。

一个简单地例子:

“她们 夸 吴彦祖 帅 到 没朋友”

“她们 夸 我 帅 到 没朋友”

由于“吴彦祖”和“我”使用邻近的词语表示的词向量是非常近似的,所以“我”约等于“吴彦祖”

基本流程

  1. 通过邻居词语context word来获取正面例子(true)
  2. 随机获取其他词汇来作为负面例子(false)
  3. 训练逻辑回归分类器来区分这两种情况
  4. 学习到的权重,最终作为词向量。

image-20210927165913777

预测出$P(+|w,c)$的概率。

如果两个向量是相似的,那么它们的点积是会非常大的。cosine只是一种标准化的点积。所以我们可以直接使用点积来表示相似性:

使用逻辑回归分类器中的$\sigma$将其变为概率:

上面的公式,只是针对一个context word,但是我们需要针对很多个context word。我们可以假设每个context word之间是相互独立的,所以可以将他们直接乘起来喔:

image-20210928233333561

学习的目标是:

  • 最大化正例中的target word和context word之间的相似性
  • 最小化反例中的target word和non-neighbor word之间的相似性

可得到损失函数如下:

image-20210928233633250

如何学习?

使用随机梯度下降法(Stochastic gradient descent);针对整个训练集,使正例的可能性更大,使反例的可能性更小。

对于每一步:

  • 方向:从损失函数的梯度向相反方向移动
  • 梯度幅值:我们移动的梯度值为$\frac{d}{dw}L(f(x;w),y)$,乘以一个learning rate $\eta$
  • learning rate 越大就意味着下降得越快:

转过头来看看,损失函数要怎么求导:

image-20211007163357969

所以我们可以先随机地初始化$c$和$w$矩阵,然后根据刚刚提到的梯度下降法来进行不断地更新:

image-20211007163616109

总结流程

  • 以一个随机d维地向量V作为初始词向量
  • 基于向量的相似度来对分类器进行训练
    • 基于一个语料库,将同时出现的一对对词作为正例
    • 以不同时出现的一对对词作为反例
    • 通过梯度下降的方式来训练分类器,最终提高分类器区分这些词向量的性能
    • 扔掉分类器的代码,仅仅保留词向量(词嵌入 embeddings)

词嵌入的特性

1. 窗口大小

  • 小窗口$(C=+/-2)$,邻近的单词是同一分类法下语法相似的词。比如Hogwarts和其他虚构学院
  • 大窗口$(C=+/-5)$,邻近的单词是同一语义领域下的。比如Hogwarts和Dumbledore

2. 类比关系(analogical relations)

使用向量的平行关系来进行类比推理

image-20211007184623878

对于稀疏的词向量或稠密的词向量都可以使用这种方法:

image-20211007184835881

平行四边形法则需要注意的事项:

  • 它似乎只适用于频繁使用的单词、小距离和特定的语言关系(如国家与首都等),但对于其他的无效

  • 此外,如何理解类比关系是开放的,多样化的。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!