标准RNN网络

image.png

数学公式

image.png

弊端

没法恢复久远的记忆,主要原因如下

  • 梯度消失
  • 梯度爆炸

LSTM网络

image.png

LSTM-cell

image.png

数学公式

image.png

[图片上传失败…(image-86f9c8-1510984579946)]=\frac{P(x)}{Q(x)})
输入门$i_t$:控制有多少信息可以流入memory cell(第四个式子$c_t$)。
遗忘门$f_t$:控制有多少上一时刻的memory cell中的信息可以累积到当前时刻的memory cell中。
输出门$o_t$:控制有多少当前时刻的memory cell中的信息可以流入当前隐藏状态$h_t$中。

Bidirectional LSTM 网络

image.png

根据前面的信息推出后面的,但有时候只看前面的词是不够的

例如,

我今天不舒服,我打算__一天。

只根据‘不舒服‘,可能推出我打算‘去医院‘,‘睡觉‘,‘请假‘等等,但如果加上后面的‘一天‘,能选择的范围就变小了,‘去医院‘这种就不能选了,而‘请假‘‘休息‘之类的被选择概率就会更大。

image.png

计算公式

即正向计算时,隐藏层的 $st$ 与 $s{t-1}$ 有关;反向计算时,隐藏层的 $st$ 与 $s{t+1}$ 有关:

image.png

image.png

CRF 条件随机场

image.png

特征函数

输入 :

  • 句子 $s$
  • 单词在句子中出现的位置,即单词 index,$i$
  • 当前词语的标记类型,$l_i$
  • 前一个词语的标记类型,$l_{i-1}$

输出:

  • 实数值(通常0或1)

预测

定义好一组特征函数后,我们要给每个特征函数$f_j$赋予一个权重$λ_j$。现在,只要有一个句子$s$,有一个标注序列$l$,我们就可以利用前面定义的特征函数集来对$l$评分。

image.png

上式中有两个求和,外面的求和用来求每一个特征函数$f_j$评分值的和,里面的求和用来求句子中每个位置的单词的的特征值的和。

对这个分数进行指数化和标准化,我们就可以得到标注序列$l$的概率值$p(l|s)$,如下所示:
image.png

如何得到特征函数

人工构造,如CRF++中通过指定特征模板,然后依据特征模板生成特征函数

参数$\lambda$学习

拟牛顿法

预测

  • 暴力法:列出所有可能
  • 多项式时间算法:维特比算法

优点

  • 理论完善、技术成熟
  • 小空间搜索优势明显(全局最优)

缺点

  • 不能处理长期依赖
  • 计算联合概率,不能实时输出

LSTM-CRF 网络

image.png

简单来说就是在输出端将softmax与CRF结合起来,使用LSTM解决提取序列特征的问题,使用CRF有效利用了句子级别的标记信息

在LSTM+CRF模型下,输出的将不再是相互独立的标签,而是最佳的标签序列。

对于输入:

我们可以定义LSTM的输出概率矩阵 $P_{n∗k}$ 其中$k$是输出标签的个数。 $P{i,j}$ 是指第$i$个字被标记为第$j$个标签的概率。对于待预测的标签序列:

我们可以有如下定义:

其中$A$是状态转移矩阵, $Ai,j$代表从第$i$个tag转移到第$j$个tag的概率。

通过求得最大的 $s(X,y)$,即可得到最佳的输出标签序列。这里引入的CRF,其实只是对输出标签二元组进行了建模,然后使用动态规划进行计算即可,最终根据得到的最优路径进行标注。

BI-LSTM-CRF 网络

image.png

相比之前的LSTM-CRF,该网络可以使用未来的输入特征。

image.png

BI-LSTM-CRF with MaxEnt features

image.png

该网络中,特征与输出有直接的相连。

类似最大熵,潜在特征冲突问题

Deep-BI-LSTM

image.png