向量语义及嵌入
向量语义
在类似的环境中不同事物产生出相似的特征,这一现象称为分布假设。而在语言中,处于相同语境中的不同词语也会出现类似的意义,向量语义正是分布假设的实例化,即将文本的符号表示转换为语义空间中的向量表示。根据词语所处语境,通过无监督方式学习到该词语的语义表示。
词语义
词语义主要包括以下几个方面:
词的相似性:同义词并不多,不过多数词都有多个相似词。同义到相似的转换,实际上是词义关系到词语关系的转换。词语相似性有助解决问答、摘要等任务。
词相关:在同一语境下的不同词语存在这一定的关联性,比如“用勺子吃饭”这句话中,勺子和米饭存在一定的关系,两者共同完成了吃饭这件事。处理词语的关系,可以帮助简化问题,避免发生歧义。
语义框架和语义角色:框架语义表示在特定类型中,一个表示事件参与者与参与角度的词语集合。例:在商品交易中,事件过程可以提取为一个实体把钱给另外一个实体,由此获取商品或服务。事件的结果是商品流转、服务完成。通过词汇化编码为:买(顾客角度)、卖(商家角度)、付款(货币角度),名词:顾客。框架内有语义角色,比如顾客、商家、商品、货币等。通过语义框架可对句子进行变换,即:”张三从李四那里购买了一个电脑“ 可转化为 “李四将一个电脑卖给了张三” 。语义框架的构建可用于问答系统或者机器翻译。
隐含意义:每个词语都具有其相对应的隐含意义,大多表现为情感。比如“神清气爽”具有积极向上的情感意义,“垂头丧气”具有低迷消极的意义,隐含意义主要用于情感分析、舆情监测等。
向量语义
了解了词语义的基本内容后,怎样利用这些特性内容的?通过向量语义这一计算模型,可以很好的处理词语义的各个内容。
向量语义起源于50年代语言学与哲学。维特根斯坦(1953)表示“词语的意义决定于它在语言中的使用”,与其为每个词提供定义,不如把词表示成说话人的实际使用方式。进一步得到,两个词如果具有类似的语境,就有类似的意义。
向量语义结合了两种方向:
1. 分布:通过观测语境中的其他词语来定义一个词。
2. 向量:把一个词定义为一个由一串数字表示的向量,即N维空间中的一个点。
词嵌入:表示词语的向量被称为词嵌入(将词语嵌入到特点的向量空间)。优势在于通过无监督的方式进行学习,找到词语相似性与短语相似性,从而进行分类。
词与向量
通过共现矩阵的方式将词与向量联系起来,表现形式有Term-Document Matrix、Term-Context Matrix。
Term-Document Matrix:以词在文章中的出现频次为基准,构成有V行(词汇表中的每一个词汇类型)D列(集合中的每一个文章)的矩阵,比较每篇文章在V*D维向量空间中所构成的向量。
以莎士比亚的四部戏剧为例,从中选择“battle”、“good”、”fool“、”wit“四个词,统计他们在四部戏剧中出现的次数,数据如图2所示:
选取battle和fool两词作为两个维度时,4部戏剧所表现的向量如图3所示:
Term-Context Matrix:对于文档,相似的文档有相似的文档向量,这一原则同样适用于词,相似的词出现在相似的文档中,所以它们有相似的词向量。
其维度由不同类型的上下文所决定。与词文档矩阵不同的地方在于,矩阵的列由单词而不是文档标记。由此该矩阵的维数是:V*V,每个单元格记录行(目标)词和列(上下文)词在训练集中的某些上下文同时出现的次数。当上下文是整个文档时,单元格表示两个词在同一文档中出现的次数。通常设置一个包含9个单词的窗口。以目标词为中心,窗口包含的词即为上下文。
矩阵中单元格的数值通过统计每一次目标单词出现时,窗口内其他单词的出现个数填充。图4为从语料库中计算出4个词的词共现矩阵。图5为可视化。
余弦相似度
余弦相似度的作用:为了定义两个目标词v和w之间的相似度,需要一个可度量的量来获取这两个词的向量同时返回向量的相似度。余弦相似度是目前最常用的度量相似度的方法,测量的是向量间夹角的余弦。
在NLP中使用向量相似性的多数度量方法都是基于点积(或称内积),点积之所以可以作为相似度的测量指标,是因为如果两个向量在同一个维度都有较大的值,点积的结果就大。如果向量正交,则点积为0。点击可以表示出向量之间的强相异性。公式如下: 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_iw_i=v_1w_1+v_2w_2+...+v_Nw_N dotproduct(v,w)=v⋅w=i=1∑Nviwi=v1w