课程主页:http://www.cs.columbia.edu/~cs4705/

课程网盘地址:

链接:https://pan.baidu.com/s/1r0f7I2j6rtlK31VplwHa1Q
提取码:pw02

这一讲介绍了用全局线性模型解决标注问题。

回顾标注问题:

在全局线性模型下,标注模型的元素如下:

  • 输入$x$是句子$w_{[1:n]}= \{w_1…w_n\}$
  • 定义$\mathcal T$为标注的集合
  • $\text{GEN}(w_{[1:n]}) =\mathcal T^n$,即所有长度为$n$的标注序列。

注意此时$\text{GEN}$和句子长度呈指数关系。接下来的问题是如何定义$f$?

我们首先回顾历史的概念:

  • 历史是$4$元组$\langle t_{-2}, t_{-1}, w_{[1:n]},i \rangle$
  • $t_{-2},t_{-1}$是之前两个标注
  • $ w_{[1:n]}$是输入句子的$n$个单词
  • $i$是正在被标注的单词的索引

来看个具体例子:

局部特征向量表示

给定历史/标注对$(h,t)$,$g_s(h,t), s=1,…,d$是上下文$h$中表示标记决策$t$的局部特征,例如:

现在假设我们有如下信息:

根据局部特征定义全局特征:

其中$t_i$是第$i$个标注,$h_i$是第$i$个历史。

将内容总结如下:

  • $\text{GEN}(w_{[1:n]}) $为所有长度为$n$的标注序列的集合。

  • $\text{ GEN},f,v$,定义

可以用动态规划算法求解$\arg \max$(因为历史只考虑前两个标注)。

(备注,这部分老师没有介绍具体的算法。)

用感知机算法训练标注器

  • 输入:训练集$\left(w_{\left[1: n_{i}\right]}^{i}, t_{\left[1: n_{i}\right]}^{i}\right),i=1…n$

  • 初始化:$\mathrm v=0$

  • 算法:

    • 对$t=1,….,T$

      • 对$i=1,…,n$

        • $z_{\left[1: n_{i}\right]}=\arg \max _{u_{\left[1: n_{i}\right]} \in \mathcal{T}^{n_{i}}} \mathbf{v} \cdot \mathbf{f}\left(w_{\left[1: n_{i}\right]}^{i}, u_{\left[1: n_{i}\right]}\right)$

        • 如果$z_{\left[1: n_{i}\right]} \neq t_{\left[1: n_{i}\right]}^{i}$,那么

  • 输出:参数$\mathrm v$

下面给出计算$z$的方法:

定义

以及

递推:

最后

然后利用递推式

计算其余部分。

本讲测验题

Coursera部分

1.

2.

(a),(b),(d)

3.

4.