Commit 484db460 by 孟霞

合并分支 'master' 到 'mengxia'

Master

查看合并请求 !962
parents f1caac97 ace46a9f
...@@ -570,14 +570,14 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\ ...@@ -570,14 +570,14 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection{2. 演员-评论家方法} \subsubsection{2. 演员-评论家方法}
\parinterval 基于策略的强化学习是要寻找一个策略$\funp{p}(a|\hat{{y}}_{1 \ldots j},\seq{x})$,使得该策略选择的行动$a$未来可以获得的奖励期望(也被称为{\small\bfnew{动作价值函数}}\index{动作价值函数}(Action-value Function)\index{Action-value Function}最大化。这个过程通常用函数$Q$来描述: \parinterval 基于策略的强化学习是要寻找一个策略$\funp{p}(a|\hat{{y}}_{1 \ldots j-1},\seq{x})$,使得该策略选择的行动$a$未来可以获得的奖励期望最大化,也被称为{\small\bfnew{动作价值函数}}\index{动作价值函数}(Action-value Function)\index{Action-value Function}最大化。这个过程通常用函数$Q$来描述:
\begin{eqnarray} \begin{eqnarray}
\funp{Q}(a;\hat{y}_{1 \ldots j},\seq{y}) & = & \mathbb{E}_{\hat{y}_{j+1 \ldots J} \sim \funp{p}(a|\hat{y}_{1 \ldots j} a,\seq{x})}[\funp{r}_j(a;\hat{y}_{1 \ldots j-1},\seq{y}) + \nonumber \\ \funp{Q}(a;\hat{y}_{1 \ldots j-1},\seq{y}) & = & \mathbb{E}_{\hat{y}_{j+1 \ldots J} \sim \funp{p}(\cdot|\hat{y}_{1 \ldots j-1} a,\seq{x})}[\funp{r}_j(a;\hat{y}_{1 \ldots j-1},\seq{y}) + \nonumber \\
& & \sum_{i=j+1}^J\funp{r}_i(\hat{{y}}_i;\hat{{y}}_{1 \ldots j-1}a\hat{{y}}_{j+1 \ldots i-1},\seq{y})] & & \sum_{i=j+1}^J\funp{r}_i(\hat{{y}}_i;\hat{{y}}_{1 \ldots j-1}a\hat{{y}}_{j+1 \ldots i},\seq{y})]
\label{eq:13-16} \label{eq:13-16}
\end{eqnarray} \end{eqnarray}
\noindent 其中,$\funp{r}_j(a;\hat{{y}}_{1 \ldots j-1},\seq{y})$$j$时刻做出行动$a$获得的奖励,$\funp{r}_i(\hat{{y}}_i;\hat{{y}}_{1 \ldots j-1}a\hat{{y}}_{j+1 \ldots i-1},\seq{y})$是在$j$时刻的行动为$a$的前提下,$i$时刻的做出行动$\hat{{y}}_i$获得的奖励,$\seq{x}$是源语言句子,$\seq{y}$是正确译文,$\hat{{y}}_{1 \ldots j}$是策略$\funp{p}$产生的译文的前$j$个词,$J$是生成译文的长度。对于源语句子$x$,最优策略$\hat{p}$可以被定义为: \noindent 其中,$\funp{r}_j(a;\hat{{y}}_{1 \ldots j-1},\seq{y})$$j$时刻做出行动$a$获得的奖励,$\funp{r}_i(\hat{{y}}_i;\hat{{y}}_{1 \ldots j-1}a\hat{{y}}_{j+1 \ldots i},\seq{y})$是在$j$时刻的行动为$a$的前提下,$i$时刻的做出行动$\hat{{y}}_i$获得的奖励,$\seq{x}$是源语言句子,$\seq{y}$是正确译文,$\hat{{y}}_{1 \ldots j-1}$是策略$\funp{p}$产生的译文的前$j-1$个词,$J$是生成译文的长度。对于源语句子$x$,最优策略$\hat{p}$可以被定义为:
\begin{eqnarray} \begin{eqnarray}
\hat{p} & = & \argmax_{\funp{p}}\mathbb{E}_{\hat{\seq{y}} \sim \funp{p}(\hat{\seq{y}} | \seq{x})}\sum_{j=1}^J\sum_{a \in A}\funp{p}(a|\hat{{y}}_{1 \ldots j},\seq{x})\funp{Q}(a;\hat{{y}}_{1 \ldots j},\seq{y}) \hat{p} & = & \argmax_{\funp{p}}\mathbb{E}_{\hat{\seq{y}} \sim \funp{p}(\hat{\seq{y}} | \seq{x})}\sum_{j=1}^J\sum_{a \in A}\funp{p}(a|\hat{{y}}_{1 \ldots j},\seq{x})\funp{Q}(a;\hat{{y}}_{1 \ldots j},\seq{y})
\label{eq:13-17} \label{eq:13-17}
......
...@@ -5,20 +5,20 @@ ...@@ -5,20 +5,20 @@
\tikzstyle{tnode}=[rectangle,inner sep=0mm,minimum height=1.8em,minimum width=4em,rounded corners=5pt,thick,draw,fill=teal!20] \tikzstyle{tnode}=[rectangle,inner sep=0mm,minimum height=1.8em,minimum width=4em,rounded corners=5pt,thick,draw,fill=teal!20]
\tikzstyle{stnode}=[rectangle,inner sep=0mm,minimum height=1.8em,minimum width=4em,rounded corners=5pt,thick,fill=red!20,draw] \tikzstyle{stnode}=[rectangle,inner sep=0mm,minimum height=1.8em,minimum width=4em,rounded corners=5pt,thick,fill=red!20,draw]
\tikzstyle{rnnnode}=[rectangle,inner sep=0mm,minimum height=2em,minimum width=6.5em,rounded corners=5pt,thick,fill=green!20,draw] \tikzstyle{rnnnode}=[rectangle,inner sep=0mm,minimum height=1.8em,minimum width=5em,rounded corners=5pt,thick,fill=green!20,draw]
\tikzstyle{wnode}=[inner sep=0mm,minimum height=2em,minimum width=5em] \tikzstyle{wnode}=[inner sep=0mm,minimum height=2em,minimum width=4em]
\begin{scope}[] \begin{scope}[]
\node [anchor=west,rnnnode] (r1) at (0, 0) {循环单元$\mathbi{h}_1$}; \node [anchor=west,rnnnode] (r1) at (0, 0) {循环单元};
\node [anchor=south,rnnnode] (r2) at ([xshift=0em,yshift=1em]r1.north){循环单元$\mathbi{h}_2$}; \node [anchor=south,rnnnode] (r2) at ([xshift=0em,yshift=1em]r1.north){循环单元};
\node [anchor=south] (r3) at ([xshift=0em,yshift=1em]r2.north){$\cdots$}; \node [anchor=south] (r3) at ([xshift=0em,yshift=1em]r2.north){$\cdots$};
\node [anchor=south,rnnnode] (r4) at ([xshift=0em,yshift=1em]r3.north){循环单元$\mathbi{h}_n$}; \node [anchor=south,rnnnode] (r4) at ([xshift=0em,yshift=1em]r3.north){循环单元};
\node [anchor=east,wnode,font=\footnotesize] (wr1) at ([xshift=-1em,yshift=0em]r1.west) {1时刻输入}; \node [anchor=east,wnode,font=\footnotesize,align=left,minimum width=3em] (wr1) at ([xshift=-1em,yshift=0em]r1.west) {1时刻\\ 输入};
\node [anchor=east,wnode,font=\footnotesize] (wr2) at ([xshift=-1em,yshift=0em]r2.west) {2时刻输入}; \node [anchor=east,wnode,font=\footnotesize,align=left,minimum width=3em] (wr2) at ([xshift=-1em,yshift=0em]r2.west) {2时刻\\ 输入};
\node [anchor=east,wnode,font=\footnotesize] (wr3) at ([xshift=-1em,yshift=0em]r4.west) {$n$时刻输入}; \node [anchor=east,wnode,font=\footnotesize,align=left,minimum width=3em] (wr3) at ([xshift=-1em,yshift=0em]r4.west) {$n$时刻\\ 输入};
\node [anchor=north,wnode] (input) at ([xshift=0em,yshift=-1em]r1.south) {$\mathbi{h}_0$}; \node [anchor=north,wnode] (input) at ([xshift=0em,yshift=-1em]r1.south) {$\mathbi{h}_0$};
\node [anchor=south,wnode] (output) at ([xshift=0em,yshift=1em]r4.north) {输出}; \node [anchor=south,wnode] (output) at ([xshift=0em,yshift=1em]r4.north) {输出};
...@@ -34,11 +34,11 @@ ...@@ -34,11 +34,11 @@
\draw[->,thick] ([xshift=0em,yshift=0em]wr2.east)--([xshift=0em,yshift=0em]r2.west); \draw[->,thick] ([xshift=0em,yshift=0em]wr2.east)--([xshift=0em,yshift=0em]r2.west);
\draw[->,thick] ([xshift=0em,yshift=0em]wr3.east)--([xshift=0em,yshift=0em]r4.west); \draw[->,thick] ([xshift=0em,yshift=0em]wr3.east)--([xshift=0em,yshift=0em]r4.west);
\node [anchor=north,font=\small] (label) at ([xshift=-4em,yshift=-0.5em]input.south) {(a)RNN}; \node [anchor=north,font=\small] (label) at ([xshift=-3em,yshift=-0.7em]input.south) {(a)RNN};
\end{scope} \end{scope}
\begin{scope}[xshift=1.9in] \begin{scope}[xshift=1.85in]
\node [anchor=west,stnode] (r1) at (0, 0) {第1层}; \node [anchor=west,stnode] (r1) at (0, 0) {第1层};
\node [anchor=south,tnode] (r2) at ([xshift=0em,yshift=1em]r1.north){第2层}; \node [anchor=south,tnode] (r2) at ([xshift=0em,yshift=1em]r1.north){第2层};
...@@ -60,20 +60,20 @@ ...@@ -60,20 +60,20 @@
\draw[->,thick] ([xshift=0em,yshift=0em]r3.north)--([xshift=0em,yshift=0em]r4.south); \draw[->,thick] ([xshift=0em,yshift=0em]r3.north)--([xshift=0em,yshift=0em]r4.south);
\draw[->,thick] ([xshift=0em,yshift=0em]r4.north)--([xshift=0em,yshift=0em]output.south); \draw[->,thick] ([xshift=0em,yshift=0em]r4.north)--([xshift=0em,yshift=0em]output.south);
\node [anchor=north,font=\small] (label) at ([xshift=-2em,yshift=-0.5em]input.south) {(b)原始Transformer模型}; \node [anchor=north,font=\small] (label) at ([xshift=-1.5em,yshift=-0.7em]input.south) {(b)原始Transformer模型};
\end{scope} \end{scope}
\begin{scope}[xshift=3.7in] \begin{scope}[xshift=3.9in]
\node [anchor=west,stnode] (r1) at (0, 0) {第1层}; \node [anchor=west,stnode] (r1) at (0, 0) {第1层};
\node [anchor=south,stnode] (r2) at ([xshift=0em,yshift=1em]r1.north){第2层}; \node [anchor=south,stnode] (r2) at ([xshift=0em,yshift=1em]r1.north){第2层};
\node [anchor=south] (r3) at ([xshift=0em,yshift=1em]r2.north){$\cdots$}; \node [anchor=south] (r3) at ([xshift=0em,yshift=1em]r2.north){$\cdots$};
\node [anchor=south,stnode] (r4) at ([xshift=0em,yshift=1em]r3.north){$n$}; \node [anchor=south,stnode] (r4) at ([xshift=0em,yshift=1em]r3.north){$n$};
\node [anchor=east,wnode,font=\footnotesize,align=left,minimum width=4em] (wr1) at ([xshift=-1em,yshift=0em]r1.west) {1时刻编\\ 码向量}; \node [anchor=east,wnode,font=\footnotesize,align=left] (wr1) at ([xshift=-1em,yshift=0em]r1.west) {1时刻\\码向量};
\node [anchor=east,wnode,font=\footnotesize,align=left,minimum width=4em] (wr2) at ([xshift=-1em,yshift=0em]r2.west) {2时刻编\\ 码向量}; \node [anchor=east,wnode,font=\footnotesize,align=left] (wr2) at ([xshift=-1em,yshift=0em]r2.west) {2时刻\\码向量};
\node [anchor=east,wnode,font=\footnotesize,align=left,minimum width=4em] (wr3) at ([xshift=-1em,yshift=0em]r4.west) {$n$时刻编\\ 码向量}; \node [anchor=east,wnode,font=\footnotesize,align=left] (wr3) at ([xshift=-1em,yshift=0em]r4.west) {$n$时刻\\码向量};
\node [anchor=north,wnode] (input) at ([xshift=0em,yshift=-1em]r1.south) {$\mathbi{h}_0$}; \node [anchor=north,wnode] (input) at ([xshift=0em,yshift=-1em]r1.south) {$\mathbi{h}_0$};
\node [anchor=south,wnode] (output) at ([xshift=0em,yshift=1em]r4.north) {输出}; \node [anchor=south,wnode] (output) at ([xshift=0em,yshift=1em]r4.north) {输出};
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
\draw[->,thick] ([xshift=0em,yshift=0em]wr2.east)--([xshift=0em,yshift=0em]r2.west); \draw[->,thick] ([xshift=0em,yshift=0em]wr2.east)--([xshift=0em,yshift=0em]r2.west);
\draw[->,thick] ([xshift=0em,yshift=0em]wr3.east)--([xshift=0em,yshift=0em]r4.west); \draw[->,thick] ([xshift=0em,yshift=0em]wr3.east)--([xshift=0em,yshift=0em]r4.west);
\node [anchor=north,font=\small,align=left] (label) at ([xshift=-2em,yshift=0.2em]input.south) {(c)共享权重的\\ Transformer模型}; \node [anchor=north,font=\small,align=left] (label) at ([xshift=-3em,yshift=-0.7em]input.south) {(c)共享权重的\\ Transformer模型};
\end{scope} \end{scope}
......
...@@ -21,25 +21,28 @@ ...@@ -21,25 +21,28 @@
\node [ffnnode,anchor=south] (ffn2) at ([yshift=0.5em]res3.north) {\tiny{$\textbf{Feed Forward Network}$}}; \node [ffnnode,anchor=south] (ffn2) at ([yshift=0.5em]res3.north) {\tiny{$\textbf{Feed Forward Network}$}};
\node [Resnode,anchor=south] (res4) at ([yshift=0.3em]ffn2.north) {\tiny{$\textbf{Add \& LayerNorm}$}}; \node [Resnode,anchor=south] (res4) at ([yshift=0.3em]ffn2.north) {\tiny{$\textbf{Add \& LayerNorm}$}};
\node [anchor=north west,font=\scriptsize,align=center] (l1) at ([xshift=0.1em]ffn1.north east) {\\ \\}; \node [anchor=north west,font=\scriptsize,align=center,ublue] (l1) at ([xshift=0.1em]ffn1.north east) {\\ $1$ \\};
\node [anchor=north west,font=\scriptsize,align=center] (l2) at ([xshift=0.1em]ffn2.north east) {\\ $n$ \\}; \node [anchor=north west,font=\scriptsize,align=center,ublue] (l2) at ([xshift=0.1em]ffn2.north east) {\\ $n$ \\};
\node [anchor=south east,font=\scriptsize] (l3) at ([yshift=3em]l1.north east) {}; \node [anchor=south east,font=\scriptsize] (l3) at ([yshift=3em]l1.north east) {};
\node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l4) at ([xshift=0.1em]ffn1.north west) {\\ \\}; \node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l4) at ([xshift=0.1em]ffn1.north west) {\\ $1$ \\};
\node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l5) at ([xshift=0.1em]ffn2.north west) {\\ $n$ \\}; \node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l5) at ([xshift=0.1em]ffn2.north west) {\\ $n$ \\};
\node [anchor=south west,font=\scriptsize] (l6) at ([yshift=3em]l4.north west) {}; \node [anchor=south west,font=\scriptsize] (l6) at ([yshift=3em]l4.north west) {};
\node [anchor=south west] (e1) at ([xshift=-1.4em,yshift=0.3em]res4.north west) {{编码器}}; \node [anchor=south west] (e1) at ([xshift=-1.4em,yshift=0.3em]res4.north west) {{编码器}};
\node [anchor=north,minimum height=0.1em,minimum width=0.1em] (set1) at ([xshift=0em,yshift=0.3em]sa1.south) {};
\node [anchor=north,minimum height=0.1em,minimum width=0.1em] (set2) at ([xshift=0em,yshift=0.3em]sa2.south) {};
\begin{pgfonlayer}{background} \begin{pgfonlayer}{background}
\node [rectangle,inner sep=0.6em,rounded corners=5pt,very thick,dotted,minimum height=1.4em,minimum width=3.5em,draw=red!40] [fit = (e1) (sa1) (l1) (l4)] (b4) {}; \node [rectangle,inner sep=0.6em,rounded corners=5pt,very thick,dotted,minimum height=1.4em,minimum width=3.5em,draw=red] [fit = (e1) (sa1) (l1) (l4) (set1)] (b4) {};
\node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=green!40,minimum height=1.4em,minimum width=7em] [fit = (l1) (sa1) (res2) (l4)] (b1) {}; \node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=ublue,minimum height=1.4em,minimum width=7em] [fit = (l1) (sa1) (res2) (l4) (set1)] (b1) {};
\node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=green!40,minimum height=1.4em,minimum width=7em] [fit = (dot1) (l3) (l6)] (b2) {}; \node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=ublue,minimum height=1.4em,minimum width=7em] [fit = (dot1) (l3) (l6)] (b2) {};
\node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=green!40,minimum height=1.4em,minimum width=7em] [fit = (l2) (sa2) (res4) (l5)] (b3) {}; \node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=ublue,minimum height=1.4em,minimum width=7em] [fit = (l2) (sa2) (res4) (l5) (set2)] (b3) {};
\end{pgfonlayer} \end{pgfonlayer}
\node [inputnode,anchor=north west] (input1) at ([yshift=-1.1em,xshift=-0.5em]sa1.south west) {\tiny{$\textbf{Embedding}$}}; \node [inputnode,anchor=north west] (input1) at ([yshift=-1.6em,xshift=-0.5em]sa1.south west) {\tiny{$\textbf{Embedding}$}};
\node [] (add) at ([yshift=-1.7em,xshift=3.5em]sa1.south west) {$+$}; \node [] (add) at ([yshift=-2.2em,xshift=3.5em]sa1.south west) {$+$};
\node [posnode,anchor=north east] (pos1) at ([yshift=-1.1em,xshift=1.6em]sa1.south east) {\tiny{$\textbf{Absolute Position}$}}; \node [posnode,anchor=north east] (pos1) at ([yshift=-1.6em,xshift=1.6em]sa1.south east) {\tiny{$\textbf{Absolute Position}$}};
\node [anchor=north] (wi) at ([yshift=-0.5em]pos1.south) {\scriptsize{词序信息}}; \node [anchor=north] (wi) at ([yshift=-0.5em]pos1.south) {\scriptsize{词序信息}};
...@@ -83,25 +86,28 @@ ...@@ -83,25 +86,28 @@
\node [ffnnode,anchor=south] (ffn2) at ([yshift=0.5em]res3.north) {\tiny{$\textbf{Feed Forward Network}$}}; \node [ffnnode,anchor=south] (ffn2) at ([yshift=0.5em]res3.north) {\tiny{$\textbf{Feed Forward Network}$}};
\node [Resnode,anchor=south] (res4) at ([yshift=0.3em]ffn2.north) {\tiny{$\textbf{Add \& LayerNorm}$}}; \node [Resnode,anchor=south] (res4) at ([yshift=0.3em]ffn2.north) {\tiny{$\textbf{Add \& LayerNorm}$}};
\node [anchor=north west,font=\scriptsize,align=center] (l1) at ([xshift=0.1em]ffn1.north east) {\\ \\}; \node [anchor=north west,font=\scriptsize,align=center,ublue] (l1) at ([xshift=0.1em]ffn1.north east) {\\ $1$ \\};
\node [anchor=north west,font=\scriptsize,align=center] (l2) at ([xshift=0.1em]ffn2.north east) {\\ $n$ \\}; \node [anchor=north west,font=\scriptsize,align=center,ublue] (l2) at ([xshift=0.1em]ffn2.north east) {\\ $n$ \\};
\node [anchor=south east,font=\scriptsize] (l3) at ([yshift=3em]l1.north east) {}; \node [anchor=south east,font=\scriptsize] (l3) at ([yshift=3em]l1.north east) {};
\node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l4) at ([xshift=0.1em]ffn1.north west) {\\ \\}; \node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l4) at ([xshift=0.1em]ffn1.north west) {\\ $1$ \\};
\node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l5) at ([xshift=0.1em]ffn2.north west) {\\ $n$ \\}; \node [anchor=north east,font=\scriptsize,align=center,opacity=0.0] (l5) at ([xshift=0.1em]ffn2.north west) {\\ $n$ \\};
\node [anchor=south west,font=\scriptsize] (l6) at ([yshift=3em]l4.north west) {}; \node [anchor=south west,font=\scriptsize] (l6) at ([yshift=3em]l4.north west) {};
\node [anchor=south west] (e1) at ([xshift=-1.4em,yshift=0.3em]res4.north west) {{编码器}}; \node [anchor=south west] (e1) at ([xshift=-1.4em,yshift=0.3em]res4.north west) {{编码器}};
\node [anchor=north,minimum height=0.1em,minimum width=0.1em] (set1) at ([xshift=0em,yshift=0.3em]sa1.south) {};
\node [anchor=north,minimum height=0.1em,minimum width=0.1em] (set2) at ([xshift=0em,yshift=0.3em]sa2.south) {};
\begin{pgfonlayer}{background} \begin{pgfonlayer}{background}
\node [rectangle,inner sep=0.6em,rounded corners=5pt,very thick,dotted,minimum height=1.4em,minimum width=3.5em,draw=red!40] [fit = (e1) (sa1) (l1) (l4)] (b4) {}; \node [rectangle,inner sep=0.6em,rounded corners=5pt,very thick,dotted,minimum height=1.4em,minimum width=3.5em,draw=red] [fit = (e1) (sa1) (l1) (l4) (set1)] (b4) {};
\node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=green!40,minimum height=1.4em,minimum width=7em] [fit = (l1) (sa1) (res2) (l4)] (b1) {}; \node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=ublue,minimum height=1.4em,minimum width=7em] [fit = (l1) (sa1) (res2) (l4) (set1)] (b1) {};
\node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=green!40,minimum height=1.4em,minimum width=7em] [fit = (dot1) (l3) (l6)] (b2) {}; \node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=ublue,minimum height=1.4em,minimum width=7em] [fit = (dot1) (l3) (l6)] (b2) {};
\node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=green!40,minimum height=1.4em,minimum width=7em] [fit = (l2) (sa2) (res4) (l5)] (b3) {}; \node [rectangle,inner sep=0.3em,rounded corners=5pt,very thick,dotted,draw=ublue,minimum height=1.4em,minimum width=7em] [fit = (l2) (sa2) (res4) (l5) (set2)] (b3) {};
\end{pgfonlayer} \end{pgfonlayer}
\node [inputnode,anchor=north west] (input1) at ([yshift=-1.1em,xshift=-0.5em]sa1.south west) {\tiny{Embedding}}; \node [inputnode,anchor=north west] (input1) at ([yshift=-1.6em,xshift=-0.5em]sa1.south west) {\tiny{Embedding}};
\node [] (add) at ([yshift=-1.7em,xshift=3.5em]sa1.south west) {$+$}; \node [] (add) at ([yshift=-2.2em,xshift=3.5em]sa1.south west) {$+$};
\node [posnode,anchor=north east] (pos1) at ([yshift=-1.1em,xshift=1.5em]sa1.south east) {\tiny{Absolute Position}}; \node [posnode,anchor=north east] (pos1) at ([yshift=-1.6em,xshift=1.5em]sa1.south east) {\tiny{Absolute Position}};
\node [anchor=north] (wi) at ([yshift=-0.5em]pos1.south) {\scriptsize{词序信息}}; \node [anchor=north] (wi) at ([yshift=-0.5em]pos1.south) {\scriptsize{词序信息}};
...@@ -130,9 +136,9 @@ ...@@ -130,9 +136,9 @@
\draw[->,standard] ([xshift=0em]wi.east) -- ([xshift=3.2em,yshift=0em]wi.east) -- ([xshift=-0em,yshift=0em]pos2.south); \draw[->,standard] ([xshift=0em]wi.east) -- ([xshift=3.2em,yshift=0em]wi.east) -- ([xshift=-0em,yshift=0em]pos2.south);
\draw[->,standard] ([xshift=0em]wi.east) -- ([xshift=6.7em,yshift=0em]wi.east) -- ([xshift=-0em,yshift=0em]pos3.south); \draw[->,standard] ([xshift=0em]wi.east) -- ([xshift=6.7em,yshift=0em]wi.east) -- ([xshift=-0em,yshift=0em]pos3.south);
\draw[->,standard] ([xshift=0em]wi.east) -- ([xshift=10.2em,yshift=0em]wi.east) -- ([xshift=-0em,yshift=0em]pos4.south); \draw[->,standard] ([xshift=0em]wi.east) -- ([xshift=10.2em,yshift=0em]wi.east) -- ([xshift=-0em,yshift=0em]pos4.south);
\draw[->,standard] ([xshift=0em]pos2.north) -- ([xshift=0em,yshift=1.6em]pos2.north) -- ([xshift=-0em,yshift=0em]sa1.east); \draw[->,standard] ([xshift=0em]pos2.north) -- ([xshift=0em,yshift=2.1em]pos2.north) -- ([xshift=-0em,yshift=0em]sa1.east);
\draw[->,standard] ([xshift=0em]pos3.north) -- ([xshift=0em,yshift=9em]pos3.north) -- ([xshift=-0em,yshift=0em]dot1.east); \draw[->,standard] ([xshift=0em]pos3.north) -- ([xshift=0em,yshift=9.6em]pos3.north) -- ([xshift=-0em,yshift=0em]dot1.east);
\draw[->,standard] ([xshift=0em]pos4.north) -- ([xshift=0em,yshift=11.7em]pos4.north) -- ([xshift=-0em,yshift=0em]sa2.east); \draw[->,standard] ([xshift=0em]pos4.north) -- ([xshift=0em,yshift=12.3em]pos4.north) -- ([xshift=-0em,yshift=0em]sa2.east);
\begin{pgfonlayer}{background} \begin{pgfonlayer}{background}
......
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
{0/0/8, 1/0/9, 2/0/10, 3/0/11, 4/0/12, 5/0/13, 6/0/14} {0/0/8, 1/0/9, 2/0/10, 3/0/11, 4/0/12, 5/0/13, 6/0/14}
\node[anchor=north] (n\k) at ([xshift=-0em,yshift=-0.5em]a\i\j.south) {\i}; \node[anchor=north] (n\k) at ([xshift=-0em,yshift=-0.5em]a\i\j.south) {\i};
\node [anchor=east] (l1) at ([xshift=-0.3em,yshift=0em]n8.west) {$i$};
\node [anchor=north] (l2) at ([xshift=0em,yshift=-0em]n7.south) {$j$};
%\node [anchor=north] (n1) at ([xshift=0em,yshift=0em]a00.south west) {}; %\node [anchor=north] (n1) at ([xshift=0em,yshift=0em]a00.south west) {};
\end{scope} \end{scope}
......
...@@ -32,7 +32,9 @@ ...@@ -32,7 +32,9 @@
\begin{spacing}{1.18} \begin{spacing}{1.18}
\parinterval 写点儿什么 。。。 \parinterval 我知道这里本应该再写点儿什么,感慨一下蹉跎岁月,最后致敬所有人。
\parinterval 不过我还是最想说:谢谢你,我的妻子。没有你的支持与照顾,我应该没有勇气来完成这本书。爱你 $\sim$
\hfill 肖桐 \hfill 肖桐
......
...@@ -36,39 +36,43 @@ ...@@ -36,39 +36,43 @@
\parinterval 自计算机诞生,机器翻译,即利用计算机软件技术实现不同语言自动翻译,就是人们首先想到的计算机主要应用。很多人说,人工智能时代是得语言者的天下,并将机器翻译当作认知智能的终极梦想之一。接下来,笔者将分享自己对机器翻译技术和应用的思考,有些想法不一定正确,有些想法也许需要十年或更久才能被验证。 \parinterval 自计算机诞生,机器翻译,即利用计算机软件技术实现不同语言自动翻译,就是人们首先想到的计算机主要应用。很多人说,人工智能时代是得语言者的天下,并将机器翻译当作认知智能的终极梦想之一。接下来,笔者将分享自己对机器翻译技术和应用的思考,有些想法不一定正确,有些想法也许需要十年或更久才能被验证。
\parinterval 简单来说,机器翻译技术至少可以满足三种用户需求。一是实现外文资料辅助阅读,帮助不同母语的人进行无障碍交流;二是通过计算机辅助翻译,帮助人工翻译降本增效;三是通过大数据分析和处理,实现对多语言文字资料(也可以是图像资料或语音资料)的加工处理。仅凭人工,是无法完成海量数据的翻译工作的,而机器翻译是大数据翻译的唯一有效解决方案。从上述三种需求可以看出,机器翻译和人工翻译在本质上不存在冲突,两者可以和谐共存、相互帮助,处于平行轨道上。对机器翻译来说,至少有两个应用场景是其无法独立胜任的。一是对翻译结果的质量要求高的场景,如诗歌、小说的翻译出版;二是不允许出现低级实时翻译错误的场景,如翻译国家领导人讲话,此时出现低级翻译错误可能导致严重后果,甚至国际纠纷。因此,对译文准确性要求很高的应用场景不可能只采用机器翻译,必须有高水平的人工翻译参与。 \parinterval 简单来说,机器翻译技术至少可以满足三种用户需求。一是实现外文资料辅助阅读,帮助不同母语的人进行无障碍交流;二是通过计算机辅助翻译,帮助人工翻译降本增效;三是通过大数据分析和处理,实现对多语言文字资料(也可以是图像资料或语音资料)的加工处理。仅凭人工,是无法完成海量数据的翻译工作的,而机器翻译是大数据翻译的唯一有效解决方案。从上述三种需求可以看出,机器翻译和人工翻译在本质上不存在冲突,两者可以和谐共存、相互帮助,处于平行轨道上。对机器翻译来说,至少有两个应用场景是其无法独立胜任的。一是对翻译结果的质量要求高的场景,如诗歌、小说的翻译出版;二是不允许出现低级实时翻译错误的场景,如国际会议的发言。因此,对译文准确性要求很高的应用场景不可能只采用机器翻译,必须有高水平的人工翻译参与。
\parinterval 如何构建一套好的机器翻译系统呢?假设我们需要为用户提供一套翻译品质不错的机器翻译系统,至少需要考虑三个方面:有足够大规模的双语句对集合用于训练、有强大的机器翻译技术和错误驱动的打磨过程。从技术应用和产业化的角度看,对于构建一套好的机器翻译系统来说,上述三个方面缺一不可。仅拥有强大的机器翻译技术是必要条件,但不是充分条件。 \parinterval 如何构建一套好的机器翻译系统呢?假设我们需要为用户提供一套翻译品质不错的机器翻译系统,至少需要考虑三个方面:有足够大规模的双语句对集合用于训练、有强大的机器翻译技术和错误驱动的打磨过程。从技术应用和产业化的角度看,对于构建一套好的机器翻译系统来说,上述三个方面缺一不可。仅拥有强大的机器翻译技术是必要条件,但不是充分条件。更具体地:
\begin{itemize}
\item 从数据角度来看,大部分语言对的电子化双语句对集合规模非常小,有的甚至只有一个小规模双语词典。因此,针对资源稀缺语种的机器翻译技术研究也成了学术界的研究热点,相信这个课题的突破能大大推动机器翻译技术落地。早些年,机器翻译市场的规模较小,其主要原因是数据规模有限,同时机器翻译的品质不够理想。就算采用最先进的神经机器翻译技术,在缺乏足够大规模的双语句对集合作为训练数据的情况下,研究人员也是巧妇难为无米之炊。从技术研究和应用可行性的角度看,解决资源稀缺语种的机器翻译问题非常有价值。解决资源稀缺语种机器翻译问题的思路,已经在{\chaptersixteen}进行了详细的介绍,本部分就不再赘述。
\parinterval 大部分语言对的电子化双语句对集合规模非常小,有的甚至只有一个小规模双语词典。因此,针对资源稀缺语种的机器翻译技术研究也成了学术界的研究热点,相信这个课题的突破能大大推动机器翻译技术落地。2017 年以前,机器翻译市场的规模很小,主要原因是机器翻译的品质不够好。就算采用最先进的神经机器翻译技术,在缺乏足够大规模的双语句对集合作为训练数据的情况下,研究人员也是巧妇难为无米之炊。从技术研究和应用可行性的角度看,解决资源稀缺语种的机器翻译问题非常有价值。解决资源稀缺语种机器翻译问题的思路,已经在{\chaptersixteen}进行了详细的介绍,本部分就不再赘述 \item 从机器翻译技术来看,可实用的机器翻译系统的构建,需要多技术互补融合。做研究可以搞单点突破,但它很难能应对实际问题和改善真实应用中的翻译品质。多技术互补融合有很多研究工作,比如说,有的业内研究人员提出采用知识图谱来改善机器翻译模型性能,并希望用于解决稀缺资源语种机器翻译问题;有的引入语言分析技术来改善机器翻译;有的将基于规则的方法、统计机器翻译技术与神经机器翻译技术互补性融合;有的引入预训练技术来改善机器翻译品质等等。总体来说,这些思路都具有良好的研究价值,但是从应用角度来说,构建可实用的机器翻译系统,还需要考虑技术落地可行性。比如大规模知识图谱构建的代价和语言分析技术的精度如何,预训练技术对机器翻译帮助的上限等
\parinterval 做研究可以搞单点突破,但从可实用的机器翻译系统构建来说,需要多技术互补融合,来解决实际问题和改善翻译品质。比如说,有的业内研究人员提出采用知识图谱来改善机器翻译模型性能,并希望用于解决稀缺资源语种机器翻译问题;有的引入语言分析技术来改善机器翻译;有的将基于规则的方法、统计机器翻译技术与神经机器翻译技术互补性融合;有的引入预训练技术来改善机器翻译品质等等。总体来说,这些思路都具有良好的研究价值,但是从应用角度来说,构建可实用的机器翻译系统,还需要考虑技术落地可行性。比如大规模知识图谱构建的代价和语言分析技术的精度如何,预训练技术对机器翻译帮助的上限等。 \item 错误驱动,即根据用户对机器翻译译文的反馈与纠正,完善机器翻译模型的过程。机器翻译一直被诟病:用户不知道如何有效地干预纠错,来帮助机器翻译系统越做越好,毕竟谁都不希望它“屡教不改”。基于规则的方法和统计机器翻译方法相对容易实现人工干预纠错,实现手段也比较丰富,而神经机器翻译方法存在不可解释性,难以有效地实现人工干预纠错。目前,有研究人员通过引入外部知识库(用户双语术语库)来实现对未登录词翻译的干预纠错;也有的提出使用增量式训练的方法不断迭代优化模型,取得了一些进展;还有研究人员通过融合不同技术来实现更好的机器翻译效果,如引入基于规则的翻译前处理和后处理,或者引入统计机器翻译技术优化译文选择等。这些方法的代价不低,甚至很高, 并且无法保障对机器翻译性能提升的效果,有时可能会降低翻译品质(有点像“跷跷板”现象)。总体来说,这个方向的研究成果还不够丰富,但对用户体验来说非常重要。如果能采用隐性反馈学习方法,在用户不知不觉中不断改善、优化机器翻译品质,就非常酷了,这也许会成为将来的一个研究热点。
\end{itemize}
\parinterval 通常,我们分别将基于规则的方法、统计机器翻译和神经机器翻译称为第一、第二和第三代机器翻译技术,那么很自然地,人们会问第四代机器翻译技术将如何发展?有人说,第四代机器翻译技术会是基于知识的机器翻译技术;也有人说,是无监督机器翻译技术或者新的机器翻译范式,等等。在讨论第四代机器翻译技术这个问题之前,我们先思考一个问题:在翻译品质上,新一代机器翻译技术是否应该比目前的好?现在的问题是实验结果显示,比如拿商用的英汉汉英新闻机器翻译系统举例,经过几亿双语句对的训练学习,翻译品质人工评价的准确率可以达到80\%-90\%,那我们需要回答的一个简单问题是所谓的第四代机器翻译技术准备在新闻领域翻译达到怎样的准确率呢?只比现在高2\%或3\%个百分点,达到92\%或者93\%这一结果,估计无法获得新一代机器翻译技术这一称谓。 \parinterval 除了翻译品质维度以外,机器翻译还可以从以下三个维度来讨论:语种维度、领域维度和应用模式维度。关于语种维度,机器翻译技术应该为全球用户服务,提供所有国家至少一种官方语言到其他国家语言的自动互译功能。该维度面临的最大问题是双语数据稀缺。关于领域维度,通用领域翻译系统的翻译能力,对于垂直领域数据来说是不足的。最典型的问题是不能恰当地翻译垂直领域术语,计算机不能无中生有。比较直接可行的解决方案至少有两个,一是引入垂直领域术语双语词典来改善机器翻译效果;二是收集加工一定规模的垂直领域双语句对来优化翻译模型。这两种工程方法虽然简单,但效果不错,并且两者结合对于翻译模型性能的提升帮助更大。但很多时候垂直领域双语句对的收集代价太高,可行性低,因此垂直领域翻译问题本质上就转换成为垂直领域资源稀缺问题和领域自适应学习问题。除此之外,小样本学习、迁移学习和联合学习等机器学习技术也被一些研究人员用来解决垂直领域翻译问题。关于应用模式维度,可以从下面几个方面进行讨论:
\begin{itemize}
\item 通常,机器翻译的典型应用包括在线翻译公有云服务,用户接入非常简单,只需要联网使用浏览器就可以自由免费使用。在某些行业,用户对数据翻译安全性和保密性的要求非常高,其中可能还会涉及个性化定制,这是在线翻译公有云服务无法满足的,于是,在本地部署机器翻译私有云、离线机器翻译技术和服务成了新的应用模式。在本地部署私有云的问题在于:需要用户自己购买 GPU 服务器并建机房,对硬件的投入高。也许将来机器翻译领域会出现新的应用模式:类似服务托管模式的在线私有云或专有云,以及混合云服务(公有云、私有云和专有云的混合体)。
\parinterval 从历史发展观的维度考虑,新一代的技术必然存在,换句话说,第四代机器翻译技术一定会出现,只是不知道在什么时候而已。神经机器翻译的红利还没有被挖尽,还存在很好的发展空间,在可预期的将来,神经机器翻译技术还属于主流技术,但会产生大量变种。我们愿意把新一代机器翻译技术称为面向具体应用场景的第四代机器翻译技术,它在本质上是针对不同应用条件、不同应用场景提出的能力更强的机器翻译技术。它将不是一个简单的技术,而是一个技术集合,这是完全可能的 \item 离线机器翻译技术可以为更小型的智能翻译终端设备提供服务,如大家熟知的翻译机、翻译笔、翻译耳机等智能翻译设备。在不联网的情况下,这些设备能实现高品质机器翻译功能,这类应用模式具有很大的潜力。但这类应用模式需要解决的问题也很多:首先是模型大小、翻译速度和翻译品质的问题;其次,考虑不同操作系统(如Linux、Android Q 和iOS)和不同架构(如x86、MIPS、ARM 等)的CPU 芯片的智能适配兼容问题。将来,离线翻译系统还可以通过芯片安装到办公设备上,如传真机、打印机和复印机等,辅助人们实现支持多语言的智能办公。目前,人工智能芯片发展的速度非常快,而机器翻译芯片研发面临的最大问题是缺少应用场景和上下游的应用支撑,一旦时机成熟,机器翻译芯片的研发和应用也有可能会爆发
\parinterval 近几年,神经机器翻译技术大大提升了翻译品质,推动了机器翻译产业化的快速发展。与其他深度学习技术应用一样,缺乏可解释性成了神经机器翻译被攻击的点。先举个简单的例子:法庭上,法官判决犯罪嫌疑人罪名成立的同时,会说明是以哪条法律法规为依据,而不会只给出有罪或无罪的结果。从判决过程看,这些依据就是判决结果的解释。如果审判时采用深度学习技术,则只能给出有罪或无罪的结果,不能提供任何依据,不能解释,犯罪嫌疑人肯定不服。 \item 机器翻译可以与文档解析、语音识别、光学字符识别(OCR)和视频字幕提取等技术相结合,丰富机器翻译的应用模式。具体的:
\begin{itemize}
\item 文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS 文档翻译、邮件翻译等更多格式文档自动翻译的目标,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。
\parinterval 从上述例子可以得出一个问题,机器翻译所需要的可解释性的内涵到底是结论推理的计算过程还是结论推理的以理服人呢?前者面向结论推理过程(how),后者面向结论可理解性(why)。目前学术界有一些相关研究,比如,分析神经机器翻译模型中注意力机制的可视化软对齐结果等。有一点是肯定的,我们希望研究神经机器翻译技术的可解释性,目的是“纠错”,也可以有利于人工干预机制等。只有通过研究可解释性,搞清楚翻译错误的原因,找到解决方案来完善机器翻译模型,才是研究神经机器翻译技术可解释性的目的所在 \item 语音识别与机器翻译是绝配,语音翻译用途广泛,比如翻译机、语音翻译APP和会议AI同传应用。但目前最大的问题主要体现在两个方面,一是很多实际应用场景中语音识别效果欠佳,造成错误蔓延,导致机器翻译结果不够理想;二是就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好
\parinterval 除了翻译品质维度以外,机器翻译技术应用还可以从以下三个维度来讨论:语种维度、领域维度和应用模式维度。关于语种维度,机器翻译技术应该为全球用户服务,提供所有国家至少一种官方语言到其他国家语言的自动互译功能。该维度面临的最大问题是双语数据稀缺,上述已经讨论了这个问题。关于领域维度,通用领域翻译系统的翻译能力,对于垂直领域数据来说是不足的。最典型的问题是不能恰当地翻译垂直领域术语,计算机不能无中生有。比较直接可行的解决方案至少有两个,一是引入垂直领域术语双语词典来改善机器翻译效果;二是收集加工一定规模的垂直领域双语句对来优化翻译模型。这两种工程方法虽然简单,但效果不错,并且两者结合对于翻译模型性能的提升帮助更大。但很多时候垂直领域双语句对的收集代价太高,可行性低,因此垂直领域翻译问题本质上就转换成为垂直领域资源稀缺问题和领域自适应学习问题。除此之外,小样本学习、迁移学习和联合学习等机器学习技术也被一些研究人员用来解决垂直领域翻译问题。 \item OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
\end{itemize}
上面提到的机器翻译技术大多采用串行流水线,只是简单将两个或者多个不同的技术连接在一起,比如语音翻译过程可以分两步:语音识别和机器翻译。其它翻译模式也大同小异。简单的串行流水线技术框架的最大问题是错误蔓延,一旦某个技术环节的准确率不高,最后的结果就不会太好($90\% \times 90\%=81\% $)。并且,后续的技术环节不一定有能力纠正前面技术环节引入的错误,最终导致用户体验不够好。很多人认为,英中AI会议同传用户体验不够好,问题出在机器翻译技术上。其实,问题主要出在语音识别环节。学术界正在研究的端到端的机器翻译技术,不是采用串行流水线技术架构,而是采用一步到位的方式,这理论上能够缓解错误蔓延的问题,但目前的效果还不够理想,期待学术界取得新的突破。
\parinterval 接下来,讨论机器翻译应用模式的软件、硬件环境。通常,机器翻译的典型应用包括在线翻译公有云服务,用户接入非常简单,只需要联网使用浏览器就可以自由免费使用。在某些行业,用户对数据翻译安全性和保密性的要求非常高,其中可能还会涉及个性化定制,这是在线翻译公有云服务无法满足的,于是,在本地部署机器翻译私有云、离线机器翻译技术和服务成了新的应用模式。在本地部署私有云的问题在于:需要用户自己购买 GPU 服务器并建机房,对硬件的投入高。也许将来机器翻译领域会出现新的应用模式:类似服务托管模式的在线私有云或专有云,以及混合云服务(公有云、私有云和专有云的混合体)。 \item 机器翻译技术可以辅助人工翻译。即使双语句对训练集合规模已经非常大、机器翻译技术也在不断优化,但机器翻译的结果仍然不可能完美,出现译文错误是难免的。如果我们想利用机器翻译技术辅助人工翻译,比较常见的方式是译后编辑,即由人对自动译文进行修改(详见{\chapterfour})。这就很自然地产生了两个实际问题:第一个问题是,自动译文是否具有编辑价值?一个简便的计算方法就是编辑距离,即人工需要通过多少次增、删、改动作完成译后编辑。其次数越少,说明机器翻译对人工翻译的帮助越大。编辑距离本质上是一种译文质量评价的方法,可以考虑推荐具有较高译后编辑价值的自动译文给人工译员。第二个问题是,当机器翻译出现错误,且被人工译后编辑修正后,能否通过一种有效的错误反馈机制帮助机器翻译系统提高性能。学术界也有很多人研究这个问题,目前还没有取得令人满意的结果。除此之外,还有一些问题,如人机交互的用户体验,该需求很自然地带起了交互式机器翻译技术(详见{\chaptereighteen})研究的热潮,希望在最大程度上发挥人机协同合作的效果,这个也是值得研究的课题。
\end{itemize}
\parinterval 离线机器翻译技术可以为更小型的智能翻译终端设备提供服务,如大家熟知的翻译机、翻译笔、翻译耳机等智能翻译设备。在不联网的情况下,这些设备能实现高品质机器翻译功能,这类应用模式具有很大的潜力。但这类应用模式需要解决的问题也很多:首先是模型大小、翻译速度和翻译品质的问题;其次,考虑不同操作系统(如Linux、Android Q 和iOS)和不同架构(如x86、MIPS、ARM 等)的CPU 芯片的智能适配兼容问题。将来,离线翻译系统还可以安装到办公设备上,如传真机、打印机和复印机等,辅助人们实现支持多语言的智能办公。目前,人工智能芯片发展的速度非常快,而机器翻译芯片研发面临的最大问题是缺少应用场景和上下游的应用支撑,一旦时机成熟,机器翻译芯片的研发和应用也有可能会爆发 \parinterval 接下来,简单谈谈笔者对第四代机器翻译技术发展趋势的看法。通常,我们分别将基于规则的方法、统计机器翻译和神经机器翻译称为第一、第二和第三代机器翻译技术。有人说,第四代机器翻译技术会是基于知识的机器翻译技术;也有人说,是无监督机器翻译技术或者新的机器翻译范式,等等。在讨论第四代机器翻译技术这个问题之前,我们先思考一个问题:在翻译品质上,新一代机器翻译技术是否应该比目前的好?现在的实验结果显示,比如拿商用的英汉汉英新闻机器翻译系统举例,经过几亿双语句对的训练学习,机器翻译译文准确率的人工评估得分可以达到$80\%-90\%$$100\%$为满分,值越高说明译文准确率越高),那我们需要回答的一个简单问题是:所谓的第四代机器翻译技术准备在新闻领域翻译达到怎样的准确率呢?只比现在高$2$$3$个百分点,达到$92\%$或者$93\%$这一结果,估计无法获得新一代机器翻译技术这一称谓
\parinterval 机器翻译可以与文档解析、语音识别、{\small\bfnew{光学字符识别}}\index{光学字符识别}(Optical Character Recognition,OCR)\index{Optical Character Recognition} 和视频字幕提取等技术相结合,丰富机器翻译的应用模式。其中文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS 文档翻译、邮件翻译等更多格式文档自动翻译的目标,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。语音识别与机器翻译是绝配,语音翻译用途广泛,比如翻译机、语音翻译APP和会议AI同传应用。但目前最大的问题主要体现在两个方面,一是很多实际应用场景中语音识别效果欠佳,造成错误蔓延,导致机器翻译结果不够理想;二是就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好。OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用 \parinterval 从历史发展观的维度考虑,新一代的技术必然存在,换句话说,第四代机器翻译技术一定会出现,只是不知道在什么时候而已。神经机器翻译的红利还没有被挖尽,还存在很好的发展空间,在可预期的将来,神经机器翻译技术还属于主流技术,但会产生大量变种。我们愿意把新一代机器翻译技术称为面向具体应用场景的第四代机器翻译技术,它在本质上是针对不同应用条件、不同应用场景提出的能力更强的机器翻译技术。它将不是一个简单的技术,而是一个技术集合,这是完全可能的。从另一方面讲,当前的机器翻译不具有很好的解释性,其与语言学的关系并不明确。那么在第四代机器翻译技术中,是否能让研究人员或使用者更方便地了解它的工作原理,并可以根据其原理对其进行干预。甚至,我们还可以研究更合理的面向机器翻译解释性的方法,笔者相信这也是未来需要突破的点
\parinterval 上面提到的机器翻译技术大多采用串行流水线,只是简单将两个或者多个不同的技术连接在一起,比如语音翻译过程可以分两步::语音识别和机器翻译。其它翻译模式也大同小异。简单的串行流水线技术框架的最大问题是错误蔓延,一旦某个技术环节的准确率不高,最后的结果就不会太好(90\%$\times$90\%=81\%)。并且,后续的技术环节不一定有能力纠正前面技术环节引入的错误,最终导致用户体验不够好。很多人认为,英中AI会议同传用户体验不够好,问题出在机器翻译技术上。其实,问题主要出在语音识别环节。学术界正在研究的端到端的机器翻译技术,不是采用串行流水线技术架构,而是采用一步到位的方式,这理论上能够缓解错误蔓延的问题,但目前的效果还不够理想,期待学术界取得新的突破。 \parinterval 最后,简单谈谈笔者对机器翻译市场发展趋势的看法。机器翻译本身是个强刚需,用于解决全球用户多语言交流障碍的问题。机器翻译产业真正热起来,应该归功于神经机器翻译技术的应用,虽然基于规则的方法和统计机器翻译技术也在工业界得到了应用,但翻译品质没有达到用户预期,用户付费欲望比较差,没有良好的商业变 现能力,导致机器翻译产业在 2017 年以前类似于“鸡肋”产业。严格来说,从2016 年下半年开始,神经机器翻译技术在工业界的广泛应用快速激活了用户需求,用户对机器翻译的认可度急剧上升,越来越丰富的应用模式和需求被挖掘出来。除了传统计算机辅助翻译,语音和OCR 与机器翻译技术结合,使得语音翻译 APP、翻译机、翻译笔、会议AI 同传和垂直行业(专利、医药、旅游等)的机器翻译解决方案逐渐得到了广泛应用。总体来说,机器翻译产学研正处于快速上升期,每年市场规模达到至少$100\% $增长。随着多模态机器翻译和大数据翻译技术的应用,机器翻译的应用场景会越来越丰富。随着5G ,甚至 6G 技术的发展,视频翻译和电话通信翻译等应用会进一步爆发。另外,随着人工智能芯片领域的发展,机器翻译芯片也会逐渐被广泛应用,如嵌入到手机、打印机、复印机、传真机和电视机等智能终端设备中,实现所有内容皆可翻译,任何场景皆可运行的愿景。机器翻译服务将进入人们的日常生活,无处不在,让生活更加美好!\\
\parinterval 即使双语句对训练集合规模已经非常大、机器翻译技术也在不断优化,但机器翻译的结果仍然不可能完美,出现译文错误是难免的。如果我们想利用机器翻译技术辅助人工翻译,比较常见的方式是译后编辑,即由人对自动译文进行修改。这就很自然地产生了两个实际问题:第一个问题是,自动译文是否具有编辑价值?一个简便的计算方法就是编辑距离,即人工需要通过多少次增、删、改动作完成译后编辑。其次数越少,说明机器翻译对人工翻译的帮助越大。编辑距离本质上是一种译文质量评价的方法,可以考虑推荐具有较高译后编辑价值的自动译文给人工译员。第二个问题是,当机器翻译出现错误,且被人工译后编辑修正后,能否通过一种有效的错误反馈机制帮助机器翻译系统提高性能。学术界也有很多人研究这个问题,目前还没有取得令人满意的结果。除此之外,还有一些问题,如人机交互的用户体验,该需求很自然地带起了交互式机器翻译技术研究的热潮,希望在最大程度上发挥人机协同合作的效果,这个也是值得研究的课题。 \hfill 朱靖波 \ \ 肖桐
\parinterval 机器翻译一直被诟病:用户不知道如何有效地干预纠错,来帮助机器翻译系统越做越好,毕竟谁都不希望它“屡教不改”。基于规则的方法和统计机器翻译方法相对容易实现人工干预纠错,实现手段也比较丰富,而神经机器翻译方法存在不可解释性,难以有效地实现人工干预纠错。目前,有研究人员通过引入外部知识库(用户双语术语库)来实现对未登录词翻译的干预纠错;也有的提出使用增量式训练的方法不断迭代优化模型,也取得了一些进展;还有研究人员通过融合不同技术来实现更好的机器翻译效果,如引入基于规则的翻译前处理和后处理,或者引入统计机器翻译技术优化译文选择等。这些方法的代价不低,甚至很高, 并且无法保障对机器翻译性能提升的效果,有时可能会降低翻译品质(有点像“跷跷板”现象)。总体来说,这个方向的研究成果还不够丰富,但对用户体验来说非常重要。如果能采用隐性反馈学习方法,在用户不知不觉中不断改善、优化机器翻译品质,就非常酷了,这也许会成为将来的一个研究热点。
\parinterval 最后,简单谈谈笔者对机器翻译市场发展趋势的看法。机器翻译本身是个强刚需,用于解决全球用户多语言交流障碍的问题。机器翻译产业真正热起来,应该归功于神经机器翻译技术的应用,虽然基于规则的方法和统计机器翻译技术也在工业界得到了应用,但翻译品质没有达到用户预期,用户付费欲望比较差,没有良好的商业变 现能力,导致机器翻译产业在 2017 年以前类似于“鸡肋”产业。严格来说,从2016 年下半年开始,神经机器翻译技术在工业界的广泛应用快速激活了用户需求,用户对机器翻译的认可度急剧上升,越来越丰富的应用模式和需求被挖掘出来。除了传统计算机辅助翻译,语音和OCR 与机器翻译技术结合,使得语音翻译 APP、翻译机、翻译笔、会议AI 同传和垂直行业(专利、医药、旅游等)的机器翻译解决方案逐渐得到了广泛应用。总体来说,机器翻译产学研正处于快速上升期,每年市场规模达到至少100\% 增长。随着多模态机器翻译和大数据翻译技术的应用,机器翻译的应用场景会越来越丰富。随着5G ,甚至 6G 技术的发展,视频翻译和电话通信翻译等应用会进一步爆发。另外,随着人工智能芯片领域的发展,机器翻译芯片也会逐渐被广泛应用,如嵌入到手机、打印机、复印机、传真机和电视机等智能终端设备中,实现所有内容皆可翻译,任何场景皆可运行的愿景。机器翻译服务将进入人们的日常生活,无处不在,让生活更加美好!\\
\hfill 朱靖波
\hfill 2020.12.16 \hfill 2020.12.16
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论