word2vec

由于对nlp还没有整体的了解,只是看了几篇博客。现,只说word2vec。word2vec其实只是工具。

输入是 语料库。

假设是 每个词对应一个连续的特征向量;一个连续平滑的概率模型(此模型的输入是词向量的序列,输出是这段序列的联合概率)

参数是 词向量;概率模型里的参数。

目标是  极大似然。极大似然的方向不同(word到context,context到word),就有了CBOW和Skip-gram两个模型。

输入: 由语料库得到的,one-hot 词向量。概率模型: one-hot 向量* 要学习的词向量,可以得到分布的词向量。再经过神经网络,转化成概率。

word2vec调优(别人的经验总结):

1. 根据具体任务,选一个领域相似的语料。语料对词向量的影响比模型的影响要重要得多得多得多。领域选好了,可能只要 1/10 甚至 1/100 的语料,就能达到一个大规模泛领域语料的效果。有时候语料选的不对,甚至会导致负面效果(比随机词向量效果还差)。当只有小规模的领域内语料,而有大规模的领域外语料时,到底是语料越纯越好,还是越大越好。在我们的实验中,是越纯越好。这一部分实验数据比较丰富,原文相对清楚一些。

2. 在这个条件下,语料越大越好。然后下载一个 word2vec 的新版(14年9月更新)

3. 语料小(小于一亿词,约 500MB 的文本文件)的时候用 Skip-gram 模型

4. 语料大的时候用 CBOW 模型。

CBOW是从输入的上下文信息来预测目标词(例如利用 [the cat sits on the] 来预测 [mat] );而skip-gram模型则是相反的,从目标词来预测上下文信息。一般而言,这种方式上的区别使得CBOW模型更适合应用在小规模的数据集上,能够对很多的分布式信息进行平滑处理;而Skip-Gram模型则比较适合用于大规模的数据集上。

5. 最后记得设置迭代次数为三五十次,维度至少选 50,就可以了。

至于评价标准:很难说,说不清楚。

1种是用类比评价。2种是直接把vector做特征,去看在模型的效果。

gensim 的word2vec 的参数说明:

classgensim.models.word2vec.Word2Vec(sentences=None,size=100,alpha=0.025,window=5,min_count=5,max_vocab_size=None,sample=0.001,seed=1,workers=3,min_alpha=0.0001,sg=0,hs=0,negative=5,cbow_mean=1,hashfxn=,iter=5,null_word=0,trim_rule=None,sorted_vocab=1,batch_words=10000)

sentences: 语料库。      size: 词向量的维度。   alpha :学习率 。   window:窗口长度。

min_count : 出现次数低于此值的词,可以忽略。 sg:0,CBOW。1,skip -gram  。默认是0。

workers:用多少线程去训练模型。

hs=  1, 在训练过程中用到分层softmax。 0 (default),negativeis 非0, 负采样。

negative  > 0, 负采样,表示有多少噪音词应该被 drawn (一般为 5-20),默认是 5。 0的话,不用负采样。

cbow_mean: 0, 上下文词向量的和.。默认是1,,上下文词向量的平均. 只在cbow有效。

iter:迭代次数,默认5。

trim_rule: 字典额外的规则。制定某个词是否应该在字典中,是否应该被去掉,或者保留。 如,word count < min_count则丢弃单词. 

sorted_vocab:默认为1, 在分配单词索引之前,按降序对词汇表进行排序。

batch_words:对于传递给每个worker(线程)的批处理example的大小(以字表示)。默认10000。

http://blog.csdn.net/szlcw1/article/details/52751314

http://spaces.ac.cn/archives/4233/#不是总结的总结

看到其他人的博客,才知道自己想的,看的,有多肤浅。所谓Embedding层,就是一个one hot的全连接层罢了(再次强调,这里说的完全等价,而不是“相当于”),而词向量,就是这个全连接层的参数;至于Word2Vec,就通过大大简化的语言模型来训练Embedding层,从而得到词向量(它的优化技巧有很多,但模型结构就只是这么简单);词向量能够减少过拟合风险,是因为用Word2Vec之类的工具、通过大规模语料来无监督地预训练了这个Embedding层,而跟one hot还是Embedding还是词向量本身没啥关系。

