1、word2vec

1、以前怎么计算两句话的相似度呢?就是词袋模型

      我很帅   》[1(我),1(帅),1(很),0(不)]

      我不帅   》[1,1,0,1]

2、现在怎么计算呢?就是把每个字转换成一个向量(也可以把一句话变成一个向量)下面是两种经典模型

CBOW简单说一下:一共N个字,上下文各两个字,每个字是一个1*N向量,对应位置是1,其余全为0.然后呢乘以一个N*K的矩阵,K就是词向量的维度,再叠加,再乘以一个K*N的矩阵再softmax,得到一个1*N的向量,与这个字做比较,计算损失就行了,bp算法,最后得到N*K的矩阵用来计算每个字的词向量。

这样是不是就完美了?但是这样一个字一个字来很慢啊,效率很重要呀,

解决方案:Hierarchical SoftmaxNegative Sampling两种方法

我之前上传的资料里面有一个讲Word2vec数学原理的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章