Commit 48700c4f by xiaotong

finish the syntactic model part

parent a6a1f901
......@@ -15,6 +15,7 @@
\usepackage{tikz-qtree}
\usepackage{hyperref}
\usepackage{ulem}
\usepackage{multirow}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
......@@ -152,155 +153,118 @@
\subsection{规则匹配}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码 - 规则匹配
\begin{frame}{基于串的解码 - 规则匹配}
\subsection{改进方法}
%%%------------------------------------------------------------------------------------------------------------
%%% 对于句法系统的改进
\begin{frame}{改进方法}
\begin{itemize}
\item 相比基于树的解码,基于串的解码的实现要复杂许多,因为对于每一个片段,需要判断每条规则是否能匹配
\begin{itemize}
\item 就是匹配树片段的叶子节点序列,即单词和变量构成的串
\item<2-> 匹配单词可以直接完成
\item<3-> 匹配变量需要检查相应跨度节点上是否有相应标记的推导
\end{itemize}
\item \textbf{基于森林的翻译模型}。句法分析会出现错误,因此只使用一棵句法树进行规则抽取和解码会放大句法分析错误的影响。一种解决方法是使用多棵句法树增加覆盖度,句法森林是一种有效的数据结构表示指数级树结构,因此也被用于基于句法的机器翻译。
\vspace{0.3em}
\item \textbf{句法软约束和规则模糊匹配}。前面提到的模型都要求模型严格遵循句法结构,很多时候由于句法结构可能不完全适合翻译任务甚至有错误,这种模型过``硬''。因此可以使用句法软约束或者放松规则匹配时的约束。
\vspace{0.3em}
\item \textbf{控制句法使用的程度}。句法模型比较适合捕捉句法上层的表示,而短语模型更适合处理局部依赖。因此可以使用二者的混合来达到更好的效果,比如,可以让句法模型处理上层骨架的翻译,之后让短语模型处理简单短语片段的翻译。
\end{itemize}
\end{frame}
\vspace{-1em}
\begin{center}
\begin{tikzpicture}
\begin{scope}
{\scriptsize
\node [anchor=west] (sw1) at (0,0) {阿都拉$_1$};
\node [anchor=west] (sw2) at ([xshift=0.1em]sw1.east) {$_2$};
\node [anchor=west] (sw3) at ([xshift=0.1em]sw2.east) {自己$_3$$_4$\ $_5$\ $_6$\ $_7$\ 以来$_8$\ $_9$\ 施政$_{10}$\ 表现$_{11}$};
\node [anchor=west] (sw4) at ([xshift=0.2em]sw3.east) {感到$_{12}$ 满意$_{13}$};
\begin{pgfonlayer}{background}
\visible<3->{
\node [fill=red!20,inner sep=0pt] (box1) [fit = (sw1)] {};
\node [fill=green!20,inner sep=0pt] (box2) [fit = (sw3)] {};
\node [fill=orange!20,inner sep=0pt] (box3) [fit = (sw4)] {};
\node [anchor=south,align=center] (box1label) at (box1.north) {[{\blue 0},{\blue 1}]\\VP};
\node [anchor=south,align=center] (box2label) at (box2.north) {[{\blue 2},{\blue 11}]\\NP};
\node [anchor=south,align=center] (box3label) at (box3.north) {[{\blue 11},{\blue 13}]\\VP};
}
\visible<2->{
\node [draw,thick,purple,inner sep=0pt] (box4) [fit = (sw2)] {};
}
\end{pgfonlayer}
\draw[decorate,decoration={brace,mirror,,amplitude=3mm}] (sw1.south west) -- (sw4.south east);
%%%------------------------------------------------------------------------------------------------------------
%%% 实验结果
\begin{frame}{翻译效果}
\node [anchor=north] (label) at ([yshift=-1em]sw3.south) {在跨度[{\blue 0},{\blue 13}]上匹配``NP 对 NP VP''};
}
\begin{center}
\begin{tabular}{l | l | l | l}
\multicolumn{2}{c|}{模型} & 开发集 & 测试集 \\
\multicolumn{2}{c|}{} & (BLEU[\%]) & (BLEU[\%]) \\ \hline
\multicolumn{2}{l|}{短语(Moses)} & 36.51 & 34.93 \\
\multicolumn{2}{l|}{短语(NiuTrans)} & 36.99 & 35.29 \\ \hline
\multicolumn{2}{l|}{层次短语(Moses)} & 36.65 & 34.79 \\
\multicolumn{2}{l|}{层次短语(NiuTrans)} & 37.41 & 35.35 \\ \hline
& 基于串的解码 & 36.48 & 34.71 \\
树到串 & 基于树的解码 & 35.54 & 33.99 \\
(NiuTrans) & 基于森林的解码 & 36.14 & 34.25 \\ \hline
& 基于串的解码 & 35.99 & 34.01 \\
树到树 & 基于树的解码 & 35.04 & 33.21 \\
(NiuTrans) & 基于森林的解码 & 35.56 & 33.45 \\ \hline
串到树 & 基于串的解码 & 37.63 & 35.65 \\
(NiuTrans) & & &
\end{tabular}
\end{center}
\end{scope}
\vspace{-0.5em}
\scriptsize{* 以上结果来自 NiuTrans: An Open Source Toolkit for Phrase-based and Syntax-based Machine Translation}
\end{tikzpicture}
\end{center}
\end{frame}
\vspace{-1em}
%%%------------------------------------------------------------------------------------------------------------
%%% 总结
\begin{frame}{小结一下}
\begin{itemize}
\item<4-> 如果待匹配的单词和变量序列中,没有连续的变量,这样的规则符合lexicalized norm form (LNF),规则的匹配时间复杂度为O(1)
\item 基于短语和基于句法的模型是机器翻译2000年之后的重要进展之一
\begin{itemize}
\item 研究热度持续十余年,至今仍有使用(无指导机器翻译中使用SMT做初始模型)
\item 一些方法代表了NLP中的原始创新,比如最小错误率训练
\end{itemize}
\item 相关技术和方法对现在研究仍然有很好的借鉴意义
\begin{itemize}
\item 对翻译的统计建模方法,比如,基于翻译文法和推导的机器翻译建模思想
\item 翻译调序等机器翻译特有问题的描述方法
\item 先验知识的使用,句法结构、篇章等等
\end{itemize}
\item<2-> 在深度学习时代下重新审视统计机器翻译
\begin{itemize}
\item 比如层次短语系统的规则就符合LNF,因此规则匹配非常容易实现
\item 显然上面例子中的规则不符合LNF
\item 注意,统计机器翻译并不是简单几套系统,更重要的是思想,这种建模方法更接近人类对翻译的认知
\item 深度学习方法从另一个视角看待机器翻译,二者必然存在结合的可能,只是结合的方法需要探索
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码 - 连续变量的匹配,复杂度增加
\begin{frame}{基于串的解码 - 连续变量的匹配}
\begin{itemize}
\item 但是,如果待匹配串中有连续变量,问题会变得复杂:因为确定两个变量之间的边界需要 增加一重循环
\end{itemize}
\vspace{-0.5em}
%%%------------------------------------------------------------------------------------------------------------
%%% last slide
\begin{frame}{Last Slide}
\vspace{1em}
\begin{center}
\begin{tikzpicture}
\begin{scope}
{\scriptsize
\node [anchor=west] (sw11) at (0,0) {阿都拉$_1$};
\node [anchor=west] (sw12) at ([xshift=0.1em]sw11.east) {$_2$};
\node [anchor=west,fill=green!20] (sw13) at ([xshift=0.1em]sw12.east) {自己$_3$$_4$\ $_5$\ $_6$\ $_7$\ 以来$_8$\ $_9$\ 施政$_{10}$\ 表现$_{11}$ 感到$_{12}$ };
\node [anchor=west,fill=orange!20] (sw14) at ([xshift=0.2em]sw13.east) {满意$_{13}$};
\node [anchor=north west] (sw21) at ([yshift=-0.3em]sw11.south west) {阿都拉$_1$};
\node [anchor=west] (sw22) at ([xshift=0.1em]sw21.east) {$_2$};
\node [anchor=west,fill=green!20] (sw23) at ([xshift=0.1em]sw22.east) {自己$_3$$_4$\ $_5$\ $_6$\ $_7$\ 以来$_8$\ $_9$\ 施政$_{10}$\ 表现$_{11}$};
\node [anchor=west,fill=orange!20] (sw24) at ([xshift=0.2em]sw23.east) {感到$_{12}$ 满意$_{13}$};
\node [anchor=north west] (sw31) at ([yshift=-0.3em]sw21.south west) {阿都拉$_1$};
\node [anchor=west] (sw32) at ([xshift=0.1em]sw31.east) {$_2$};
\node [anchor=west,fill=green!20] (sw33) at ([xshift=0.1em]sw32.east) {自己$_3$$_4$\ $_5$\ $_6$\ $_7$\ 以来$_8$\ $_9$\ 施政$_{10}$};
\node [anchor=west,fill=orange!20] (sw34) at ([xshift=0.2em]sw33.east) {表现$_{11}$ 感到$_{12}$ 满意$_{13}$};
\node [anchor=north] (dots) at ([yshift=-0.5em]sw33.south) {...};
\begin{tikzpicture}
\node [anchor=north west] (sw41) at ([yshift=-1.8em]sw31.south west) {阿都拉$_1$};
\node [anchor=west] (sw42) at ([xshift=0.1em]sw41.east) {$_2$};
\node [anchor=west,fill=green!20] (sw43) at ([xshift=0.1em]sw42.east) {自己$_3$ };
\node [anchor=west,fill=orange!20] (sw44) at ([xshift=0.2em]sw43.east) {$_4$\ $_5$\ $_6$\ $_7$\ 以来$_8$\ $_9$ 施政$_{10}$ 表现$_{11}$ 感到$_{12}$ 满意$_{13}$};
\begin{scope}[level distance=25pt]
\node[] (x) at (-4,0) {};
\begin{scope}[sibling distance=15pt]
\Tree[.\node(en1){VP};
[.\node(en2){VP};
[.VB \textbf{Thank} ]
[.PRP \textbf{you} ]
]
[.\node(en3){ADJP};
[.RB \textbf{very} ]
[.JJ \textbf{much} ]
]
]
\end{scope}
\node [anchor=south] (label) at ([yshift=0.3em]sw13.north) {\footnotesize{在跨度[{\blue 0},{\blue 13}]上匹配``NP 对 NP VP''}};
\begin{scope}[grow'=up, xshift=-0.2in, yshift=-2.6in, sibling distance=34pt]
\Tree[.\node(cn1){VP};
[.\node(cn2){ADVP}; [.AD \textbf{非常} ] ]
[.\node(cn3){VP};
[.VV \textbf{感谢} ]
[.PR \textbf{大家} ]
]
]
\end{scope}
\node [anchor=north west,minimum size=1.2em,fill=green!20] (np) at ([yshift=-1.0em,xshift=0.3em]sw41.south west) {};
\node [anchor=west] (nplabel) at (np.east) {NP(第二个)};
\node [anchor=west,minimum size=1.2em,fill=orange!20] (vp) at ([xshift=1.0em]nplabel.east) {};
\node [anchor=west] (vplabel) at (vp.east) {VP};
\draw[<->, very thick, dotted, red] (cn1.east) .. controls +(east:4.5) and +(east:4.5) .. (en1.east);
\draw[<->, very thick, dotted, ugreen] (cn2.east) .. controls +(east:2) and +(west:2) .. (en3.west);
\draw[<->, very thick, dotted, blue] (cn3.west) .. controls +(west:2) and +(south:2) .. (en2.south);
}
\end{scope}
\end{tikzpicture}
\end{center}
\vspace{-0.5em}
\begin{itemize}
\item<2-> 理论上,对于长度为$n$的词串,匹配$m$个连续变量的时间复杂度是O($m^n$)
\begin{itemize}
\item 这也会导致含有多个变量的非词汇化规则的匹配大大增加系统的运行时间,但这种规则在句法系统中也很常见
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码
\begin{frame}{二叉化+CKY}
% NiuTrans Manual 和我EMNLP的论文,还有以前的文档
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于树的解码
\begin{frame}{基于树的解码}
% 我COLING的文章、博士论文、NiuTrans Manual
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection{改进方法}
%%%------------------------------------------------------------------------------------------------------------
%%% 改进1
\begin{frame}{改进:基于森林的翻译模型}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 改进2
\begin{frame}{改进:句法软约束和模糊匹配}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 改进3
\begin{frame}{改进:控制句法信息使用的程度}
\end{frame}
\end{CJK}
......
......@@ -4426,7 +4426,7 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection{基于树结构的解码}
\subsection{基于树和基于串的解码方法}
%%%------------------------------------------------------------------------------------------------------------
%%% 解码模型
......@@ -4976,7 +4976,7 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
\vspace{-1em}
\begin{itemize}
\item<4-> 如果待匹配的单词和变量序列中,没有连续的变量,这样的规则符合lexicalized norm form (LNF),规则的匹配时间复杂度为O(1)
\item<4-> 如果待匹配的单词和变量序列中,没有连续的变量,这样的规则符合lexicalized norm form (LNF)。因为LNF中单词(终结符)可以作为锚点,因此规则匹配较容易实现
\begin{itemize}
\item 比如层次短语系统的规则就符合LNF,因此规则匹配非常容易实现
\item 显然上面例子中的规则不符合LNF
......@@ -5038,7 +5038,7 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
\vspace{-0.5em}
\begin{itemize}
\item<2-> 理论上,对于长度为$n$的词串,匹配$m$个连续变量的时间复杂度是O($m^n$)
\item<2-> 理论上,对于长度为$n$的词串,匹配$m$个连续变量的时间复杂度是O($n^{m-1}$)
\begin{itemize}
\item 这也会导致含有多个变量的非词汇化规则的匹配大大增加系统的运行时间,但这种规则在句法系统中也很常见
\end{itemize}
......@@ -5047,33 +5047,159 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码
\begin{frame}{二叉化+CKY}
% NiuTrans Manual 和我EMNLP的论文,还有以前的文档
%%% 基于串的解码 - CYK + 规则二叉化
\begin{frame}{基于串的解码 - CKY + 规则二叉化}
\begin{itemize}
\item 对于这个问题,常用的解决办法是进行规则二叉化,这样右端最多只有两个连续变量,规则匹配的复杂度降为O($n$)。例如,对于如下串到树规则\\
\vspace{0.4em}
\begin{center}
喜欢 VP$_1$ NP$_2$ $\to$ VP(VBZ(likes) VP$_1$ NP$_2$ \\
\end{center}
\vspace{0.4em}
二叉化之后变为
\vspace{0.4em}
\begin{center}
\hspace{1em} 喜欢 V103 $\to$ VP(VBZ(likes) V103 \\
\vspace{0.4em}
VP$_1$ NP$_2$ $\to$ V103(VP$_1$ NP$_2$) \\
\end{center}
\vspace{0.4em}
其中,二叉化后的规则源语言端最多有两个非终结符。V103是一个虚拟符号,用于表示临时生成的规则
\item<2-> 对于二叉化后的规则,可以使用CKY方法完成解码,它也是一种基于chart的分析方法,对于每个源语言片段,匹配规则两个枝杈的左分支和右分支,整个过程和其它chart方法没有区别
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于树的解码
\begin{frame}{基于树的解码}
% 我COLING的文章、博士论文、NiuTrans Manual
%%% 基于串的解码 - chart parsing examples
\begin{frame}{基于串的解码 - 规则使用的实例}
\begin{itemize}
\item 使用规则可以构建句子的分析图
\end{itemize}
\centering
\includegraphics[scale=0.63]{./Figures/figure-chart-parsing-example.pdf}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection{改进方法}
%%%------------------------------------------------------------------------------------------------------------
%%% 改进1
\begin{frame}{改进:基于森林的翻译模型}
%%% 对于句法系统的改进
\begin{frame}{改进方法}
\begin{itemize}
\item \textbf{基于森林的翻译模型}。句法分析会出现错误,因此只使用一棵句法树进行规则抽取和解码会放大句法分析错误的影响。一种解决方法是使用多棵句法树增加覆盖度,句法森林是一种有效的数据结构表示指数级树结构,因此也被用于基于句法的机器翻译。
\vspace{0.3em}
\item \textbf{句法软约束和规则模糊匹配}。前面提到的模型都要求模型严格遵循句法结构,很多时候由于句法结构可能不完全适合翻译任务甚至有错误,这种模型过``硬''。因此可以使用句法软约束或者放松规则匹配时的约束。
\vspace{0.3em}
\item \textbf{控制句法使用的程度}。句法模型比较适合捕捉句法上层的表示,而短语模型更适合处理局部依赖。因此可以使用二者的混合来达到更好的效果,比如,可以让句法模型处理上层骨架的翻译,之后让短语模型处理简单短语片段的翻译。
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 改进2
\begin{frame}{改进:句法软约束和模糊匹配}
%%% 实验结果
\begin{frame}{翻译效果}
\begin{center}
\begin{tabular}{l | l | l | l}
\multicolumn{2}{c|}{模型} & 开发集 & 测试集 \\
\multicolumn{2}{c|}{} & (BLEU[\%]) & (BLEU[\%]) \\ \hline
\multicolumn{2}{l|}{短语(Moses)} & 36.51 & 34.93 \\
\multicolumn{2}{l|}{短语(NiuTrans)} & 36.99 & 35.29 \\ \hline
\multicolumn{2}{l|}{层次短语(Moses)} & 36.65 & 34.79 \\
\multicolumn{2}{l|}{层次短语(NiuTrans)} & 37.41 & 35.35 \\ \hline
& 基于串的解码 & 36.48 & 34.71 \\
树到串 & 基于树的解码 & 35.54 & 33.99 \\
(NiuTrans) & 基于森林的解码 & 36.14 & 34.25 \\ \hline
& 基于串的解码 & 35.99 & 34.01 \\
树到树 & 基于树的解码 & 35.04 & 33.21 \\
(NiuTrans) & 基于森林的解码 & 35.56 & 33.45 \\ \hline
串到树 & 基于串的解码 & 37.63 & 35.65 \\
(NiuTrans) & & &
\end{tabular}
\end{center}
\vspace{-0.5em}
\scriptsize{* 以上结果来自 NiuTrans: An Open Source Toolkit for Phrase-based and Syntax-based Machine Translation}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 改进3
\begin{frame}{改进:控制句法信息使用的程度}
%%% 总结
\begin{frame}{小结一下}
\begin{itemize}
\item 基于短语和基于句法的模型是机器翻译2000年之后的重要进展之一
\begin{itemize}
\item 研究热度持续十余年,至今仍有使用(无指导机器翻译中使用SMT做初始模型)
\item 一些方法代表了NLP中的原始创新,比如最小错误率训练
\end{itemize}
\item 相关技术和方法对现在研究仍然有很好的借鉴意义
\begin{itemize}
\item 对翻译的统计建模方法,比如,基于翻译文法和推导的机器翻译建模思想
\item 翻译调序等机器翻译特有问题的描述方法
\item 先验知识的使用,句法结构、篇章等等
\end{itemize}
\item<2-> 在深度学习时代下重新审视统计机器翻译
\begin{itemize}
\item 注意,统计机器翻译并不是简单几套系统,更重要的是思想,这种建模方法更接近人类对翻译的认知
\item 深度学习方法从另一个视角看待机器翻译,二者必然存在结合的可能,只是结合的方法需要探索
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% last slide
\begin{frame}{Last Slide}
\vspace{1em}
\begin{center}
\begin{tikzpicture}
\begin{scope}[level distance=25pt]
\node[] (x) at (-4,0) {};
\begin{scope}[sibling distance=15pt]
\Tree[.\node(en1){VP};
[.\node(en2){VP};
[.VB \textbf{Thank} ]
[.PRP \textbf{you} ]
]
[.\node(en3){ADJP};
[.RB \textbf{very} ]
[.JJ \textbf{much} ]
]
]
\end{scope}
\begin{scope}[grow'=up, xshift=-0.2in, yshift=-2.6in, sibling distance=34pt]
\Tree[.\node(cn1){VP};
[.\node(cn2){ADVP}; [.AD \textbf{非常} ] ]
[.\node(cn3){VP};
[.VV \textbf{感谢} ]
[.PR \textbf{大家} ]
]
]
\end{scope}
\draw[<->, very thick, dotted, red] (cn1.east) .. controls +(east:4.5) and +(east:4.5) .. (en1.east);
\draw[<->, very thick, dotted, ugreen] (cn2.east) .. controls +(east:2) and +(west:2) .. (en3.west);
\draw[<->, very thick, dotted, blue] (cn3.west) .. controls +(west:2) and +(south:2) .. (en2.south);
\end{scope}
\end{tikzpicture}
\end{center}
\end{frame}
\end{CJK}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论