Speech and Language Processing(6) - Vector Semantics and Embeddings笔记

6. Vector Semantics and Embeddings

本章主要介绍word semantics/embeddings,就是词向量。以及一些basic principles of word meaning(注:本文是笔记,不是翻译)。

6.1 Lexical Semantics(词汇语义学)

我第一次看到Lexical Semantics这个词是很懵的,翻译成中文叫词汇语义学,依旧不知道是什么意思。其实,本节主要介绍如何表示一个词的含义。词除了有其本身的含义以外,还与其他的词构成了十分复杂的关系。比如词可以反映出一些相近的意思(“猫”和“狗”可以看作是相近的),词还可以反映出一些相反的意思(比如“冷”和“热”),一些词有积极的意思(“开心”),一些词有消极的意思(“难过”)等等。简单来说,这一节主要介绍一些词的需求(近义、反义、积极、消极等),我们希望计算机所表示的词(词向量)能够在实际中反映出这些需求。

Lemmas and Senses(词根和词义)

这里介绍两个概念:以英文单词"sing"为例
Lemma(词根): sing
Wordform(词形): sang, sung
同一个词根可能有不同的含义,即多义性,例如英文单词“mouse"既有鼠标的意思也有老鼠的意思,它们在不同的上下文中所代表的含义不同,这也给NLP任务带来了困难。

Synonymy(同义词)

词语的一个关键是能反映出两个词之间的关系,比如一些意思相近的同义词:car/automobile。
如果将句子中的一个词替换为另一个词,并且不改变句子的含义那么这两个词可以称为同义词。
尽管一些词是同义词,但是可能没有两个词是意思完全一致的,或多或少有些差别。

Word Similarity(词相似度)

尽管一些词没有同义词,但是大部分的词都有与其相似的词。比如”猫“和”狗“不是同义词(synonymy),但是它们是相似的(similar),因为都是动物。词与词之间的相似度在很多NLP任务中起着非常重要的作用。

Word Relatedness(词相关性)

除了相似度(similarity),两个词的含义还可以通过其他方式相关联,即相关性(relatedness)。比如单词”coffee“和"cup",它们不是同义词,也不相似(similar),但是具有相关性(relatedness)。
这里就出现了另一个概念semantic field。它的定义是a set of words which cover a particular semantic domain and bear structured relations with each other。比如把餐厅作为一个semantic field,那么"服务员",”菜单“,”盘子“,”食物“等词就具有一定的相关性。

Semantic Frames and Roles(语义框架和角色)

另一个概念semancit frames。定义为a set of words that denote perspectives or
participants in a particular type of event。举例来说,一个买卖的商业活动。里面涉及了"buy", "sell”, 以及"pay"等词,在这个场景下就可以看作是一个semantic frames,它有它各自的角色(buyer, seller, goods, mony等)。
如果我们的计算机能够理解"buy"和"sell"这两个词,那么就会理解"Sam bought the book from Ling"和"Ling sold the book to Sam"这两句话的含义以及它们之间的关系,这在问答系统任务中有很大的作用。

Connotation(内涵)

Connotation反映了一个词的深层次含义,比如"happy",“sad”等词反应了作者或读者的情绪,情感,想法等。这在情感分析任务中起到关键作用。

在本节中主要从词义的角度介绍了一些词的特征,其中很多概念(Synonymy, Similarity, Relatedness)意思将近,容易混淆,如果有不清楚的地方还是希望读者去读一下原文。

6.2 Vector Semantics

Vector Semantics: 将一个单词表示为多维语义空间的一个点,也叫做embeddings。
词向量现在已经成为NLP中单词表示的标准方式了。
本章后面部分将会介绍两种词向量模型:TF-IDF以及word2vec。

6.3 Words and Vectors

6.3.1 Vectors and documents

本节简要地介绍了如何用向量表示document。在Information retrieval (IR)任务中,我们需要在D documents找到一个d document来匹配q document。这就需要能够用向量的方式来表示每个不同的document。

6.3.2 Words as Vectors

如何构建一个表示单词的向量呢?构建词向量的矩阵可以称为word-word matrix或者term-context matrix。具体来说,这个矩阵是一个 ∣ V ∣ × ∣ V ∣ |V| \times |V| V×V的矩阵(V是一个语料库的单词数,不是单词总数,通常在1W-5W之间),我们可以规定一个窗口大小,比如为4,对于给定的单词v,我们去寻找单词v所在的句子的前后四个单词,并将其记录在这个矩阵中,即可构建这个词向量矩阵。举例来说,假设我们想要构建"cherry", “strawberry”, "digital"以及"information"这四个词的向量,并且在一个语料库中有下面四句话:

is traditionally followed by cherry pie, a traditional dessert
often mixed, such as strawberry rhubarb pie. Apple pie
computer peripherals and personal digital assistants. These devices usually
a computer. This includes information available on the internet

这四句话截取了原文中以这四个词为中心的前后四个单词,那么我们可以构建如下的词向量:

traditionalpiecomputeravailabledeviceinternet
cherry110000
strawberry020000
digital001010
information001101

