word2vec相似度计算_干货|文本相似度计算
点击上方“AI遇见机器学习 ”,选择“星标”公众号
原创干货,第一时间送达

一、余弦测量相似度
为了衡量目标词v和w之间的相似程度, 我们需要一种方法来计算这两个向量化并提供它们之间相似程度的量化指标. 在目前的研究中发现使用余弦值作为衡量向量间相关性的标准是最常见的方法. 与自然语言处理领域中广泛采用的其他向量相似性测量方法类似, 余弦值也是基于线性代数中的点积运算, 同时也被称作内积:

我们注意到,在机器学习领域中普遍采用的一种相似性度量化方法是基于点积(dot product)计算。当两个高维空间中的样本在各自维度上的取值较大时,在这种情况下两者的point product往往会较高地表现出较强的similarity measure特性。然而尽管如此dot product作为主要使用的similarity measure存在一个局限:它倾向于偏好具有较长长度的样本(vectors)。为了衡量一个样本自身的特征其长度被定义为:

随着向量长度增加,在其他维度上数值也会相应增大,在这种情况下其内积也会随之扩大。高频词通常具有较长的词向表示,在这种情况下它们往往与其他更多词汇共同出现,并且每个词在共同上下文中表现出较高的共现概率。这导致高频词间的原始内积会显著较大;然而这引出一个问题:我们希望衡量两个词之间相似程度的方法不受其出现频率的影响。解决这一需求的一种简单方法就是将两个词向量进行归一化处理——即将其内积除以这两个词向表示长度的成绩(即归一化操作)。经过该归一化过程后所得的结果等价于计算两词向量之间的夹角余弦
与向量
的点积的定义出发:

因此,两个向量
和
之间的余弦相似度度量可以计算为:

在某些应用程序中,在对每个向量进行归一化处理之前将其长度作为基准进行标准化计算。这样就能从这些单位向量中确定它们的方向。
除以
在单位向量的情况下,在数学中我们定义两个向量之间的点积结果等于cosθ(其中θ表示两向量之间的夹角)。具体而言,在二维空间中:
- 当两向量方向相同时(即θ=0度),其点积结果为1;
- 当两向量正交时(即θ=90度),其点积结果为0;
- 当两向量方向相反时(即θ=180度),其点积结果为-1。
然而需要注意的是,在本研究中我们采用的是基于词频计数的方法来进行语义相似性计算,在这种情况下所有词频值均为非负数。
接下来让我们考察如何利用这些预设好的词语来评估它们与主题的相关性:
假设我们有一个包含特定关键词及其权重的预设表,
我们可以计算每个候选词与目标主题之间的相关程度,
进而确定最能体现主题特征的那个词语。

这个模型选择了information这一项,它更偏向于digital而非apricot,这一结果看似合理。图6.7展示了可视化结果

通过图形展示余弦相似度的概念及其计算原理,本研究展示了三个单词向量(apricot、digital和information)在二维空间中的分布情况以及其所在的词组数量与数据规模.值得注意的是,在该图中,digital与information之间的角度小于apricot与information之间的角度.此外,当两个向量越相似时,它们的夹角越小,相应的余弦值也越大;当两向量夹角为0时,它们的方向完全一致,此时的余弦值达到最大值1.
二、TF-IDF:向量中的权重项
图6.5展示了共生矩阵(co-occurrence matrix),它通过记录两个单词共现的原始频率来表示每个单元。 然而研究表明,简单的频率无法充分反映单词之间的关联性。 一个问题在于原始数据分布严重倾斜且缺乏区分度。 如果我们的目标是探索像apricot和pineapple这样的具体词汇之间的关系而非digial与information之间的联系,则需要避免使用频繁出现在各种上下文中如the, it或they等通用词汇。 如图6.3所示,在莎士比亚作品中‘good’这个词通常出现在多个戏剧版本中,并未显示出显著的变化趋势
这个方法存在内部矛盾。高频且无处不在的词通常会对分类效果产生负面影响(例如像"or"这样的高频词),但并非所有高频词都具有相同的影响程度)。我们需要找到一种能够平衡这种现象的方法;TF-IDF算法是一种基于两个直觉设计出的新颖模型(这里使用连字符而不是负号表示)。该算法通过将两个因素进行乘积形式计算来综合考虑各方面的贡献:一方面它考虑到词项在整个语料库中的分布情况……
第一个是术语频率(Luhn, 1957):表示文档中每个单词出现的次数。一般而言,在信息检索系统中我们会稍微降低原始计算出的频率值。具体来说,在计算过程中我们采用的是经过调整后的公式
,从而得出以下频率权重一词的定义:

