双向 LSTM(Bi - LSTM)
- 结构原理:从图片中可以看到,双向 LSTM 由两个方向相反的 LSTM 组成,一个是正向 LSTM(forward),一个是反向 LSTM(backward)。正向 LSTM 按正常顺序处理输入序列(如),反向 LSTM 按逆序处理输入序列(如)。每个时刻的输出由正向和反向 LSTM 在该时刻的隐藏状态共同决定。这使得模型能够同时利用过去和未来的信息,相比单向 LSTM,在处理序列数据时具有更强的上下文理解能力。
- 应用场景:常用于自然语言处理中的词性标注、命名实体识别等任务,因为在这些任务中,单词的语义不仅依赖于前面的单词,还可能依赖于后面的单词。

LSTM 应用到双向 RNN 中
- 结构原理:本质上就是双向 LSTM。双向 RNN 是一种允许信息在两个方向流动的循环神经网络结构,将 LSTM 这种能够有效处理长序列依赖问题的单元应用到双向 RNN 中,就形成了双向 LSTM。它结合了 LSTM 处理长序列的优势和双向 RNN 利用双向信息的特点。如图片中所示,两个 LSTM 单元分别从序列的开头和结尾向中间处理数据,在每个时间步上,将两个 LSTM 的隐藏状态进行融合(如拼接等操作),以获得包含更多上下文信息的表示。
- 应用场景:在语音识别中,双向 LSTM 可以更好地理解语音序列的前后信息,提高识别准确率。
双向 LSTM - CRF(Conditional Random Field,条件随机场)
- 结构原理:在双向 LSTM 的基础上,添加了 CRF 层。双向 LSTM 对输入序列进行特征提取和编码,得到每个位置的标签得分。CRF 层则根据这些得分以及标签之间的转移概率,对整个序列的标签进行联合预测。例如在命名实体识别任务中,CRF 层可以考虑标签之间的依赖关系(如 B - ORG 后面更可能是 I - ORG,而不是 O),从而得到更合理的标签序列。
- 应用场景:广泛应用于自然语言处理中的序列标注任务,如命名实体识别、词性标注等,通过 CRF 层对标签序列的约束,提高标注的准确性和一致性。

双向 LSTM - CNNs(Convolutional Neural Networks,卷积神经网络)
- 结构原理:结合了双向 LSTM 和 CNN 的优点。在输入层,可能会使用 CNN 对字符级别的信息进行特征提取,例如提取单词中字符的局部特征。然后将这些特征与词嵌入等其他特征一起输入到双向 LSTM 中,双向 LSTM 进一步处理序列信息,捕捉上下文依赖关系。这种结构可以同时利用 CNN 的局部特征提取能力和双向 LSTM 的上下文建模能力。
- 应用场景:在自然语言处理中,对于一些需要同时考虑字符级和词级信息的任务,如文本分类、情感分析等,双向 LSTM - CNNs 可以取得较好的效果。

双向 LSTM - CNNS - CRF
- 结构原理:是在双向 LSTM - CNNs 的基础上再添加 CRF 层。首先通过 CNN 提取字符级别的局部特征,然后双向 LSTM 对序列信息进行上下文建模,最后 CRF 层根据双向 LSTM 的输出对标签序列进行联合预测,考虑标签之间的依赖关系。这种复杂的结构综合了 CNN 的局部特征提取、双向 LSTM 的上下文建模和 CRF 的序列标注优化能力。
- 应用场景:在复杂的自然语言处理序列标注任务中表现出色,如在医疗文本的实体识别和关系抽取任务中,能够更准确地识别和标注相关的实体和关系。
