项目三:NLP1(word2vec)

1.机器学习说白了就是不停地调整参数来拟合规律,如果事情本身就毫无规律或者规律性极低,那么机器学习也无能为力,再厉害的模型也不行

2.语音识别:把自然的声音信号转变成文本;自然语言处理:对文本进行理解;语言模型:判断一句话是否出现的概率

3.贝叶斯定理:P(w1,w2,w3,w4)= p(w1)*p(w2|w1)*p(w3|w1,w2)*p(w4|w1,w2,w3)

4.n-gram模型:每个词的概率,仅仅由前面的n个词决定的

 当n=1时:P(w1,w2,w3,w4)= p(w1)*p(w2|w1)*p(w3|w1,w2)*p(w4|w1,w2,w3)简化=p(w1)*p(w2|w1)*p(w3|w2)*p(w4|w3)

5.做模型简化,必然会有假设,如果实际情况不满足假设,那么效果必然有所折扣

   总共有v个词,会假设每个词都出现过c个词:p(w2|w1)=(w2+c)/(w1+7c)

6.语料库小,带来的问题:a有些小概率情况没有出现,会直接算成0;  b大概率情况会被高估,估计出来的值不准

7.用神经网络还是一定好处的,降低了参数

8.One-hot,有一些问题:参数太多,无语义表达;稠密的方法来代替one-hot(v-->128维),通过模型输入,将两个词w1,w2的特征引入

9.word2vec:128*v(向量维数*词数)+128*v(网络全连接)

 

10.两个向量相加:好处是减少参数量;坏处是信息折损,丧失部分语义

11.语义模型,本意是预测词的概率,用周边的词来预测一个位置出现词的概率(完形填空);副产品,就是输入向量一并被训练,导致输入向量之间的距离可以表示语义

 

12.Softmax对应的类别数相对来说都比较少,但是对于nlp语义模型来说,类别数太多,需要添加一颗二叉树进行分类区分;对于训练中来说,使用二分查找进行多个逻辑回归的训练,可以把运算级从V降至logV

 

13.长尾分布:在中文来说,每个词的词频出现的差异性很大,高频词比低频词的出现次数往往高几个数量级。所以我们就需要对二叉树进行改造,改造的指导思想是:高频词在树的浅层,低频词放在树的深层。----->Huffman树

14.Softmax大类别多分类----->平衡二叉树分类----->huffman二叉树分类:1.利用二叉树的性质,降低分类的数量;2.利用了自然语言中,词频差异过大的特点;神经网络的结构是个动态的,不同的词频构成,对应的不同的Huffman树,huffman树类似于辅助线,在训练的时候用

15.Word2vet:14年谷歌搞出来,是自然语言处理领域的一个突破,通过计算词的向量相似度,就可以进行找近义词

16.找近义词:1用word2vec---将词转化成向量,计算两个向量的相似度  2 统计共现----计算出两个词在一块出现的次数,两个词上下文对应的很相似,认为他们是近义词(我在种红薯;我在种土豆;红薯和土豆是近义词)

17.Huffman的动态:

  1. 整体的各个词频决定huffman树(网络结构)
  2. 整体语料,会根据窗口,拆解成很多训练样本
  3. 这些训练样本所用的huffman树是一颗
  4. 每个训练样本所对应的目标词不一样,因此不同训练样本在同一颗huffman树上走不同的路径

18.Word2vec有个有趣的性质:

  1. V国王-V皇后  ≈V男人-V女人≈V老公-V老婆=男女的差异
  2. 可以对文本进行向量化:w1,w2……wn,这些词对应的向量进行相加=V文本

19.在工程中,某问题有种成熟解决方案,如果重准确,多种方案去交集;如果重召回,多中方案取并集

20.训练softmax函数究竟在训练什么?一个有V类,1正确的1类 概率朝大的方向走;2剩下的V-1类 概率朝着小的方向走----用随机的几个类别代替

21.负采样:就是负样本采样,传统方法就是V-1个词作为负样本,负采样做法就是从V-1个词中随机选择几个词做负样本

22.Word2vec(一般skip-gram+ns)

  1. 输入维度:a.cbow(多个相关词预测一个词;多个向量相加时使用)  b.skip-gram(一个词预测周围一个词;单个词向量时使用)   总的来说,使用的过程和训练的过程越是一致,效果一般越好
  2. 输出维度(辅助):a.huffman   b.负采样

23.每次训练出来的词向量都在单独的语义空间,不同语义空间的向量没有可比性

24.孤岛效应:由一些不相关语料或者弱相关语料组成,例如一些中文词w1,一些法文词w10,w1和w10的向量可能比较接近,相似度高,但两者没有关系。Word2vec本身不能解决这个问题,只能在样本选取上下功夫,让训练样本尽可能相关。

25.一词多义:Word2vec也无法解决一词多义(苹果是手机还是水果),首先:对数据宏观理解,人为找出一词多义的词;其次,找到词各个语义对应的上下文(v苹果1是手机,v苹果2是水果,两个向量)

26.多词一义:电脑,计算机---->电脑;多个词向量转化成一个向量

27.规则:特殊场景需要添加规则,在预料很少的场景,约定俗成,规则性本身很强的场景,时间要求紧迫的项目;规则就像补丁,衣服偶尔烂洞的时候,打打补丁,如果衣服很烂遍地补丁,就考虑换衣服

28.输入向量相加:训练之前,每个词向量都随机初始化,把输入词的向量,按位累加成一个向量,然后对目标词进行预测

  1. 预测时,因为类别过多,不能直接用softmax,因此用huffman树,或者ns
  2. 网络进行训练,包括输入,即每个词对应的词向量,最终真正使用的是,输入中每个词对应的向量
  3. 而整个模型,几乎不拿来用,所以说huffmax或者ns只是在训练的时候需要使用
  4. 训练完成之后,最直接应用:每个词对应于一个词向量,可以用来求词语的距离;而目前,互联网把应用极大的拓展,特别是在推荐系统中

29.word2vec的实现工具有很多:1.谷歌原生   2.Gensim   3.Fasttext  facebook   python实现  比较耗内存

time ./word2vec -train  /home/ai/word2vec/nlp_data/train_data -output /home/ai/word2vec/nlp_data/vectors.txt -cbow 1 -size 64 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 0 -iter 15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值