SlideShare une entreprise Scribd logo
1  sur  27
文本序列标注模型:从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 2
1
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 j
j
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 l
f 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 l
f s l l f s l l f s l l
  
  
 
 
举例: POS-tagging
• s: 红红的_太阳_高高照
• l: 形容词_名词_动词 vs 形容词_形容词_名词
Tag: 形容词、动词、名词、人名、其他
1 0 2 1 3 2
1
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 j
j
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 l
f 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 l
f 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 0
2 1 0 0 0 1
f s l l f s l l f s l l f s l l f s l l
l
l
形容词以“的”字结尾
形容词后面跟着名词
λ1=3
λ3=5
如何得到特征函数
• 特征函数:人工构造
• 例如:CRF++中通过指定特征模板,然后依据特征模板生成特征
函数
由一个特征模板“U01:%x[0,1]”产生的特征函数:
一个特征模板一共可以产生(L * N)个特征函数,
L: 标签数量, N: 模板可以产生的不同单词组合
参数 λ 学习 (拟牛顿法)
• 梯度下降: 先随机初始化,然后沿着低度方向调整到最优(局部)
预测
• 参数已经训练好了,给定一个新的句子,如何计算其最有可能的
标记序列?
• 暴力法:列出所有可能。时间复杂度:O(km) [句子长度m,标签
数k]
• 多项式时间算法:利用线性CRF满足的最优子结构性质,可以找
到多项式时间复杂度的算法,维特比算法
例如:A B C D
Tag:形容词、动词、名词、人名、其他
组合: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
各种网络结构。。。只有想不到,没有做不到
LSTM
RNN 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).
谢谢
• 何云超 (yunchaohe@gmail.com)

Contenu connexe

Similaire à 文本序列标注模型:从Crf到rnn

Clojure
ClojureClojure
Clojure
Di Xu
 
C 02 c语言的基本数据类型与表达式
C 02 c语言的基本数据类型与表达式C 02 c语言的基本数据类型与表达式
C 02 c语言的基本数据类型与表达式
1138177709
 
第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式
summerfeng
 
数据处理算法设计要点
数据处理算法设计要点数据处理算法设计要点
数据处理算法设计要点
thinkinlamp
 
基于XMPP的Gtalk机器人
基于XMPP的Gtalk机器人基于XMPP的Gtalk机器人
基于XMPP的Gtalk机器人
roamin9 Zhou
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
Hengyi
 

Similaire à 文本序列标注模型:从Crf到rnn (20)

Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
 
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
 
R 語言教學: 探索性資料分析與文字探勘初探
R 語言教學: 探索性資料分析與文字探勘初探R 語言教學: 探索性資料分析與文字探勘初探
R 語言教學: 探索性資料分析與文字探勘初探
 
Lda
LdaLda
Lda
 
Clojure
ClojureClojure
Clojure
 
C 02 c语言的基本数据类型与表达式
C 02 c语言的基本数据类型与表达式C 02 c语言的基本数据类型与表达式
C 02 c语言的基本数据类型与表达式
 
机器学习与深度学习简介.pdf
机器学习与深度学习简介.pdf机器学习与深度学习简介.pdf
机器学习与深度学习简介.pdf
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
 
第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式
 
软件工程
软件工程软件工程
软件工程
 
数据处理算法设计要点
数据处理算法设计要点数据处理算法设计要点
数据处理算法设计要点
 
机器学习V10baochang svm
机器学习V10baochang svm机器学习V10baochang svm
机器学习V10baochang svm
 
基于XMPP的Gtalk机器人
基于XMPP的Gtalk机器人基于XMPP的Gtalk机器人
基于XMPP的Gtalk机器人
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
 
[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰
 
看似比較簡單的推坑教學 C語言從崩潰到崩潰Ex(二)
看似比較簡單的推坑教學 C語言從崩潰到崩潰Ex(二)看似比較簡單的推坑教學 C語言從崩潰到崩潰Ex(二)
看似比較簡單的推坑教學 C語言從崩潰到崩潰Ex(二)
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
 
文本挖掘(Text mining)基础
文本挖掘(Text mining)基础文本挖掘(Text mining)基础
文本挖掘(Text mining)基础
 

文本序列标注模型:从Crf到rnn