总结一下word embedding

在NLP中,词向量是最基础的一部分,所谓词向量就是词在空间的一个映射向量表示。实现词向量的方式有word2vec, BERT,K-BERT等,还有一部分是用CNN实现.

  1. word2vec
    word2vec有两种不同的词向量生成模式,一种是CBOW(character box of word)另一种是Skip-gram模型,CBOW是利用前后词判断当前词,Skip是利用当前词判断前后词。
    CBOW可以理解为,输入的 w w w,求其前后相关的最大概率,即 P ( w ) = P ( C o n t e x t ( w ) ∣ w ) P(w)=P(Context(w)|w) P(w)=P(Context(w)w);其模型结构如图1所示(这个图以后再补,毕竟是大论文中的)。Skip可以理解为,输入 w w w前后的词,预测能退出 w w w的最大概率,即 P ( w ) = P ( w ∣ C o n t e x t ( w ) ) P(w) = P(w|Context(w)) P(w)=P(wContext(w))
  2. BERT、ALBERT和XLNERT等BERT变形
    BERT的词向量编码由三部分组成,分别是token embedding、segment embedding和position embedding组成,其中token代表当前词的向量,segment用来对句子进行划分,分为[A]or[B], position为位置信息,有了这个三个向量,将其进行相加,便得到了BERT的embedding。
    在BERT的embedding中,word-level 和sentence-level使用了相同的embedding space,因此表现出来的性质在空间上是一致的,这也限制了bert-embedding中的性能;
  3. K-BERT
    K-BERT是在BERT的基础上融入了知识图谱,由此把句子原来的结构填充了起来,导致出现了很多新的内容,但不可避免的这些新的内容会与原来句子中的内容有所冲突,尤其是在position上面。因此在K-BERT中使用了soft-position作为位置嵌入,将原来的position进行保留,将新加入的内容使用soft-postion进行保存,由此解决了相同词不同空间位置的问题,同时也解决了BERT空间编码不一致的问题。在计算self-attenrion的时候,使用一 M M M s e e i n g m a r t i x seeing martix seeingmartix将soft-position和position进行了区分,避免了无关词得到的注意力分数相关。
  4. CNN
    CNN在计算机视觉方面用的比较多,在文本向量中,先要构建一个 M a t r i x Matrix Matrix,然后用一个卷积核 k e r n e l kernel kernel在当中移动,获取到 f e a t u r e m a p feature map featuremap,后面再使用激活函数做非线性处理,最后使用 M a x p o o l i n g Maxpooling Maxpooling层进行最大特征获取。

你可能感兴趣的:(NLP,embedding,bert,albert,cnn)