以"cherry"为例,其所在句子的前后四个单词中出现了"traditional"和"pie",那么我们就可以在矩阵相应的位置记录加一。寻找语料库中所有存在"cherry"的句子,截取句子的前后四个单词,将出现的单词记录到矩阵中"cherry"单词所在行的相应网格中,即可得到最终的词向量矩阵。

6.4 Cosine for measuring similarity

本节主要介绍NLP领域常用的一种度量两个词向量间相似度的方法:余弦相似度。余弦相似度基于内积/点积,其定义如下:
d o t    p r o d u c t ( v , w ) = v ⋅ w = ∑ i = 1 N v i w i = v 1 w 1 + v 2 w 2 + . . . + v N w N dot \; product(v, w) = v \cdot w = \sum_{i=1}^Nv_{i}w_{i} = v_{1}w_{1} + v_{2}w_{2} + ... + v_{N}w_{N} dotproduct(v,w)=vw=i=1Nviwi=v1w1+v2w2+...+vNwN
如果两个向量在相同的方向上有较大的值,那么其点积的结果也会大。但是仅仅用点积衡量两个单词向量的相似度是不合适的,因为点积偏好于长向量。这里所说的长向量不是指向量的维度大,向量的长度定义如下:
∣ V ∣ = ∑ i = 1 N v i 2 |V| = \sqrt{\sum_{i=1}^Nv_{i}^2} V=i=1Nvi2
如果一个向量长度很长,那么该向量在每个维度的值就会比较大,因此造成点积的结果偏大,这就会导致即使两个毫不相关的词,由于它们的长度都很长,从而导致了计算出的它们之间的相似度很大。通常来说,经常出现的词,其词向量会偏大,在6.3节中介绍到,一个词的词向量取决于其周围上下文的词频,如果一个单词频繁出现,那么其上下文的单词也会进而增加,从而造成词向量中某些维度的值变得较大,从而使该词向量长度较长。
一个通用的解决办法是标准化,通过对点积标准化以消除向量长度对相似度的影响,那么向量 v v v w w w的相似度就变为了:
c o s i n e ( v , w ) = v ⋅ w ∣ v ∣ ∣ w ∣ = ∑ i = 1 N v i w i ∑ i = 1 N v i 2 ∑ i = 1 N w i 2 cosine(v, w) = \frac{v \cdot w}{|v||w|} = \frac{\sum_{i=1}^Nv_{i}w_{i}}{\sqrt{\sum_{i=1}^Nv_{i}^2}\sqrt{\sum_{i=1}^Nw_{i}^2}} cosine(v,w)=vwvw=i=1Nvi2 i=1Nwi2 i=1Nviwi
上式就是余弦相似度的定义,余弦相似度的值阈为[-1,1],但是在这里,由于词向量的每个维度都为正数,因此这里的值阈为[0,1]。

6.5 TF-IDF: Weighing terms in the vector

本节介绍TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)算法从,常用于信息检索(information retrieval)等,是一种基于统计方法的加权技术。
TF-IDF的核心思想是评估一个词对一个语料库中的某个文件的重要程度,如果一个词在语料库中出现的次数越多就越重要,同时一个词在越多的文件中出现,那么其重要性就越低。
t t t表示某个单词,用 d d d表示语料库中的某个文件(document),则TF可以表示为:
t f t , d = l o g 10 ( c o u n t ( t , d ) ) + 1 tf_{t,d} = log_{10}(count(t, d)) + 1 tft,d=log10(count(t,d))+1
其中 c o u n t ( t , d ) count(t, d) count(t,d)是指单词 t t t在文件 d d d中出现的次数。IDF可以表示为:
i d f t = l o g 10 ( N d f t ) idf_{t} = log_{10}(\frac{N}{df_{t}}) idft=log10(dftN)
其中 N N N为语料库中所有的文件总数, d f t df_{t} dft为语料库中出现单词 t t t的文件数量。TF-IDF则为以上两式的结合,定义如下:
w t , d = t f t , d × i d f t w_{t,d} = tf_{t,d} \times idf_{t} wt,d=tft,d×idft
其中 w t , d w_{t,d} wt,d就代表了单词 t t t对文件 d d d的重要程度。

6.6 Applications of the tf-idf vector model

TF-IDF有很多应用,书中列举了一部分,但是我觉得书中列举的应用很多并不是TF-IDF所特有的,而是词向量模型所共有的。
这里简单介绍一下利用TF-IDF来判断两个文件(document)的相似度。我们可以根据TF-IDF中的向量来计算两个文件的中心向量,再去比较两个中心的相似度来达到比较文件相似度的目的。这里的中心向量就代表了文件,假设文件 d d d中有 k k k个单词,每个单词的向量为 w 1 , w 2 , . . . , w k w_{1}, w_{2}, ... , w_{k} w1,w2,...,wk(由TF-IDF计算得到),那么这个文件的中心向量为:
d = w 1 + w 2 + . . . + w k k d = \frac{w_{1} + w_{2} + ... + w_{k}}{k} d=kw1+w2+...+wk

6.7 Optional: Pointwise Mutual Information (PMI)

6.8 Word2vec

本节介绍NLP领域经典的词向量模型word2vec,相比较于本章之前介绍的TF-IDF,word2vec模型的词向量更短(向量长度通常在50-1000之间)且密集(dense,大多数为非0值)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值