因此,在文档中出现10次的项的tf= 2,100次的tf= 3,1000次的tf=4,以此类推。
第二个因素被用来赋予那些仅在少数几个文档中出现的单词以较高的权重。
对于仅包含在少数文件中的术语而言,在区分这些文件与其他文件时具有一定的有效性;而在整个集合中频繁出现的术语则相对不那么有用。
一个术语t在其语料库中的文档频率
就相当于它所包含的文档数量而言,
相反地,
术语的总出现次数是指该词在整个收集中出现过的总次数。
在莎士比亚的37部戏剧集中,
这两个词是Romeo和action,
它们在整个莎士比亚戏剧集中都出现了113次,
不过它们在不同方面的分布情况却大相径庭:
Romeo这个词仅仅出现在莎士比亚的一个戏剧中。
如果我们想要找到关于罗密欧的相关文献中的浪漫困境,
那么选择"罗密欧"这个词作为关键词将会更有助于提高搜索结果的相关性:
它的权重会非常高:

我们采用逆文档频率(inverse document frequency)及idf项权重来给予那些更具辨别力的单词例如Romeo以重要性该方法具有显著的效果idf基于分数计算
定义的,其中N是集合中文档的总数,
表示第t项(记为term t)在语料库中出现的文档总数(即包含term t的所有文档数量)。当某术语出现在越少的文档中时,其权重值越高。对于所有出现在至少一个文档中的术语,默认其IDF值设为1。在莎士比亚作品中,默认将每篇作品视为一篇独立的文章;而处理像维基百科这样的百科全书时,则将每个条目视为一篇单独的文章;对于报纸文章集合,则每篇报纸视为一篇独立的文章。需要注意的是,在某些情况下您的语料库可能缺乏明确的文章划分标准,在这种情况下为了计算IDF值您可以自行将整个语料库划分为多个独立的小型文档集合来进行分析。考虑到通常处理的大规模语料库中含有大量独立的文章


这里为了避免分母为0,通常要加1
在莎士比亚语料库中有一些单词的idf值信息,在这些信息量方面存在显著差异。具体来说,在莎士比亚的作品集中有一些词汇仅在一个戏剧中出现过且信息量极大,在莎士比亚的作品集中有一些词汇则会多次出现于不同的情节发展中,在莎士比亚的作品集中还有一些常见但并不失其通用性的词汇如fool这样的常见词汇。由于这些词语普遍存在于莎士比亚所著的所有37部戏剧作品中因此它们在文本分析过程中并未表现出明显的歧义性

文档d,
中词t的值的tf-idf加权因此将术语频率与idf组合:

图6.8用于将tf-idf权重应用于莎士比亚term-document矩阵中的图6.2数据结构。值得注意的是,在与单词good相关的维度上计算出的所有tf-idf值均为零;这是因为该术语出现在每一个样本文档中,在比较不同剧本时其影响力就被排除在外了。类似地,在涉及fool这一词的情况中(共有37部剧中仅出现于其中36部),其权重显著降低
在信息检索领域中,tf-idf加权被视为一种核心工具,在用于分析单词共现性方面表现突出,并广泛应用于自然语言处理的各种场景。

该研究采用基于TF-IDF的加权语料矩阵方法,在分析莎士比亚《四幕 play》中词汇分布的基础上(如图6.2所示),对其中的四个关键词汇进行了深入探讨。值得注意的是,在计算过程中,IDF权重成功地抵消了常用词汇如"good"所带来的影响,并显著减少了其他常见词汇如"fool"对结果的影响。
三、tf-idf向量模型的应用
综合上述
tf-idf向量模型也可用于判断两个文档是否相似。该方法可用来判断两个文档之间是否存在较高的相似度。我们可以利用文档中的每个单词生成其对应的词项向量,并对这些词项向量进行综合评估。即质心是什么多维空间中的综合指标?当存在k个词项(term)时,则这个综合指标被称为质心。
,质心文档向量d为:

基于两个给定的文档d1和d2, 我们能够生成它们的向量表示, 并通过余弦相似性cos(d1,d2)评估这两个文档间的关联程度. 文档间的相似性对于多种应用场景具有重要意义; 例如用于信息检索, 检测剽窃行为, 推荐相关新闻内容, 或者在数字人文领域中比较不同文本版本之间的异同.
另一种表示词向量的算法是word2vec和glove等
四、Visualizing Embeddings
可视化嵌入是一种促进理解和应用这些词语含义模型的重要目标。然而我们如何做到将一个100维向量直观展示出来呢?将一个词嵌入到空间中最简单的方式就是列举与其最相似的词并基于余弦相似度对相关词语进行排序例如采用GloVe方法与'蛙'最接近的七个词包括青蛙蟾蜍litoria细趾蟾科rana蜥蜴以及eleutherodactylus另一种可视化的办法则是利用聚类算法以展示嵌入空间中哪些词与其他词具有相似性层次聚类结构如图6.1所示该图展示了通过t-SNE投影方法得到的一种词向量可视化结果

来源:知乎,浪大大链接:https://zhuanlan.zhihu.com/p/60411472
推荐阅读
干货|学术论文怎么写
资源|NLP书籍及课程推荐(附资料下载)
干货|全面理解N-Gram语言模型
资源|《Machine Learning for OpenCV》书籍推荐

欢迎关注我们,看通俗干货!

