复习课
复习课大类别
按照复习课顺序而非上课顺序。
Classification
bag of words representation
Naive Bayes
- smooth
QA
- History
- paradigms of QA
- IR-Based QA
- KB-Based QA
- Pattern Based
- Parsing Based
ChatBot
- 画框图
Information Extraction
- NER
- Sequence labeling
HMM
- 三种算法
- POS tagging
1. 文本分类
- 从bag of word这种基于词频的内容开始,统计文档中的某些词的词频对文档进行分类。
- 统计文档的单词,并获得有关文档的字典。 然后我们可以从文档中获取每个单词的频率。一般我们只选取有用的词来统计。
- 采用的方法是朴素贝叶斯方法。如下是朴素贝叶斯的公式:
- 根据上面的公式,我们可以对有某些特征的物品进行类别分类,如下是一个水果分类问题。
- 存在着有的特征可能没有值的情况,比如上一题里面Orange里面就没有Long。可以用拉普拉斯平滑的方式解决。
- 训练过程,首先建立词典,然后计算先验
,即统计所有文档中,类别为 的文档频率。然后计算类条件概率,即先统计 文档的所有词数,然后统计 文档中 的个数。 - 测试过程中
- 注意:如果题目说要统计unk词,注意词表数+1
- 总而言之,是否需要平滑,需要看题目要求
- 将上述分类的方法部署到自然语言领域:
要求:计算
2. QA
问答系统的发展历史:
- 1961年,BASEBALL
- 2003年,TAP Search
- 2010年前后:Wolfram Alpha,Siri,Watson
- 2012,Google的蜂鸟算法
- 2015RankBrain
- 2019智能音箱
QA的分类:
基于IR的方法
基于知识图谱的方法
基于混合的方法
要求:需要非常熟悉地掌握几类方法的设计模式以及优缺点
比如,基于IR的QA需要知道代表工作有哪些。基于IR流程设计的QA系统,主要分成三步:
用知识图谱的QA可以解决的问题是语义鸿沟和词法鸿沟。基于知识图谱的语义解析的方法分为几类,基于知识图谱端到端的方法分为几类。如下是基于知识图谱的QA系统构建方法,也是Siri的构建方法:
下面是介绍基于IR的QA系统的具体的设计流程,包含了很多的IR的思想 :
需要知道每个大框架里面是什么,每个小的步骤是什么。
Question Processing:
需要详细了解每个小的框图里面有什么内容:
23.2 Factoid Question Answering 819页进行了讲解
基于模板的QA也是重要的,模板的生成以及实例化,让写一个模板生成的架构应该也是可以写出来的:
包含两步:
Step 1: Template generation linguistics processing
Step 2: Template matching and instantiation NER
让你写一个模板生成的架构应该也是可以写出来的。
基于parsing的架构图,下面的图是非常重要的,因为包含了各个步骤,包括短语映射,资源映射,语义组合,查询生成。
会出现两个主要问题:词法鸿沟和语义鸿沟。词法鸿沟是指文本到知识图谱之间的映射需要定义,语义鸿沟指的是查询时候的问题(这里没讲明白)。我们需要想到怎么去解决这些方法,不管是用bert还是怎么的。
出现效果较差的原因:一个是由数据引起的,数据错的,和数据是不完整和缺失的。查询的话包括了对查询的错误理解,过于严格的查询,失败的排序算法等。
只需要了解即可
不同空间不同任务:推理,查询,加速。
3. ChatBot
相比较QA增加了两个模块,对于对话的管理,以及对话策略的执行。
平时的聊天机器人主要是两个状态:一个是基于领域的,封闭的。比如帮你去订酒店,订机票什么的。还有一个就是开放式的。封闭的是基于规则模板,统计组件或者是一些Deep Learning的方法。
考试的时候会让画框图,但是注意不要画bert,画bert后面的组件没法说。像上面的就方便说每一个组件是干什么的。首先是对语音的理解, 状态追踪(需要很清楚是干什么的),对话策略的执行与学习,最后是进行生成。同时还有一个知识库,知识库的作用是什么?
在设计系统的时候从整门课的角度去思考,这门课主要两个部分,自然语言的理解,自然语言的生成。前面的技术包括POS,NER,等。
4. 信息的抽取
找到文本,收集information,这些信息是服务于人和算法的。
两个核心任务,NER的识别关系的提取。这个PPT比较老了。
需要关注一个新的方向:事件抽取。除了NER和关系抽取外,说一个信息抽取其他的任务。比如多模态知识抽取。最近的任务就是在关注事件抽取,需要了解概念
NER需要识别人名,地名,组织名之类的。
核心的思想还是原来的那个训练模型的思路:
需要细化,知道怎么标注,怎么训练。比如标志位,常见的Feature,常见的分类器,可以使用最简单的隐马尔科夫模型。比如出现一个隐马尔科夫的题目。下面可能会有一个NER的题目,如果不会做可以直接用隐马尔科夫。但是需要弄清楚的是怎么用分类器去做。目标函数,每一步过程与作用是什么。不需要隐马尔科夫的推导过程,但是需要知道怎么HMM是怎么解码的。
做关系的抽取也是一样的。构建合理的分类器并且构建合理的feature。
- 整个课程有三个地方涉及到计算,一个是贝叶斯,一个是HMM 和维特比算法涉及到,并且还有一个作业。TFIDF,隔壁班级没有讲(但是看他们的ppt上面是有的)
5. HMM
- 推导需要完全熟练的掌握,输入是什么输出是什么
5.1 Maximun a posterior inference(MAP inference)
- HMM有两个独立性假设:
- 观测序列之间是独立的 (A B 独立 有P(A, B) = P(A)P(B),所以计算联合概率的时候才能用叠乘 )
- 当前状态仅依赖于先前的状态
- Number of states = K, Number of observations = M
:Initial probabilities over states (K*K matrix) :Transition probabilities (K*M matrix) Input
, Output that corresponds to
不同模型的描述:
5.2 DP推导:
- 不用动态规划前,算法复杂度为
,即要遍历 的路径数量,使用动态规划后变为 ,即对于每次迭代只需要计算k个联合概率,每个联合概率需要计算k次乘法,而迭代数为n次,所以时间复杂度如上
5.3 Vitebri Algorithm
- Initialization
- for each hidden
- for each hidden
- Recursion
- for t = 2 to n, for each
: - 即t时刻隐藏状态j的联合概率为上一个状态转移的最大值所激发可见符号的概率
- 找到路径
- End
- for t = 2 to n, for each
- for t=n-1 to 1(path back tracking)
- $w^(t)=\psi_{w^(t+1)}(t+1)$
- end
5.4 Supervised learning details
can be estimated separately just by counting s denotes label, x denotes word, n denotes the number of total words
- Initial prob
- Transition prob
- Emission prob
5.5 tri-gram markov
5.6 HOMEWORK
关键的点
- 作业需要非常熟悉的掌握。
朴素贝叶斯,以及平滑的方法。
NER以及IE的过程熟悉掌握。
- 遇到难算的地方,直接用分数写成乘法的形式也是可以的,不需要展开来算。
- 开放题,有两个选择,选择其中一个写就行。设计一个QA,设计一个IR,或者让你谈一谈Bert的语言模型的特点
- 所有的题目都应该是英文作答。