语言模型 + 词向量
重点:建模方法、CNN、DNN、RNN优势与不足
统计语言模型
-
基本概念:用数学的方法描述语言规律(语言模型)
基本思想:用 S = w 1 , w 2 , w 3 , . . . w n S = w_1, w_2, w_3,...w_n S=w1,w2,w3,...wn 的概率 P ( S ) P(S) P(S)刻画句子的合理性——统计自然语言处理的基础模型
规则法和统计法:前者通过判断句子是否合乎语法和语义;后者通过可能性大小(概率)定量计算 -
公式: P ( S ) = ∏ i = 1 n p ( w i ∣ w 1 , . . . . , w i − 1 ) P(S) = \prod_{i = 1}^{n} p(w_i | w_1,....,w_{i-1}) P(S)=∏i=1np(wi∣w1,....,wi−1)
输入:句子S
输出:句子的概率 P ( S ) P(S) P(S)
参数: p ( w i ∣ w 1 , . . . . , w i − 1 ) p(w_i | w_1,....,w_{i-1}) p(wi∣w1,....,wi−1)
函数关系: P ( S ) = ∏ i = 1 n p ( w i ∣ w 1 , . . . . , w i − 1 ) P(S) = \prod_{i = 1}^{n} p(w_i | w_1,....,w_{i-1}) P(S)=∏i=1np(wi∣w1,....,wi−1)
说明: w i w_i wi统计基元/词; w 1 , . . . . , w i − 1 w_1,....,w_{i-1} w1,....,wi−1 为 w i w_i wi的历史 -
马尔可夫方法:假设任意一个词 w i w_i wi出现的概率只与它前面的 w i − 1 w_{i-1} wi−1有关(二次模型);
-
n-gram:一个词出现的概率只与它前面n-1个词相关,距离大于等于n的上文词会被忽略
-
参数估计
- 训练语料:尽量与应用领域一致;语料尽量足够大;训练前应预训练
- 学习方法:极大似然估计
- 存在问题:数据匮乏(稀疏)引起零概率问题
- 解决:数据平滑——加一法(每种情况出现次数加1)
- 神经网络语言模型不需要数据平滑
- 性能评价
- 实用方法:看模型在实际中的表现
- 理论方法:困惑度——越小越好
- 应用:不同序列判断最可能序列;已知若干词预测下一个词
神经语言模型
- 统计语言模型:用概率统计法学习参数
- 神经语言模型:用神经网络学习参数
- 使用DNN:NNLM模型
- 使用RNN:RNNLM模型
-
NNLM模型
-
2-gram:
-
n-gram:
-
-
RNNLM模型:
优点:RNNLM模型可以保留每个词的全部历史信息,不需要简化成n-gram;引入词向量作为输入不需要数据平滑
词向量(浅层)
-
基于预测的词表示:
NNLM、CBOW模型、Skip-gram、C&W模型-
符号表示
-
离散表示:
- one-hot:稀疏方式存储简洁;词汇鸿沟、维数灾难
- 词袋模型:每个数表示该词在文档中出现的次数
- TF_IDF:每个数代表该词在整个文档中的占比
-
分布式表示:用一个词附近的其他词来表示该词
-
NNLM:
-
RNNLM:
-
C&W模型:
特点:C&W目标函数是求目标词W与其上下文c的联合打分,而其他模型均为根据上下文c,预测目标词w
-
CBOW/Skip-gram模型
-
-
-
词向量特性
- 语义相似的词,其词向量空间距离更相近
- 优点:降维,消除词汇鸿沟,其语言模型自带平滑功能;
- 应用:同义词检测、单词类比
深度学习中语言模型常用“RNN语言模型+词向量” 模式
-