语言的表示

词的表示

  1. 分布式表示 distributional representation 构建$W \times C$的共现矩阵,$W$ means the size of dictionary and $C$ means the amount of context.
  2. 分散式表示 distributed representation 表示为稠密、低纬、连续的向量,其中每一维都表示了某个潜在的语法或语义特征。

分散式表示的常用模型

  1. Skip-Gram For given word $w_t$ predict the context $w_{t-c}, …w_{t-1}, w_{t+1},…,w_{t+c}$, the is the size of context. 其loss function 通常为对数似然函数.

$$ L=\sum_{t=1}^{m} \sum_{j=-c,; j \neq 0}^{c} ln;p(w_{t+j|w_t}) $$

  1. CBOW continuous bag-of-words For given context $w_{t-c}, …w_{t-1}, w_{t+1},…,w_{t+c}$, predict the word .

1与2的最大差别是Skip-Gram使用当前一个词预测其上下文,而CBOW使用其上下文预测当前词

  1. GloVe 基于共现矩阵分解。首先遍历语料库统计共现信息,得到$X \in R^{V \times V}$, $X_{ij}$表示词$j$在$i$上下文的概率。 for each word pair, we have the following formula. $b_{(\cdot)}$is the bias of current word/context. $w_{(\cdot)}$ and $b_{(\cdot)}$ is learnable.

$$ ln(X_{ij})=w_i^T+w_j+b_i+b_j $$

句子表示

句子表示

  1. NBOW neural bag-of-words 所有词向量取均值得到句子的表示,很蠢,丢失了词序信息,而且过于简单,容易模糊细节。
  2. 卷积模型 convolution models 基于卷积神经网络的。每个单词是向量,那么句子就是矩阵,在句子上卷积、池化,就可以得到局部语意组合。
  3. 序列模型 sequential models 按词序逐个考虑,比如循环神经网络。 理论上能够处理任意长的句子。在每个时间步中,会有隐藏状态,$H$, it could be computed by the previous hidden state $h_t-1$ and the current word $x_t$
  4. 句法模型 syntax-based models 通常根据句子的结构组合得到句子的表示(通常树状结构)。常见的模型,递归、树结构LSTM、递归卷积。 树的根结点向量就是句子的语义,不同模型区别是组合函数不同。 词模型考虑到其语法层次性,从而构建树,因而有更丰富的表示和层次信息。
  5. 非组合模型 以上都是词经过某函数组合而成,非组合模型中,句子通过非组合的方式,如训练等得到。 如Doc2Vec。 D2V同时使用段落向量paragraph vector和词向量作为句子的表示。当在其中取某个滑动窗口来确定上下文单词和当前词,这时候,通过某种方式拼接或平均,得到中间的隐藏层,再送到分类器中预测。

篇章表示

为了降低复杂度,一般用层次化的方法。先得到句子表示作为输入,进一步得到篇章表示。 具体的,有几种方法

  1. 层次化卷积网络,先对每个句子建模,然后以句子为单位卷积、池化。
  2. 层次化循环网络,先对词获得句子RNN,然后再对句子获得篇章RNN。
  3. 混合,如先获得句子RNN,再卷积池化得到篇章。

注意力

注意力、自注意力。 定义为:一个query、一系列key-value pairs,映射到输出。 三步:

  1. 将query与每个key计算相似度,得到weight
  2. 使用如Softmax等归一化。
  3. 权重与value加权求和,得到输出。 目前key和value是同一个;权重可以多样,如点积、线性。
Built with Hugo
Theme Stack designed by Jimmy