Hri*_*uri 10 nlp machine-learning word2vec word-embedding glove
word2vec 和手套有什么区别?这两种方法都是训练词嵌入的方法吗?如果是,那么我们如何同时使用两者?
Abh*_*25t 17
Word2vec 是一种预测模型:通过尝试预测给定上下文的目标单词(CBOW方法)或来自目标的上下文单词(skip-gram方法)来进行训练。它使用可训练的嵌入权重将单词映射到相应的嵌入,用于帮助模型进行预测。用于训练模型的损失函数与模型\xe2\x80\x99s 的预测效果有关,因此当模型训练以做出更好的预测时,它将产生更好的嵌入。
\nGlove 基于单词上下文矩阵的矩阵分解技术。它首先构建一个大的(单词 x 上下文)共现信息矩阵,即对于每个 \xe2\x80\x9cword\xe2\x80\x9d (行),计算我们在其中看到该单词的频率(矩阵值)大型语料库中的一些 \xe2\x80\x9ccontext\xe2\x80\x9d (列)。\xe2\x80\x9ccontexts\xe2\x80\x9d 的数量会非常大,因为它本质上是大小组合。因此,我们分解这个矩阵以生成一个低维(单词 x 特征)矩阵,其中每一行现在生成每个单词的向量表示。一般来说,这是通过最小化\xe2\x80\x9c重建损失\xe2\x80\x9d来完成的。这种损失试图找到可以解释高维数据中大部分方差的低维表示。
\n在GloVe之前,单词表示的算法可以分为两大主流:基于统计的(LDA)和基于学习的(Word2Vec)。LDA 通过共现矩阵上的奇异值分解 (SVD) 生成低维词向量,而 Word2Vec 采用三层神经网络来执行中心上下文词对分类任务,其中词向量只是副产品。
\nWord2Vec 最令人惊奇的一点是,相似的单词在向量空间中位于一起,并且单词向量上的算术运算可以构成语义或句法关系,例如 \xe2\x80\x9cking\xe2\x80\x9d - \xe2\x80\ x9cman\xe2\x80\x9d + \xe2\x80\x9cwoman\xe2\x80\x9d -> \xe2\x80\x9cqueen\xe2\x80\x9d 或 \xe2\x80\x9cbetter\xe2\x80\x9d - \xe2 \x80\x9cgood\xe2\x80\x9d + \xe2\x80\x9cbad\xe2\x80\x9d -> \xe2\x80\x9c更差\xe2\x80\x9d。然而LDA无法在向量空间中维持这种线性关系。
\nGloVe 的动机是迫使模型明确地基于共现矩阵学习这种线性关系。本质上,GloVe 是一个具有加权最小二乘目标的对数双线性模型。显然,它是一种基于统计矩阵使用机器学习的混合方法,这也是 GloVe 和 Word2Vec 之间的一般区别。
\n如果我们深入研究GloVe中方程的推导过程,我们会发现直觉上固有的差异。GloVe 观察到词与词共现概率的比率有可能编码某种形式的含义。以StanfordNLP(词表示的全局向量)为例,考虑目标词ice和steam与词汇表中各种探测词的共现概率:
\n然而,Word2Vec 基于纯粹的共现概率,使得目标词周围的词作为上下文的概率最大化。
\n在实践中,为了加快训练过程,Word2Vec采用负采样,用对真实数据和噪声数据进行操作的sigmoid函数来代替softmax函数。这明确地导致单词在向量空间中聚集成一个圆锥体,而 GloVe\xe2\x80\x99s 单词向量的位置更加离散。
\ngoj*_*omo 13
是的,它们都是训练词嵌入的两种方式。它们都提供相同的核心输出:每个词一个向量,向量以有用的方式排列。也就是说,向量的相对距离/方向大致符合人类对整体词相关性的想法,甚至与某些显着语义维度上的相关性一致。
Word2Vec 通过反复迭代训练语料库,对神经网络进行增量、“稀疏”训练。
GloVe 致力于拟合向量以对从语料库构建的巨型单词共现矩阵进行建模。
使用相同的语料库,创建相同维度的词向量,并同样关注元优化,它们生成的词向量的质量将大致相似。(当我看到有人自信地声称一个或另一个肯定更好时,他们经常将一种算法的一些调整/最佳情况与另一种粗略/任意默认值进行比较。)
我更熟悉 Word2Vec,我的印象是 Word2Vec 的训练可以更好地扩展到更大的词汇表,并且具有更多可调整的设置,如果您有时间,可能允许将您自己训练的词向量更适合您的特定应用程序。(例如,使用 small-versus-largewindow参数可以对单词的最近邻是“插入替换词”还是更一般的词在相同主题中使用的词产生很大影响。不同的下游应用可能更喜欢以一种或另一种方式倾斜的词向量。)
相反,GLoVe 的一些支持者吹嘘它不需要元参数优化就可以做得相当好。
除非将它们相互比较,否则您可能不会同时使用它们,因为它们在词向量的任何下游应用程序中都扮演着相同的角色。
| 归档时间: |
|
| 查看次数: |
6438 次 |
| 最近记录: |