自然语言处理模型

前面几个小节已经介绍了RNN和LSTM模型等等,在最先谈到RNN模型的时候我们就说过,RNN模型应用最广的领域就是自然语言处理(NLP)领域。从今天开始我们简单介绍语言模型。

语言模型

语言模型,即针对某种语言给定句子们分配概率值的任务,或者针对一串单词后跟一个词或者词串的可能性分配概率值的任务,实际这两个任务是等价的,可转换。语言模型在机器翻译和自动语音识别中具有重要作用,即对系统产生的多个翻译或者转录假设进行评分形式上,语言模型的任务是针对任意序列的词串分配概率,利用概率的链式规则,可写作:

自然语言处理模型

从上面的式子可以看出,语言模型就是用来判断一个句子的合理性的置信度,最经典的就是N-gram语言模型和NNLM(Nerual Network LanguageModel)神经网络语言模型。例如在机器翻译中,我们就要通过对第一个单词的翻译出的结果去推断下一个单词翻译出来的意思。

N-gram模型

为了解决*参数数目过多的问题,引入了马尔科夫假设:第n个词出现的概率只与它前面出现的有限的n-1个词有关。基于上述假设的统计语言模型被称为N-gram语言模型。上面的公式可以近似:
自然语言处理模型

通常情况下,n的取值不能够太大,否则*参数过多的问题依旧存在:(1)当n=1时,即一个词的出现与它周围的词是独立,这种我们称为unigram,也就是一元语言模型,此时*参数量级是词典大小V。(2)当n=2时,即一个词的出现仅与它前面的一个词有关时,这种我们称为bigram,叫二元语言模型,也叫一阶马尔科夫链,此时*参数数量级是V2。(3)当n=3时,即一个词的出现仅与它前面的两个词有关,称为trigram,叫三元语言模型,也叫二阶马尔科夫链,此时*参数数量级是V3。一般情况下只使用上述取值,因为从上面可以看出,*参数的数量级是n取值的指数倍。

NNLM模型

与传统的估算不同,NNLM模型直接通过一个神经网络结构对n元条件概率进行评估,NNLM模型的基本结构如下:

自然语言处理模型

网络结构从下往上依次是:输入层:窗口中上下文的每个词的one-hot编码投影矩阵:紫色虚线表示词语通过投影矩阵matrix C对词进行映射投影矩阵也是稠密词向量,词典维数V,稠密词向量表示维度D

自然语言处理模型

神经网络输入层: 把一句话用one-hot向量进行拼接, 输入向量大小为窗口上下文词的数量乘以定义的词向量的长度,通过一个权重矩阵,得到表示这一句话的词向量

神经网络隐藏层: 这一部分主要做的就是将上一层的输出作为输入,进行全连接,然后一般会有个tanh,来处理这些数据。

输出层:隐层出来之后,接一个SoftMax分类器,预测一下,在这个词表中,出现每个单词出现概率有多大
自然语言处理模型

总结:本小节讲了自然语言处理的一些模型,当然了这只是最基础的几个,往后还有其它的模型介绍,比如word2vec模型,下一节中我们会为大家讲词向量的有关内容。

关注小鲸融创,一起深度学习金融科技!
自然语言处理模型