% !Mode:: "TeX:UTF-8" % !TEX encoding = UTF-8 Unicode \def\CTeXPreproc{Created by ctex v0.2.13, don't edit!} \documentclass[cjk,t,compress,12pt]{beamer} \usepackage{pstricks} \usepackage{etex} \usepackage{eso-pic,graphicx} \usepackage{fancybox} \usepackage{amsmath,amssymb} \usepackage{setspace} \usepackage{xcolor} \usepackage{array,multirow} \usepackage{CJK} \usepackage{tikz} \usepackage{tikz-qtree} \usepackage{hyperref} \usepackage{changepage} \usepackage{pgfplots} \usepackage{subfigure} \usepackage{tikz-3dplot} \usepackage{esvect} \usepackage{CJKulem} \usepackage{booktabs} \usepackage{amsmath} \usepackage{tcolorbox} \tcbuselibrary{skins} \usetikzlibrary{calc,intersections} \usetikzlibrary{matrix} \usetikzlibrary{patterns} \usetikzlibrary{arrows,decorations.pathreplacing} \usetikzlibrary{shadows} \usetikzlibrary{shadows.blur} \usepgflibrary{arrows} \usetikzlibrary{arrows} \usetikzlibrary{decorations} \usetikzlibrary{arrows,shapes} \usetikzlibrary{positioning,fit,calc} \usetikzlibrary{mindmap,backgrounds} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min} \setbeamertemplate{items}[ball] \usefonttheme[onlymath]{serif} \definecolor{ugreen}{rgb}{0,0.5,0} \definecolor{lgreen}{rgb}{0.9,1,0.8} \definecolor{xtgreen1}{rgb}{0.824,0.898,0.8} \definecolor{xtgreen}{rgb}{0.914,0.945,0.902} \definecolor{lightgray}{gray}{0.85} \setbeamercolor{uppercol}{fg=white,bg=ugreen} \setbeamercolor{lowercol}{fg=black,bg=xtgreen} \definecolor{ublue}{rgb}{0.152,0.250,0.545} \setbeamercolor{uppercolblue}{fg=white,bg=ublue} \setbeamercolor{lowercolblue}{fg=black,bg=blue!10} %\usetheme{default} %\usetheme{Darmstadt} %\usetheme{Madrid} %\usetheme{Frankfurt} %\usetheme{Dresden} %\usetheme{Boadilla} %\usecolortheme{dolphin} % not compatible with [scale=?] \newdimen\XCoord \newdimen\YCoord \newdimen\TMP \newcommand*{\ExtractCoordinate}[1]{\path (#1); \pgfgetlastxy{\XCoord}{\YCoord};}% \newcommand*{\ExtractX}[1]{\path (#1); \pgfgetlastxy{\XCoord}{\TMP};}% \newcommand*{\ExtractY}[1]{\path (#1); \pgfgetlastxy{\TMP}{\YCoord};}% \newcommand{\specialcell}[3][c]{% \begin{tabular}[#1]{@{}#2@{}}#3\end{tabular}} \newcounter{mycount1} \newcounter{mycount2} \newcounter{mycount3} \newcounter{mycount4} \newlength{\mystep} \newlength{\base} \newlength{\wseg} \newlength{\hseg} \newlength{\wnode} \newlength{\hnode} \usefonttheme[onlylarge]{structurebold} \IfFileExists{C:/WINDOWS/win.ini} {\newcommand{\mycfont}{you}} {\newcommand{\mycfont}{gbsn}} \begin{CJK}{UTF8}{\mycfont} \end{CJK} \setbeamerfont*{frametitle}{size=\large,series=\bfseries} \setbeamertemplate{navigation symbols}{\begin{CJK}{UTF8}{\mycfont} 第六章 神经机器翻译 \hspace*{2em} 肖桐\&朱靖波 \end{CJK} \hspace*{2em} \today \hspace*{2em} \insertframenumber{}/\inserttotalframenumber} \setbeamertemplate{itemize items}[circle] % if you want a circle \setbeamertemplate{itemize subitem}[triangle] % if you wnat a triangle \setbeamertemplate{itemize subsubitem}[ball] % if you want a ball \begin{document} \begin{CJK}{UTF8}{\mycfont} \title{\Large{神经机器翻译实战 - 参加一次比赛}} \author{\large{\textbf{肖桐\ \ 朱靖波}}} \institute{ \blue{\url{xiaotong@mail.neu.edu.cn}} \black{} \\ \blue{\url{zhujingbo@mail.neu.edu.cn}} \black{} \\ \vspace{1.0em} 东北大学 自然语言处理实验室 \\ \blue{\underline{\url{http://www.nlplab.com}}} \black{} \\ \vspace{0.2cm} \hspace{0.1cm} \includegraphics[scale=0.1]{../Figures/logo.pdf} } \date{} \maketitle \setlength{\leftmargini}{1em} \setlength{\leftmarginii}{1em} %%%------------------------------------------------------------------------------------------------------------ \section{神经机器翻译并不简单} %%%------------------------------------------------------------------------------------------------------------ %%% 如何入门? \begin{frame}{小白入门(神经)机器翻译} \begin{itemize} \item 一个小白入门神经机器翻译的经历 \begin{center} \begin{tikzpicture} \draw [very thick,->] (-2em,0) -- (21em,0); \visible<2->{ \node [anchor=south] (xiaobai) at (-2em,0.3em) {\footnotesize{\textbf{小白}}}; \node [anchor=south] (xiaobaibai) at (21em,0.3em) {\footnotesize{\textbf{小白白}}}; } \node [circle,fill=ublue,minimum size=0.4em,inner sep=0] (point1) at (1em,0) {}; \node [anchor=north,text width=6em,align=left] (box1) at ([yshift=-1em]point1.south) {\scriptsize{我喜欢NLP和MT,尝试下}}; \node [circle,fill=ublue,minimum size=0.4em,inner sep=0] (point2) at (6em,0) {}; \node [anchor=south,text width=6em,align=left] (box2) at ([yshift=1em]point2.north) {\scriptsize{上网看视频,找博客,阅读一些书籍}}; \node [circle,fill=ublue,minimum size=0.4em,inner sep=0] (point3) at (11em,0) {}; \node [anchor=north,text width=6em,align=left] (box3) at ([yshift=-1em]point3.south) {\scriptsize{学各种深度学习开源框架,阅读开源NMT系统代码}}; \node [circle,fill=ublue,minimum size=0.4em,inner sep=0] (point4) at (16em,0) {}; \node [anchor=south,text width=8em,align=left] (box4) at ([yshift=1em]point4.north) {\scriptsize{找一些数据,跑一下系统,有结果!耶!}}; \end{tikzpicture} \end{center} \item<3-> 小白白还想成为大白,甚至大白白、大大白,还是使用同样的套路。\visible<4->{\alert{但是},只是变得更白了,离大白还很远!} \begin{center} \begin{tikzpicture} \draw [very thick,->] (-2em,0) -- (21em,0); \visible<4->{ \node [anchor=south] (xiaobai) at (-2em,0.3em) {\footnotesize{\textbf{小白白}}}; \node [anchor=south] (xiaobaibai) at (21em,0.3em) {\footnotesize{\textbf{小白白白}}}; } \node [anchor=north,align=center] (box1) at (9em,-0.5em) {\footnotesize{(博客、书、实验)$\times 10$}}; \end{tikzpicture} \end{center} \end{itemize} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 为什么成为机器翻译高手还很难 \begin{frame}{为什么小白没成为高手?} \begin{itemize} \item 实力表 \begin{center} \begin{tikzpicture} \draw [very thick,->] (0em,0) -- (20em,0); \node [anchor=south,minimum width=2em,minimum height=0.6em,fill=red!20] (player1) at (2em,0.05em) {}; \node [anchor=north] (label1) at (player1.south) {\scriptsize{小白}}; \node [anchor=south,minimum width=2em,minimum height=0.9em,fill=red!20] (player2) at (5em,0.05em) {}; \node [anchor=north] (label2) at (player2.south) {\scriptsize{小白白}}; \node [anchor=south,minimum width=2em,minimum height=1.0em,fill=red!20] (player3) at (8em,0.05em) {}; \node [anchor=north] (label3) at (player3.south) {\scriptsize{小白白白}}; \visible<2->{ \node [anchor=south,minimum width=2em,minimum height=3em,fill=blue!20] (player4) at (12em,0.05em) {}; \node [anchor=north] (label4) at (player4.south) {\scriptsize{大白}}; } \visible<3->{ \node [anchor=south,minimum width=2em,minimum height=6em,fill=green!20] (player5) at (16em,0.05em) {}; \node [anchor=north] (label5) at (player5.south) {\scriptsize{超级赛亚人}}; } \end{tikzpicture} \end{center} \item<4-> 搞了半天,还是个入门选手,当遇到很多问题时还是无从下手 \begin{itemize} \item 论文写不出来,没有idea \item 实验一弄就不好使,性能就是不涨 \item 自己搭的系统还很挫,离谷歌翻译还很遥远 \end{itemize} \item<5-> 原因很简单:我们使用的系统还很初级,离state-of-the-art有距离,导致视野也会受限。\\ - 怎么办?\alert{参加一次比赛吧} \end{itemize} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 影响机器翻译系统性能的因素 \begin{frame}{Towards State-of-the-Art} \begin{itemize} \item 注意,机器翻译终究是面向应用的研究领域。因此,研发高性能的系统是我们追求的目标。一般来说,影响机器翻译系统性能有几个因素 \begin{enumerate} \item \textbf{数据}:大规模、高质量的数据是前提 \item \textbf{技术}:算法和模型要足够先进 \item \textbf{打磨}:需要对各个模块进行细致的打磨,说白了,下功夫不到有数据和技术也是白搭 \end{enumerate} \vspace{0.5em} \item<2-> 参加一次机器翻译的评测比赛是实现上述目标的一个很好的方法,比如,WMT News Translation Track \begin{enumerate} \item 评测提供数据,规模和质量都能保证,因此可以在相对公平的数据基础上进行技术对比 \item 评测系统都会有技术报告,因此可以相对容易的复现以前的结果,而且很容易了解最新的动态 \item 评测本身就是驱动力(大家都希望取得好成绩),因此会不断打磨细节 \end{enumerate} \end{itemize} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 参加比赛的流程 \begin{frame}{基本流程} \begin{itemize} \item 机器翻译比赛现在已经非常友好了(如WMT、CCMT等),有些比赛甚至都不需要提前报名,注册个账户就可以刷榜 \begin{enumerate} \item 从官方网站了解比赛计划 \item 发放训练数据 \item 数据初级及加工 \item 选型,搭建第一个初级版本 \item 和自己较劲(如果能够对比以前的参赛系统就更好了),改进系统,尝试各种技术 \item 发放测试数据,运行系统提交最终结果 \item 公布结果 \item 撰写评测报告 \item 参加评测研讨会,学习交流 \end{enumerate} \item<2-> 当然,这里并不是要描述整个机器翻译的流程。我们重点还是关注有哪些技术可以使神经机器翻译变得更强,为相关研究提供\alert{合理的基线系统} \end{itemize} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 选型 \begin{frame}{必要的准备 - 选型} \begin{itemize} \item 这里我们以WMT、CCMT的汉英新闻翻译任务为例,介绍如何搭建一套性能更加强劲的神经机器翻译系统 \begin{itemize} \item 翻译品质为评价指标(如BLEU),翻译速度等暂不考虑 \item 假设设备是充分的 \item 假设开发系统和模型训练时间也是充分的 \end{itemize} \item<2-> 面临的一个问题是选择什么样的系统架构。当然,这个问题可以边做表调整,不过这里我们选择Transformer作为基本框架(见第六章)。因为, \begin{itemize} \item Transformer已经被证明是当今性能最好的NMT模型之一 \item 在WMT2019和CCMT2019的评测中,Transformer已经成为了各个参赛队伍的标配 \item Transformer是很多benchmark上的优胜者 \end{itemize} \item<3-> 当然,后面讨论的内容绝大多数与神经机器翻译架构无关,这些可以被推广到其它类型的系统上 \begin{itemize} \item \textbf{基础技术}:确保可以得到一个不太差的系统 \item \textbf{进阶技术}:接近甚至达到State-of-the-art \end{itemize} \end{itemize} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 本章的内容 \begin{frame}{Outline} \begin{tcolorbox}[enhanced,size=normal,left=2mm,right=1mm,colback=red!5!white,colframe=red!75!black,drop fuzzy shadow] {\normalsize \textbf{基础技术} \vspace{-0.2em}\\ \small{1. 数据处理} \vspace{-0.2em}\\ \small{2. 翻译单元切分} \vspace{-0.2em}\\ \small{3. 正则化} \vspace{-0.2em}\\ \small{4. 多模型集成} \vspace{-0.2em}\\ \small{5. 自左向右解码 vs. 自右向左解码} \vspace{-0.2em}\\ \small{6. 翻译长度控制} \vspace{-0.2em}\\ \small{7. 大模型和大批量训练} } \end{tcolorbox} \vspace{0em} \begin{tcolorbox}[enhanced,size=normal,left=2mm,right=1mm,colback=red!5!white,colframe=red!75!black,drop fuzzy shadow] {\normalsize \textbf{进阶技术} \vspace{-0.2em}\\ \small{1. 深层模型} \vspace{-0.2em}\\ \small{2. 单语数据的使用} \vspace{-0.2em}\\ \small{3. 知识精炼} \vspace{-0.2em}\\ \small{4. 双向训练} \vspace{-0.2em}\\ \small{5. 统计机器翻译的使用} } \end{tcolorbox} \end{frame} %%%------------------------------------------------------------------------------------------------------------ \section{基础技术} %%%------------------------------------------------------------------------------------------------------------ %%% 数据处理(也可以提一下不同blue脚本对tokenization的要求) \begin{frame}{数据筛选、过滤} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 翻译单元切分 \begin{frame}{BPE} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 正则化(dropout、label smoothing) \begin{frame}{dropout} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 正则化(dropout、label smoothing) \begin{frame}{label smoothing} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 多模型集成(如何生成多样的模型、如何集成) \begin{frame}{ensemble} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 自左向右解码 vs. 自右向左解码 \begin{frame}{L2R} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 自左向右解码 vs. 自右向左解码 \begin{frame}{R2L} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 翻译长度控制 \begin{frame}{翻译长度控制} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 大模型和大批量训练 \begin{frame}{大模型和大批量训练} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 实验分析 \begin{frame}{实验分析} \end{frame} %%%------------------------------------------------------------------------------------------------------------ \section{进阶技术} %%%------------------------------------------------------------------------------------------------------------ %%% 深层模型 \begin{frame}{深层模型} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 单语数据的使用(反向翻译、预训练) \begin{frame}{反向翻译} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 知识精炼 \begin{frame}{知识精炼} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 双向训练 \begin{frame}{双向训练} \end{frame} %%%------------------------------------------------------------------------------------------------------------ %%% 统计机器翻译的使用 \begin{frame}{统计机器翻译的使用} \end{frame} %%%------------------------------------------------------------------------------------------------------------ \section{小结及深入阅读} \end{CJK} \end{document}