Alex_McAvoy

想要成为渔夫的猎手

单词向量空间

【概述】

自然语言处理(Natural Language Processing,NLP)中,一个核心问题是对文本的语义内容进行表示,并进行文本间的语义相似度计算

最简单的一种方法是利用单词向量空间模型(Word Vector Space Model,WVSM),对于给定的文本集合,将其中的每一个文本的语义信息用一个向量来表示,向量的每一维对应一个单词,其数值为该单词在该文本中出现的频数或权值,这样一来,文本集合中的每个文本都表示为一个向量,存在于一个向量空间中,向量空间的度量就表示为文本间的语义相似度

可以发现,这种方法基于一个基本假设:文本中的所有单词的出现情况表示了文本的语义信息

【定义】

对于一个含有 $n$ 个文本的集合 $D=\{d_1,d_2,\cdots,d_n\}$,以及在所有文本中出现的 $m$ 个单词的集合 $W=\{w_1,w_2,\cdots,w_m\}$,将单词在文本中出现的数据用一个单词-文本矩阵(Word-document Matrix)表示

其中,元素 $x_{ij}$ 表示为单词 $w_i$ 在文本 $d_j$ 中出现的频数或权值,当采用权值时有多种方法,常见的有:One-Hot 编码词袋模型TF-IDF 算法

可以发现,单词向量空间模型直接使用单词-文本矩阵的信息,其中第 $j$ 列向量表示文本 $d_j$,其中的权值 $x_{ij}$ 越大,说明对应单词 $w_i$ 在该文本 $d_j$ 中的重要度就越高

此时单词-文本矩阵可写为:

由于每个文本中出现的单词种类通常较少,因此单词-文本矩阵 $X$ 是一个稀疏矩阵

【语义相似度】

由于文本集合 $D$ 中的每个文本 $d_i$ 都表示为一个向量 $\mathbf{x}_i$,存在于一个向量空间 $X$ 中,此时向量空间的度量就可以用来表示为文本间的语义相似度

常见的向量空间度量有内积、标准化内积等,因此对于文本 $d_i$ 和文本 $d_j$,其相似度为:

直观来看,在两个文本中共同出现的单词越多,语义内容就越相近,此时对应的单词向量同不为零的维度就越多,内积就越大,说明两个文本在语义上越相似

需要注意的是,两个文本的语义相似度不是由几个单词是否在两个文本中出现决定的,而是由所有单词在两个文本中共同出现的模式决定的

由于词向量通常是稀疏的,两个向量的相似度计算只需要在其同不为零的维度上进行即可,需要的计算很少,但由于自然语言的单词具有一词多义性(Polysemy)多词一义性(Synonymy),即同一个单词可以表示多个语义,多个单词可以表示同一个语义,因此基于单词向量的相似度计算虽然计算效率高,但存在不精确的问题

感谢您对我的支持,让我继续努力分享有用的技术与知识点!