Distributed Representations of Words and Phrases and their Compositionality 论文简解

Distributed Representations of Words and Phrases and their Compositionality 论文简解

摘要

该文章的主要研究工作是在Skip-gram模型的基础上提出了几种模型的改进方法,可以提升原始Skip-gram模型的训练速度和预测精度。具体为:

  • Subsampling (降低高频和低频无用词汇对预测结果影响,并加快训练速度);
  • Hierarchical softmax(降低训练的时间复杂度);
  • Negative sampling(一种简化版的 Hierarchical softmax)。
  • simple method for finding phrases(处理合成词的训练问题)。

1.介绍

向量空间中单词的分布式表示可帮助学习算法更好地实现,通过将相似的单词进行分组来提高自然语言处理任务的性能。词向量的使用最早可以追溯到1986年。
Mikolov 等人提出的Skip-gram模型是一种高效高质量词向量的实现方法。不同于在此之前提出的词向量实现方法需要涉及密集矩阵乘法(主成分分析等方法)。该模型在单机上的训练也是非常高效的:一天时间可以处理超过1000亿个词汇。
此外,通过线性神经网络训练出的词向量表现出了许多有趣的线性转换特征。比如Madrid(马德里)的词向量减去Spain(西班牙)的词向量再加上France(法国)的词向量所得的结果接近Paris(巴黎)的词向量。这一特性说明Skip-gram模型学习到了词汇之间潜在的线性特征

2. Skip-gram 模型

Skip-gram的训练目标是寻找词汇一种词向量,通过该词向量可以预测出词汇在句子中(或者文本中)的相邻词汇,所以Skip-gram模型的训练可以看成是最大化平均对数似然函数:

在这里插入图片描述
其中c是模型训练的观测窗口的大小,窗口越大模型的效果会越好。原始的Skip-gram模型在求解p(wt+j| wt)时使用的softmax函数:
在这里插入图片描述
公式中W是字典中的所有词汇,所用直接计算该公式是不实际的,因为通常W的量是非常巨大的(105~107的量级)。

2.1 Hierarchical Softmax

一种有效解决softmax函数时间复杂度的方法是采用层次化softmax函数(Hierarchical Softmax)来替代原始的softmax函数。该函数可以将原始O(W)的时间复杂度下降为O(log2W)。
以SVM中的多分类问题作为类比,SVM是一种经典的二分类问题,当处理多分类问题时,可以将多分类处理成多个二分类的组合形式:
在这里插入图片描述
这是一种二叉树的数据结构,在本文中作者将其称为Hierarchical Softmax,如图所示:在这里插入图片描述
从图中可以看书,输出层被改造成了一种二叉树结构,该二叉树的叶子节点为字典中的所有词汇,而每个非叶子节点都可以认为是一个二分类的神经元(文章中采用逻辑回归的二分类模型)。计算公式为:
在这里插入图片描述

2.2 Negative Sampling

另外一个替代层次化softmax饿的方法是Noise Contrasive Estimation。该方法借助于噪声,使用不属于目标词所在上下文的词创建与实际词对不相符的词对,进而可以将softmax激活函数替换为sigmoid 函数,负采样的目标可以定义为:
在这里插入图片描述

2.3 Subsampling of Frequent Words

该章节所涉及的方法是为了处理样本空间中的高频和低频无用词汇的。对于英文中的某些冠词(the、a、an等)会大量出现,但是对词向量的应用是没有实际意义的,所以这些词汇可以考虑进行剔除,作者提出了一个概率计算公式:
在这里插入图片描述
公式中的*f(wi)*是词汇的出现频率,当该概率超过设置的阈值时,将该词汇进行剔除(虽然作者也说了这一种拍脑袋想出来的方法,但是还是有用的)。

3. 测试结果

略。

4. 总结

本文作者提出了三种优化Skip-gram模型的方法,实际上这类方法还有很多,比如:微分softmax、CNN-softmax、具有适应的重要性采样。毕竟,对于Word2vec模型最大的挑战就是如何降低softmax层的计算复杂度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值