深度学习-词嵌入

1、onehot 缺点:词之间没有关联,泛化性差

2、高维特征表示:每词由300维的特征表示,能够获取词之间的相似性关系。更好。

学习词嵌入,可以迁移学习,可以小样本 在训练集中找相似特征的进行归纳。

一般词嵌入,使用双向RNN 

词嵌入,找网上模型然后少量训练标记进行迁移学习,可以使用比1-hot更低维的进行表示。

3、词嵌入的特性:依据相似性可以匹配词,cos衡量相似性(余弦距离),

t_SNE 高维映射到二维可视化

 

 4、嵌入矩阵,实践中不会用1-hot矩阵乘法,因为维度太高,所以用其他矩阵来代替。

 

 

 5、学习词嵌入

可以任意选择窗口大小进行预测。

 

CBOW模型,周围词预测中间词。正负10距有很多单词,导致最终预测效果不是很好。(这块我其实没有好理解)

这里那复杂度说,CBOW,多次预测一个,而skip-gram 一次预测多个,效率更高,但是skip复杂度高。用负采样解决。

cbow 与 skip-gram的比较 - 卡门的文章 - 知乎 https://zhuanlan.zhihu.com/p/37477611

 

 

 

word2vec(词嵌入):计算高效,skip-gram中间词利用softmax 预测周围词(窗口大小为2)。

Fake Task,word2vec模型的最终目的并不是建模,而是通过训练数据来学习隐层的参数,而隐层的参数实际就是word vectors,就是说将中心词和上下文词成组输入,(input word, output word),然后最大化他们的概率,从而学习隐层参数,而隐层的参数就是最终要获取的词向量。

缺点:softmax耗费很大,因为有个求和操作。

 

 

 负采样:

 作用:减少softmax的复杂度。

步骤:

两词匹配,负采样就是在词典中随机一个词(有更好的做法),距离不正负10的距离内, 匹配标记为0;

K的选择,小数据5-20,大数据2-5;

利用logistic回归进行训练,每次训练集之训练k+1个样本,复杂度从大量的词典长度降低到k+1;

 

 

根据经验,英文3/4次方的分布对整体是比较好的。

 

posted @ 2021-10-09 22:49  踏浪前行  阅读(251)  评论(0编辑  收藏  举报