网络结构概述
ELMo 是一种基于双向LSTM的深度上下文词表示模型,核心结构包含字符编码层和多层双向语言模型。其网络结构分为三部分:
- : 双向LSTM层数
- : 可训练的任务特定权重
- : 全局缩放系数
1. 字符编码层(Character Encoding)
-
输入:原始字符序列(如单词拆分为字符)
-
结构:
- 字符卷积层
- 卷积核:个过滤器,尺寸为(1D卷积)
- 步长(stride)=1,无填充
- Highway层
- 2层Highway网络,增强梯度流动
- 线性投影
- 将输出投影到维空间
- 字符卷积层
-
输出:单词的字符级表示 。
2. 双向语言模型(Bidirectional Language Model)
前向LSTM
-
输入:字符编码
-
隐藏层:层LSTM(通常)
- 每层隐藏单元数:
- 投影输出到维(减少参数)
-
目标函数:最大化前向对数似然
后向LSTM
-
输入:字符编码 (反向序列)
-
隐藏层:与前向结构对称
-
目标函数:最大化后向对数似然
双向联合训练
- 总损失函数:
3. 多层表示组合
ELMo 融合各层隐藏状态生成最终词表示:
-
层输出:
- : 字符编码层输出
- : 第一层双向LSTM输出
- : 第二层双向LSTM输出
-
参数化组合:
- : Softmax归一化的任务特定权重
- : 预训练后固定或微调