w2v

1、One-Hot representation

又称为有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效。

在实际的机器学习应用任务中,特征有时候并不总是连续值,有可能是一些分类值,如性别可分为:男/女,对于这样的特征,通常我们需要对其进行特征数字化;还可能有一些离散值,在回归,分类,聚类等算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。而我们使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点,这样会让特征之间的距离计算更加合理。One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

举个例子来说吧,按照N位状态寄存器来对N个状态进行编码的原理,我们这样处理:
性别特征:["男","女"](这里N=2):
男 => 10
女 => 01
祖国特征:["中国","美国","法国"](这里N=3):
中国 => 100
美国 => 010
法国 => 001
运动特征:["足球","篮球","排球","乒乓球"](这里N=4):
足球 => 1000
篮球 => 0100
排球 => 0010
乒乓球 => 0001
那么如果一个样本为["男","中国","乒乓球"]的时候,完整的特征数字化的结果为:
[1,0,1,0,0,0,0,0,1]

通过这个例子我们可以清晰地看到One-Hot的优缺点:
1,通过one-hot编码,可以对特征进行了扩充。
2,连续变量经过编码后,从一个权重变为多个权重,提升了模型的非线性能力。
3,不需要多参数进行归一化处理。
4,随着将大权重拆分成几个小权重管理特征,降低了异常值对模型的影响,增加了模型稳定性。
5,生成了较大的稀疏矩阵。

2、分布式表示(Distributed representation)

分布式表示,描述的是把文本分散嵌入到另一个空间,一般从是从高维空间“嵌入”到低维空间。基本思路是通过训练将每个词映射成一个固定长度的短向量(当然这里的“短”是相对于 one-hot representation 的“长”而言的),所有这些向量就构成一个词向量空间,每一个向量可视为该空间上的一个点。此时向量长度可以自由选择,与词典规模无关。

为更好地理解上述思想,我们来举一个通俗的例子:假设在二维平面上分布有 N 个不同的点,给定其中的某个点,现在想在平面上找到与这个点最相近的一个点,我们是怎么做的呢?首先,建立一个直角坐标系,基于该坐标系,其上的每个点就唯一地对应一个坐标 (x,y);接着引入欧氏距离;最后分别计算这个点与其他 N-1 个点之间的距离,对应最小距离值的那个点便是我们要找的点了。

上面的例子中,坐标(x,y) 的地位相当于词向量,它用来将平面上一个点的位置在数学上作量化。坐标系建立好以后,要得到某个点的坐标是很容易的,然而,在 NLP 任务中,要得到词向量就复杂得多了,而且词向量并不唯一,其质量也依赖于训练语料、训练算法和词向量长度等因素。

word2vector

word2vec工具的提出正是为了解决上面这个问题 。它将每个词表示成一个定长的向量,并使得这些向量能较好地表达不同词之间的相似和类比关系。我们要知道的是:CBOW(Continuous Bag-of-Words Model)和Skip-gram (Continuous Skip-gram Model),是word2vec的两种训练模式。而负采样(Negative Sample)和层次softmax(Hierarchical Softmax)则是两种加速训练的方法。

基于Hierarchical Softmax的连续词袋模型(CBOW)

层次softmax的基本原理:
根据标签(label)和频率建立霍夫曼树;(label出现的频率越高,Huffman树的路径越短)
Huffman树中每一叶子结点代表一个label;
具体实现方法就是将输入层中的词和词组构成特征向量,再将特征向量通过线性变换映射到隐藏层,隐藏层通过求解最大似然函数,然后根据每个类别的权重和模型参数构建哈夫曼树,将哈夫曼树作为输出。

假如现在有1000篇新闻文档,把这些文档拆成一个个的字,去重后得到3000个字,然后把这3000个字作为字典,进行文本表示的模型,叫做词袋模型。这种模型的特点是字典中的字没有特定的顺序,句子的总体结构也被舍弃了。



从上面词袋模型的示意图可以看出,词袋模型拥有三层,与神经概率语言模型相比,主要有以下三点不同:
1、从输入层到投影层:不是拼接,而是累加求和;
2、没有隐藏层;
3、输出层不再是线性结构,而是树形结构。

输入层
Context(w)=[w(t−2),w(t−1),w(t+1),w(t+2)]
所以共有2c*m个节点。
一般神经网络的输入都是已知的, 而Word2Vec 网络中的输入, 是通过SoftMax()计算后才得到的。

投影层
有m个节点。对输入层各词向量作加和处理。projection(w)=∑Context(w)

输出层
输出层是一棵树, 一棵哈夫曼树! 这是与普通神经网络的显著不同之处。 这棵树的叶子节点数就是词典D的大小∣D∣。

每一个单词w, 都对应一个哈夫曼树叶子节点, 因为是二叉的, 所以从根节点走到w的叶子节点的过程, 就是一个在不断地进行二分类的过程。不妨将左结点1记为负样本, 右节点0记为正样本,基于逻辑斯蒂函数基于逻辑斯蒂函数来看看推导过程。

(原图上传为横向,有需要的可联系私发)

基于Hierarchical Softmax的跳字模型(Skip-gram)

跳字模型假设基于某个词来生成它在文本序列周围的词。

与上面提到的词袋模型恰恰相反,构造的目标函数变成了。

Negative Sample 负采样

训练一个神经网络意味着要输入训练样本并且不断调整神经元的权重,从而不断提高对目标的准确预测。每当神经网络经过一个训练样本的训练,它的权重就会进行一次调整。语料库的大小决定了权重矩阵的规模大小。需要承认的是使用哈夫曼树来代替传统的神经网络,可以提高模型训练的效率。但是如果我们的训练样本里的中心词w是一个很生僻的词,那么就得在哈夫曼树中辛苦的向下走很久了。我们可以用这三个方法来减少计算量:
1、将常见的单词组合(word pairs)或者词组作为单个“words”来使用。
2、对高频词进行抽样来减少训练样本的个数
3、最后最重要的一点,就是“nagative sampling”方法,这样每个训练样本只会更新一小部分模型权重,从而降低计算负担。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,104评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,816评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,697评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,836评论 1 298
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,851评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,441评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,992评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,899评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,457评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,529评论 3 341
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,664评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,346评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,025评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,511评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,611评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,081评论 3 377
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,675评论 2 359

推荐阅读更多精彩内容

  • 前面的文章主要从理论的角度介绍了自然语言人机对话系统所可能涉及到的多个领域的经典模型和基础知识。这篇文章,甚至之后...
    我偏笑_NSNirvana阅读 13,928评论 2 64
  • 主要内容 自然语言输入编码 前馈网络 卷积网络 循环网络(recurrent networks ) 递归网络(re...
    JackHorse阅读 4,142评论 0 2
  • 机器学习术语表 本术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义。 A A/B 测试 (...
    yalesaleng阅读 1,972评论 0 11
  • 最近新接触文本分类问题,对于我来数第一个问题就是Word Embedding这个词到底是什么意思,因此也就开始学习...
    小松qxs阅读 24,879评论 2 27
  • 本文编译自谷歌开发者机器学习术语表项目,介绍了该项目所有的术语与基本解释。 A 准确率(accuracy) 分类模...
    630d0109dd74阅读 2,008评论 0 1