深度学习:自然语言处理的基本原理
概念:
自然语言处理(Natural Language Processing,简称NLP)是人工智能和语言学领域的一个分支,它致力于研究如何让计算机能够理解、解释和生成人类语言,以及如何实现人与计算机之间的有效通信。自然语言处理的目的是缩小人类语言和计算机之间的差距。
语言转换方法:统计语言模型,神经语言模型
统计语言模型的问题:
1、参数空间爆炸式增长,无法处理(N>3)的数据(只能最高处理两个数据)
2、无法处理词与词的内在联系
神经语言模型:词嵌入embedding
在处理自然语言时,通常将词语或者字做向量化
如何解决唯独灾难问题:
通过神经网络训练,将每个词都映射到一个较短的词向量上来。
例如: 转换短的词向量
0 0 0 0 0 0 1 0.62 0.23 0.12 0
0 0 0 0 0 1 0 0.22 0.43 1 0
0 0 0 0 1 0 0 0.11 0.25 0.02 0
0 0 0 1 0 0 0 0.65 0.28 0.12 0
这种将高维度的词表示转换为低维度的词表示的方法,我们称之为词嵌入。
word2vec
一种用于生成词嵌入(word embeddings)的模型,它能够将词汇映射到高维空间中的向量,这些向量能够捕捉词汇之间的语义关系。
1、CBOW:以上下文词汇预测当前词,即用ωt−2、ωt−1、 ωt+1、 ωt+2预测ωt
2、skipgram:以当前词预测其上下文词汇,即用ωt预测ωt−2、ωt−1、 ωt+1、 ωt+2
模型的训练过程:
1、当前词的上下文词语的one-hot编码输入到输入层。
2、这些词分别乘以同一个矩阵ωV*N后分别得到各自的1*N 向量。
3、将多个这些1*N 向量取平均为一个1*N 向量。
4、将这个1*N 向量乘矩阵 ω’N*V ,变成一个1*V 向量。
5、将1*V 向量softmax归一化后输出取每个词的概率向量1*V
6、将概率值最大的数对应的词作为预测词。
7、将预测的结果1*V 向量和真实标签1*V 向量(真实标签中的V个值中有一个是1,其他是0)计算误差
8、在每次前向传播之后反向传播误差,不断调整 ωV*N和ω’N*V矩阵的值。