1. 解释为什么做文本的相似度或者分类时,可以把文本中词向量相加或者求平均之类,就可以有很好的效果。

如果我们用传统的词袋模型,不考虑词序,然后后面接一个全连接层。为了防止过拟合,这个全连接层的参数用预训练的词向量代替,那么结果就是等价于直接将对应的词向量取出,然后求和!也就是说,词向量求和得到句向量,实际上就是传统的词袋模型的等价物!

词向量的表达:最初的one-hot办法,维度由词库的大小决定,维度高,很稀疏,而且不考虑词之间的关系。关于降低维度,最初的方法就是SVD。而SVD分解等价于一个三层的自编码器,这就是一个N维输入,中间节点为n个,N维输出的自编码器方案,也等价于一个SVD分解。

再看word2vec,Word2Vec的一个CBOW方案是,将前后若干个词的词向量求和(embedding),后接一个N维的全连接层,并做一个softmax来预测当前词的概率。而这种词向量求和,等价于原来的词袋模型接一个全连接层(这个全连接层的参数就是词向量表,也是此模型中要求的参数),这样来看,Word2Vec也只是一个N维输入,中间节点为n个,N维输出的三层神经网络罢了,所以从网络结构上来看,它跟自编码器等价,也就是跟SVD分解等价。

http://spaces.ac.cn/archives/4216/

SVD相当于意味着聚类。

p(bj|ai)=∑k,lp(bj|dk)p(dk|cl)p(cl|ai)

每一项都有非常清晰的概率意义:

p(cl|ai)是ai表现为类别cl的概率;

p(dk|cl)是类别cl后接类别dk概率;

p(bj|dk)是已知类别dk时,元素为bj的概率。

我们通过概率模型,为SVD分解赋予了聚类意义。

那么可以思考SVD、HMM、word2vec、als等之间的相同点。理解输入矩阵、输出矩阵、矩阵分解和网络。

我们降维,并不是纯粹地为了减少储存量或者减少计算量,而是“智能”的初步体现

差别在于:1、Word2Vec的实现方案,可以看作是通过前后词来预测当前词或反过来,而自编码器或者SVD则是通过前后词来预测前后词;

         2、Word2Vec最后接的是softmax来预测概率,也就是说实现了一个非线性变换,而自编码器或者SVD并没有。

2. 什么样的词叫相似,用数学的表达是什么。Word2vec得到了词向量,都可以怎么用。

什么叫“相似”:相似度的定义是看场景的。

 余弦相似度表达的是,空间向量中,夹角,反向 。word2vec表达的词向量,是基于分布式表达。也就是用上下文的分布来表达词。但是无词序。而余弦值与向量模长没关系,因此它描述的是“相对一致”。那么,余弦相似度大,事实上意味着这两个词经常跟同一批词搭配,或者更粗糙讲,那就是在同一句话中,两个词具有可替换性。

相似也可以说是,另一种相似,可以理解为相关,理解为经常一起出现。在数学上,可以用互信息的大小来描述。

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

推荐阅读更多精彩内容

  • 只说人话,不砌公式,让非数学专业读者能看明白的Word2Vec。 1. Word2Vec的作用 顾名思义,Word...
    巾梵阅读 17,513评论 2 42
  • 在各种大举深度学习大旗的公司中,Google公司无疑是旗举得最高的,口号喊得最响亮的那一个。2013年末,Goog...
    chaaffff阅读 16,659评论 0 29
  • Word2vec简介 Word2Vec是由Google的Mikolov等人提出的一个词向量计算模型。 输入:大量已...
    lyy0905阅读 12,095评论 3 21
  • 词向量表示方法: 离散表示:One-hot Representation NLP 相关任务中最常见的第一步是创建一...
    SUNFC阅读 757评论 0 0
  • 最近不知道为什么,好多异地恋,是什么导致现在喜欢异地恋,而不是要你身边的人呢?是由于什么呢???求指教
    羁绊彡阅读 266评论 0 0