词向量相关总结

最近准备把词向量相关知识串一下,会持续更
主要参考:https://zhuanlan.zhihu.com/p/95304317
https://baijiahao.baidu.com/s?id=1622064575970777188&wfr=spider&for=pc

  • unigram模型:所有的词都是相互独立的
    P(w1,w2,...,wn)=i=1nP(wi)P(w_1,w_2,...,w_n)= \prod_{i=1}^n P(w_i)
  • bigram模型:每一个词仅与前一个词相关
    P(w1,w2,...,wn)=i=2nP(wiwi1)P(w_1,w_2,...,w_n)= \prod_{i=2}^n P(w_i|w_{i-1})
  • ngram模型缺点:1.缺乏长期的依赖,因为只能建模到n-1个词,2.随着n的加大,计算和存储要求呈指数上涨,3.单纯基于统计词频,泛化能力差。
  • One-Hot编码:一个词为一个One-Hot向量,即一个位置是1,其余位置都是0,这种表示方法的最大缺点在于没办法表示出词语之间的相似性。
  • CBOW(Continuous Bag of Words):根据上下文预测中心词,每一个词会学习到两个向量,一个是词出现在上下文时的向量input vector ​v,和词出现在中心词时的向量output vector u:
  • Skip-gram模型:给定中心词,预测或者生成上下文词。
  • word2vec:其实是一种工具,支持它的两个模型为CBOW和Skip-gram,该类方法缺点是基于固定大小的窗口,对局部的语料进行特征提取。
  • GloVe:首先根据语料库去构建一个co-ocurrence matrix共现矩阵,其中每一个元素代表单词和上下文词在特定的上下文窗口内共同出现的次数,并且GloVe还提出了一个 decreasing weighting ,就是基于两个词在上下文窗口中的距离d,去给一个权重1/d,也就是说距离远的两个词,占总计数的权重就小;构建词向量和共现矩阵之间的近似关系。
  • Transformer结构:
    1.自注意力层:在编码某个单词时,就是将所有单词的表示(值向量)进行加权求和,而权重是通过该词的表示(键向量)与被编码词表示(查询向量)的点积并通过softmax得到
    词向量相关总结
    词向量相关总结
    2.多头注意力:它给出了注意力层的多个“表示子空间”(representation subspaces)。对于“多头”注意机制,我们有多个查询/键/值权重矩阵集(Transformer使用八个注意力头,因此我们对于每个编码器/解码器有八个矩阵集合)。这些集合中的每一个都是随机初始化的,在训练之后,每个集合都被用来将输入词嵌入(或来自较低编码器/解码器的向量)投影到不同的表示子空间中。
    词向量相关总结
    词向量相关总结
    词向量相关总结
    3.位置编码:加入词之间的位置信息
    词向量相关总结
    4.transformer每一层的机构图:
    词向量相关总结