1、GloVe 是什么
GloVe(Global Vectors for Word Representation)即全局词向量表示,是由斯坦福大学的研究人员在 2014 年提出的一种无监督学习算法,用于从语料库中学习词向量。它结合了基于统计的矩阵分解方法和基于上下文窗口的局部上下文信息,旨在通过对语料库中单词共现矩阵的分析,将每个单词映射到一个低维的向量空间中,使得语义相近的单词在向量空间中的距离较近。
具体来说,GloVe 算法基于一个假设:在语料库中,经常出现在相似上下文中的单词往往具有相似的语义。它通过构建一个大型的单词共现矩阵,记录每个单词在其他单词上下文中出现的次数,然后对这个矩阵进行因式分解,得到每个单词的向量表示。例如,在 “苹果” 这个词的上下文中,经常会出现 “水果”“红色”“香甜” 等词,而在 “香蕉” 的上下文中,也会出现类似的描述水果特征的词,那么通过 GloVe 算法学习到的 “苹果” 和 “香蕉” 的词向量在向量空间中就会比较接近 。
例子一:相似词语的向量关系
假设我们有一个小型语料库,包含以下 10 句话:
【1】小明喜欢踢足球。
【2】足球比赛很精彩。
【3】小红爱看篮球比赛。
【4】篮球运动员都很厉害。
【5】排球训练很辛苦。
【6】我参加了排球比赛。
【7】这场足球赛真激烈。
【8】篮球场地很大。
【9】排球是一项有趣的运动。
【10】我想学打篮球。
步骤-1:构建单词共现矩阵