文本序列标注模型:从crf到rnn
TRANSCRIPT
文本序列标注模型:从CRF 到 RNN
何云超2017-03-16
Contents• 序列标注• 概率图模型• 条件随机场• 深度学习
序列标注问题• 问题:给定一个文本序列,如何识别出每个词语是何种标记• 例如:从 乐视 大厦 出发 怎么 坐 公交车 去 天安门 ?• 出发地 交通方式 目的地• De la musique, comme le bâtiment comment prendre un bus à la
place Tiananmen? ( 谷歌翻译 )
• 方法: HMM 、 CRF 、 seq2seq 模型( RNN 、 LSTM 、 LSTM-CRF )等• 模型 f: 观测序列 X -> 标记序列 ( 状态序列 ) Y P(Y|X)
应用• 机器翻译• 语音识别• 手写体识别• 自动问答• 分词• 词性标注• 命名体识别• TTS
方法• 1. 【分】分类问题,对每个位置的词汇进行分类(最大熵分类器、
MEMMs )• 2. 【合】整体看待一句话,条件随机场• 3. 【混合】深度学习、序列标注问题• 4. 其他
CRF 的特征函数• 是一个以这些作为输入的函数:• 句子 s• 单词在句子中出现的位置,即单词 index , i• 当前词语的标记类型, li
• 前一个词语的标记类型, li-1
• 输出:• 实数值(通常 0 或 1 )
预测• 为每一个特征函数 (fi) 分配一个权值 (λi) (训练得到)。给定一个句子 s , 通过加总句子中所有词的加权特征,可以衡量这个句子 s 被标记为标签 l 的分数是多少:
• 归一化:
举例 : POS-tagging
形容词以“的”字结尾
句首是动词,句末是问号
形容词后面跟着名词
连续两个词是人名
λ1=3
λ2=1
λ3=5
λ4=-2
Tag: 形容词、动词、名词、人名、其他
举例 : POS-tagging
形容词以“的”字结尾
句首是动词,句末是问号
形容词后面跟着名词
连续两个词是人名
λ1=3
λ2=1
λ3=5
λ4=-2
• s: 红红的 _ 太阳 _ 高高照• l: 形容词 _ 名词 _ 动词 vs 形容词 _ 形容词 _ 名词
Tag: 形容词、动词、名词、人名、其他
1 0 2 1 3 21
1 1 1 0 1 1 2 1 1 1 3 2
2 2 1 0 2 2 2 1 2 2 3 2
( | 1) ( ( ,1, , ) ( , 2, , ) ( ,3, , ))
( ,1, , ) ( , 2, , ) ( ,3, , ) + ( ,1, , ) ( , 2, , ) ( ,3, ,
m
j j j j j jj
score l s f s l l f s l l f s l l
f s l l f s l l f s l lf s l l f s l l f s l l
3 3 1 0 3 3 2 1 3 3 3 2
4 4 1 0 4 4 2 1 4 4 3 2
) + ( ,1, , ) ( , 2, , ) ( ,3, , ) + ( ,1, , ) ( , 2, , ) ( ,3, , )
f s l l f s l l f s l lf s l l f s l l f s l l
举例 : POS-tagging
• s: 红红的 _ 太阳 _ 高高照• l: 形容词 _ 名词 _ 动词 vs 形容词 _ 形容词 _ 名词
Tag: 形容词、动词、名词、人名、其他
1 0 2 1 3 21
1 1 1 0 1 1 2 1 1 1 3 2
2 2 1 0 2 2 2 1 2 2 3 2
( | 1) ( ( ,1, , ) ( , 2, , ) ( ,3, , ))
( ,1, , ) ( , 2, , ) ( ,3, , ) + ( ,1, , ) ( , 2, , ) ( ,3, ,
m
j j j j j jj
score l s f s l l f s l l f s l l
f s l l f s l l f s l lf s l l f s l l f s l l
3 3 1 0 3 3 2 1 3 3 3 2
4 4 1 0 4 4 2 1 4 4 3 2
) + ( ,1, , ) ( , 2, , ) ( ,3, , ) + ( ,1, , ) ( , 2, , ) ( ,3, , )
f s l l f s l l f s l lf s l l f s l l f s l l
1 1 0 1 2 1 1 3 2 3 2 1 3 3 2( ,1, , ) ( , 2, , ) ( ,3, , ) ( , 2, , ) ( ,3, , )1 1 0 0 1 02 1 0 0 0 1
f s l l f s l l f s l l f s l l f s l lll
形容词以“的”字结尾形容词后面跟着名词
λ1=3
λ3=5
如何得到特征函数• 特征函数:人工构造• 例如: CRF++ 中通过指定特征模板,然后依据特征模板生成特征函数
由一个特征模板“ U01:%x[0,1]” 产生的特征函数:
一个特征模板一共可以产生 (L * N) 个特征函数 ,L: 标签数量, N: 模板可以产生的不同单词组合
参数 λ 学习 ( 拟牛顿法 )• 梯度下降 : 先随机初始化,然后沿着低度方向调整到最优(局部)
预测• 参数已经训练好了,给定一个新的句子,如何计算其最有可能的标记序列 ?• 暴力法:列出所有可能。时间复杂度: O(km) [ 句子长度 m ,标签数 k]• 多项式时间算法:利用线性 CRF 满足的最优子结构性质,可以找到多项式时间复杂度的算法,维特比算法例如: A B C DTag :形容词、动词、名词、人名、其他组合: 5^4
维特比算法
区别• HMM• 输出观察值之间严格独立• 状态的转移过程中当前状态只与前一状态有关 ( 一阶马尔可夫模型 )
HMM 判断这个标注成立的概率为P=P(s 转移到 s)*P(' 我 ' 表现为 s)*P(s 转移到 b)*P(' 爱 ' 表现为s)*..*参数:状态转移概率矩阵、表现矩阵
CRF 分析• 优点• 理论完善、技术成熟• 小空间搜索优势明显(全局最优)
•缺点• 不能处理长期依赖• 计算联合概率,不能实时输出
文本标注流程• 1. 定义标签(槽位)
• 有哪些槽位,槽位含义是什么,哪些情况能属于此槽位• 2. 训练数据构造
• 手工标注 : 句式、 Excel• 工具标注 : 边标注边训练模型• 第三方平台 : 采用 LUIS 、 Baidu 、讯飞等平台的标注结果
• 3. 归一化 [ 时间 ( 下周一 -> 20170316) 、地名 (巧克力 -> 超市 )• 4. 模型训练 ( 分布式训练 ?) • 5. 测试
随着训练数据越来越多,标签数越来越多,现有模型性能不再提高,达到瓶颈后如何改进?Deep Learning
各种网络结构。。。只有想不到,没有做不到
LSTMRNN cell
LSTM cell
BI-LSTM一个词的标签可能不仅仅和前文相关,也可能和后文相关(山东人喜欢用倒装句?)例如:请问乐视大厦做公交怎么走?解决方案:延时、双向
BI-LSTM一个词的标签可能不仅仅和前文相关,也可能和后文相关(山东人喜欢用倒装句?)例如:请问乐视大厦做公交怎么走? [ 目的地 ]解决方案:延时、双向
LSTM-CRF优点:• 通过 LSTM层有效利用历史标记信息• 通过 CRF层有效利用句子整体信息
BI-LSTM-LSTM
Deep-LSTM吾日三省吾身——为人谋而不忠乎? 与朋友交而不信乎? 《论语 · 学而》温故而知新,可以为师矣。 孔子《论语 · 为政》
Deep-BI-LSTM-CRF
参考资料• [1] Huang, Z., Xu, W., & Yu, K. (2015). Bidirectional LSTM-CRF models
for sequence tagging. arXiv preprint arXiv:1508.01991.• [2] Graves, A., Jaitly, N., & Mohamed, A. R. (2013, December). Hybrid
speech recognition with deep bidirectional LSTM. In Automatic Speech Recognition and Understanding (ASRU), 2013 IEEE Workshop on (pp. 273-278). IEEE.• [3] CRF++ 工具: https://taku910.github.io/crfpp/• [4] Zhou, J., & Xu, W. (2015). End-to-end learning of semantic role
labeling using recurrent neural networks. In ACL (1) (pp. 1127-1137).
谢谢
• 何云超 ([email protected])