循环神经网络(四)
——words2vec、负采样、golve
(原创内容,转载请注明来源,谢谢)
一、概述
本文主要学习几种现有的流行的词嵌入算法,包括words2vec、负采样、golve,另外学习了情绪分析方法,以及解决现有词汇组合偏见的问题。
二、words2vec
1、回顾Skip-grams
Skip-grams是抽取上下文和目标词进行配对,并构建监督学习算法,实现相近词语的查找,即给定上下文,在正负若干词距(如10个词的距离)进行匹配。
这个监督学习,目的是为了更好的得到词嵌入模型。
2、Word2Vec模型
假设词汇表1万个单词,现在需要训练出上下文(c)至目标词语(t)之间的关系。即从o(one-hot向量)->E(嵌入矩阵)->e(嵌入向量)->softmax->y。
即目标在于找到词嵌入的简化模型和神经网络。这就是是Word2Vec的skip-grams模型。
word2vec是指将词语word变成向量vector的过程,这一过程通常通过浅层的神经网络完成例如CBOW或者skip-grams来实现,同样可以视为构建词嵌表E的过程。
3、主要问题
由于每次迭代需要便利整个词汇表,因此计算速度是主要问题。
解决方案:使用分级的softmax分类器。实际中即使用一个二叉树,如下图最右侧部分,较常见的词汇在树的相对靠上的位置,而并不常见的词汇会在更深的位置,以便常用的词语尽快能够找到。这个二叉树即赫夫曼二叉树(Huffman Binary Tree)。
但是速度仍然很慢,因此引入其他模型。
另外,对上下文c的采样,并不是单纯的在训练集语料库上均匀、随机采样,而是采用了不同的启发式的规则,以平衡更常见的词。
三、负采样
1、定义
负采样(negative sampling),是为了加速上面words2vec的处理过程,主要解决的是给定一对单词,去预测这是否是上下文-目标词(context-target)。
例如orange-juice是目标词,标记为1,称为正样本;orange-king不是目标词,标记为,称为负样本。
同样是采用监督学习的方法来实现,但是负样本的词选择数量减少,对于大样本集仅采集,每训练一个正样本仅使用2~5个负样本;对于小样本集也只使用5~20个负样本。
2、公式
公式如下图,目的是估计y=1的概率,即两个词语匹配的概率。
这里是10000个二分类logistic回归分类器,但每一轮的迭代,不需要再迭代训练10000遍,只训练其中的5个,训练对应真正目标词的那一个分类器,再训练随机选取的4(即超参数k)个负样本。这样减少了训练量,加快计算速度。
3、选负样本方式
采用下面的公式,即对词频的3/4次方除以整体的值,进行采样。也可以下载网上开源的已经训练好的词向量。
四、Golve
1、概述
Golve(global vectors for word representation),是另一种训练词向量的方式。这个算法不如skip-gram常用,但是速度更快,模型更简单。
定义一些符号:
Xij:表示单词i在单词j上下文中出现的次数,这里i、j可以看成上下文c和目标词汇t。显然Xij=Xji。可以把其看为一个词频计数器。
2、模型
公式如下:
其中,log决定两个词的词频。为了解决log 0无意义的情况,引入加权项f(x),当x=0时f=0。另外,f可以均衡诸如a、the、of等频繁词。
3、词嵌入特征化
由于无法保证词嵌入向量的每个独立分量是能够让我们理解的,但可以确定的是,每个分量是和我们预期的一些特征有关联,其可能是一些我们能够理解的特征的组合而构成的一个组合分量。
故可以通过公式,将两个不成交的向量,组成坐标系供使用,即平行四边形的变换。
五、情绪分类
1、概述
情绪分类,解决的问题是,通过评论的一句话,来判断句子的感情,并打出分值,如下图所示:
2、均值法
可以用均值法来实现,即给每个词的情感,打上初始分数。再根据一句话所有词语的分数,计算平均分,通过softmax,进而算出结果。
这个做法有一个重大的问题——没有考虑词序。这会导致多数的积极词汇削弱前面消极词汇的影响,从而造成错误的预测。例如上面的lacking in,表示缺乏,后面的那些good都是表示缺乏good,而平均值法会把这些good的分数记上,反而会给高分。这就是不合理的地方。
3、RNN法
为了解决均值法的不考虑词序的问题,故可以采用RNN网络,这样效果好很多。
六、词嵌入除偏
1、概述
词嵌入除偏(debiasing word embedding),是解决一些社会历史的偏见问题。例如下面的例子,对于工作存在性别歧视,故需要消除这类歧视。
2、做法
1)定义除偏见方向
例如,本例子中是以性别作为待消除的偏见。做法是对带有性别色彩的词语向量,进行相减并且平均,得到一个或多个偏见趋势相关的维度,以及大量不相关的维度。
2)中和化
定义一些性别不明确的词语,如职业。通过减小这些词汇在得到的偏见趋势维度上值的大小,以减少水平方向的距离。
3)均衡化
将第一步的对称词,调整到中和词的均衡方向,以消除偏见。
获取中和词的方式:训练一个分类器,以确定哪些词是中和词。另外,大部分词都不具有性别指向,只有小部分词具有明确性别的区分,因此较好指定。
——written by linhxx 2018.03.29
领取专属 10元无门槛券
私享最新 技术干货