在进行NLP的时候,往往我们的训练集已标注的样本是有限,有大量的样本是没有标注的。这个时候的解决办法是对无标注的样本进行训练。一般采用的是语言模型,这样训练得到的参数是context-sensitive的。语言模型具体说明见前文RNN简介),再将训练的结果用作有监督的训练中,这就是近三年里研究比较多的领域。
TagLM(原文)
TagLM的原理如图所示:
首先将所有样本在右侧,用多层双向的LSTM进行训练。令训练的句子为 ( x 1 , . . . , x n ) (\mathbf x_1,...,\mathbf x_n) (x1,...,xn), x 1 \mathbf x_1 x1是句子开始标记的Embedding, x n \mathbf x_n xn是句子结尾标记的Embedding。
“前向”LSTM是根据 x 1 , . . , x t \mathbf x_1,..,\mathbf x_t x1,..,xt预测 x t + 1 \mathbf x_{t+1} xt+1。令“前向”LSTM的第 l l l层的第 k k k个Cell的输出为 h → k , l L M \overrightarrow{\mathbf h}_{k,l}^{LM} hk,lLM, h → k , 0 L M = x k \overrightarrow{\mathbf h}_{k,0}^{LM}=\mathbf x_k hk,0LM=xk。进行预测时,假设是根据最高的 l l l层进行预测,即 h → k L M = [ h → k , L L M ; . . . ; h → k , L − l + 1 L M ] \overrightarrow{\mathbf h}_{k}^{LM}=[\overrightarrow{\mathbf h}_{k,L}^{LM};...;\overrightarrow{\mathbf h}_{k,L-l+1}^{LM}] hkLM=[hk,LLM;...;hk,L−l+1LM]