标准RNN网络
数学公式
弊端
没法恢复久远的记忆,主要原因如下
- 梯度消失
- 梯度爆炸
LSTM网络
LSTM-cell
数学公式
[图片上传失败...(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 网络
根据前面的信息推出后面的,但有时候只看前面的词是不够的
例如,
我今天不舒服,我打算__一天。
只根据‘不舒服‘,可能推出我打算‘去医院‘,‘睡觉‘,‘请假‘等等,但如果加上后面的‘一天‘,能选择的范围就变小了,‘去医院‘这种就不能选了,而‘请假‘‘休息‘之类的被选择概率就会更大。
计算公式
即正向计算时,隐藏层的 $s_t$ 与 $s_{t-1}$ 有关;反向计算时,隐藏层的 $s_t$ 与 $s_{t+1}$ 有关:
CRF 条件随机场
特征函数
输入 :
- 句子 $s$
- 单词在句子中出现的位置,即单词 index,$i$
- 当前词语的标记类型,$l_i$
- 前一个词语的标记类型,$l_{i-1}$
输出:
- 实数值(通常0或1)
预测
定义好一组特征函数后,我们要给每个特征函数$f_j$赋予一个权重$λ_j$。现在,只要有一个句子$s$,有一个标注序列$l$,我们就可以利用前面定义的特征函数集来对$l$评分。
上式中有两个求和,外面的求和用来求每一个特征函数$f_j$评分值的和,里面的求和用来求句子中每个位置的单词的的特征值的和。
对这个分数进行指数化和标准化,我们就可以得到标注序列$l$的概率值$p(l|s)$,如下所示:
如何得到特征函数
人工构造,如CRF++中通过指定特征模板,然后依据特征模板生成特征函数
参数$\lambda$学习
拟牛顿法
预测
- 暴力法:列出所有可能
- 多项式时间算法:维特比算法
优点
- 理论完善、技术成熟
- 小空间搜索优势明显(全局最优)
缺点
- 不能处理长期依赖
- 计算联合概率,不能实时输出
LSTM-CRF 网络
简单来说就是在输出端将softmax与CRF结合起来,使用LSTM解决提取序列特征的问题,使用CRF有效利用了句子级别的标记信息
在LSTM+CRF模型下,输出的将不再是相互独立的标签,而是最佳的标签序列。
对于输入:
$$X=(x1,x2,...,xn)$$
我们可以定义LSTM的输出概率矩阵 $P_{n∗k}$ 其中$k$是输出标签的个数。 $P{i,j}$ 是指第$i$个字被标记为第$j$个标签的概率。对于待预测的标签序列:$$y=(y1,y2,...,yn)$$
我们可以有如下定义:
$$
s(X,y)=∑n_{i=0}A_{y_i,y_{i+1}}+∑n_{i=0}P_{i,y_i}
$$
其中$A$是状态转移矩阵, $Ai,j$代表从第$i$个tag转移到第$j$个tag的概率。
通过求得最大的 $s(X,y)$,即可得到最佳的输出标签序列。这里引入的CRF,其实只是对输出标签二元组进行了建模,然后使用动态规划进行计算即可,最终根据得到的最优路径进行标注。
BI-LSTM-CRF 网络
相比之前的LSTM-CRF,该网络可以使用未来的输入特征。
BI-LSTM-CRF with MaxEnt features
该网络中,特征与输出有直接的相连。
类似最大熵,潜在特征冲突问题