as火柴人

导航

词嵌入

复习的时候可以看这个博客:https://blog.csdn.net/haoyutiangang/article/details/81213697

 

2.5 学习词嵌入

  在构造语言模型里面:往往不是由一句话里面所有的词来预测下一个词,而是有一定的历史窗口(窗口的大小是一个超参数)

  当窗口是4的时候:输入神经网络的向量大小是:4X300,

  算法的参数是词嵌入矩阵,和隐层W,b,softmax的参数W,b

这个算法是让相似的词得到的词嵌入相似。词嵌入矩阵可以先初始化,算法想得到好的结果就需要不断地让相似的词的嵌入矩阵也相似。

如果要学习语言模型本身就可以选取目标词的上下文,如果要学习词嵌入可以用其他的上下文:

  有三种方法选取上下文:前后n个词:

 

             前一个词;

 

             邻近词(并不是前一个词)

2.6 world2vc

  分析句子做监督学习:在预料库里面选取一些词作为上下文,目标词在这些上下文的前后词距为10的这些单词里面

 

注意这个概率算出来是一个向量。

 解决这个求和过大的问题(加速softmax的分类):使用一个分级的softmax滤波器

上下文的选取并不是随机的,而是采用某些方法来平衡常见词和非常见词

2.7 负采样

  在词库里面随机选择一些词对来做标记,做一个监督学习的集合

2.8 Glove词向量

  定义Xij为单词i出现在单词j前后的次数;如果定义上下文是词的前后十个单词之内的话,就有Xij和Xji对称

 

f(xij)是为了平衡log0的时候,让0 log0=0;且还可以衡量在英文中出现频率很高的词(停止词)一些适当又不是很大的权重,还有一些不常见的词给予一些相对小的权重。

这里的是等价的,所以在用梯度下降来让上面式子最小的时候,求两者的平均

 

 2.9 情绪分类

  挑战:训练集不够多,但是词嵌入可以解决这个问题

 

词嵌入矩阵E就是从大量文本中提取的。

这个算法的一个缺点就是没有考虑词序,只是考虑到了词出现的次数

改进:不用平均词嵌入,用RNN(多对一的模型)

2.10 减少偏见

  减少机器学习算法所学到的一些社会上常见的偏见

第一:

第二步:中和步,把一些带有偏见的词做处理

 

 第三步:平衡步

保证像father ,mother这种带性别的词,和一些别的词有相同的相似度(距离)

将这两个词移动到中间轴对称位置

 

posted on 2019-03-08 22:24  as火柴人  阅读(572)  评论(0)    收藏  举报