2021斯坦福CS224课程leture3~4笔记
leture 3~Backprop and Neural Networks
Named Entity Recognition
NER,命名实体识别,技术难点:
- 计算实体边界难;
- 难以判断某物是否是一个实体;
- 难以判断实体类别;
- 实体类别模糊,依赖上下文;
简单方法:window classification using binary logistic classifier
思想:在相邻词的上下文窗口中对一个word进行分类,训练softmax分类器对中心词进行分类,方法是在一个窗口内将中心词周围的词向量串联起来。以图中分类“Paris”为例,窗口长度为2,故可以得到一个五维的列向量x=xwindow。
使用监督学习,若中心词表示location信息,则获得高分。故激活函数表示为:
以上述为例,则有
然后使用SGD更新参数,α表示学习率:
然后采用BP算法计算∇θJ(θ),计算梯度如下。
BP算法
BP算法:沿着边回传梯度
对于单个节点:
对于多个节点:
即[downstream gradient] = [upstream gradient] x [local gradient]
注意,所有梯度需一次计算,即∂s/∂W 和 ∂s/∂b需同时计算。
BP算法总结:
• 初始化输出梯度为1;
• 以逆拓扑顺序,使用节点的后继梯度计算当前节点的梯度,应用链式法则;
[downstream gradient] = [upstream gradient] x [local gradient]
• FP算法和BP算法理论上计算复杂度一致。
leture 4~Dependency Parsing
首先两种语义结构:
- Constituency Parsing:句法分析,Context-free grammars(CFGs),上下文无关语法,赋予每个单词一个词性类别,单词组合成短语,短语递归形成更大的短语;
这里,Det 指 Determiner,表示限定词;NP 指 Noun Phrase ,表示名词短语;VP 指 Verb Phrase ,表示动词短语;P 指Preposition ,表示介词;PP 指 Prepositional Phrase ,表示介词短语。 - Dependency Parsing:直接通过单词与其他单词的关系表示句子的结构,表示单词依赖于(修饰或是其参数)其他单词。
Dependency Parsing
Dependency Parsing缺陷
依存分析存在一些问题,如介词短语依附歧义、协议范围模糊、形容词修饰歧义、动词短语依存歧义等问题,示例如下:
- 介词短语依附歧义:“San Jose cops kill man with knife”表示两种含义,警察用刀杀了那个男人,警察杀了那个有刀的男人;
- 协议范围模糊:“Shuttle veteran and longtime NASA executive Fred Gregory appointed to board”,这里appointed修饰的主语是一人还是两人;
- 形容词修饰歧义:“Students get first hand job experience”,first修饰的是hand还是experience;
- 动词短语依存歧义:“ Mutilated body washes up on Rio beach to be used for Olympic beach volleyball ”,“to be used for Olympic beach volleyball”修饰body还是beach.
Dependency Structure
关联语法假设句法结构包括词汇项之间的关系,通常是二元不对称关系(“箭头”),称为依赖关系,两种表现形式:
-
在句子上直接标出依存关系箭头和语法关系
-
树状结构(Dependency Tree Graph)
a. 箭头连接头部和一个依赖
b. 通常,依赖关系形成一棵树(单向无环连接图)
Dependency Parsing方法
- 动态规划
- 图算法:采用ML分类器对句子最小生成树的依赖项进行评分;
- 限制约束;
- 基于贪心思想的依赖项解析器:
Greedy transition-based parsing:
解析器执行一系列自底向上的操作,可表示为:
- 栈σ以 ROOT 符号开始,由若干 wi组成
- 缓存β以输入序列开始,由若干wi组成
- 依存弧集合A,开始为空。每条边形式是 (wi,r, wj),其中 r 描述节点依存关系
一组操作
目标:σ=[ROOT],β=∅,A包含所有依存弧
Transition操作:
- SHIFT:将buffer中的第一个词移出并放到stack上。(缓冲区不能为空)
- LEFT-ARC:将(wj,r, wi)加入边集合A ,其中wi是stack上的次顶层的词,wj是stack上的最顶层的词。(堆必须包含两个单词以及 wi不是 ROOT )
- RIGHT-ARC:将(wi,r, wj)加入边集合A ,其中wi是stack上的次顶层的词, wj是stack上的最顶层的词。(堆必须包含两个单词)
重复进行上述三类操作,直到从初始态达到最终目标。