figure-difference-between-word-level-and-sequence-level-in-knowledge-distillation.tex 12.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
\begin{tikzpicture}[scale=1]
\tikzstyle{prob} = [rectangle,fill=blue!40,text=white,inner sep=0pt,font=\scriptsize];
\tikzstyle{word} = [inner sep=0pt,font=\small];             
\begin{scope}[]
                    % Column 1
                    \node [prob,minimum size=0.1cm] (prob11) at (0,0) {};
                    \node [prob,minimum size=0.5cm,anchor=center] (prob21) at ([yshift=-0.5cm]prob11.center) {$.7$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob31) at ([yshift=-0.5cm]prob21.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob41) at ([yshift=-0.5cm]prob31.center) {};
                    \node [prob,minimum size=0.3cm,anchor=center] (prob51) at ([yshift=-0.5cm]prob41.center) {$.2$};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob51.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob11.center);
                        \node [draw,fit=(prob11) (prob21) (prob31) (prob41) (prob51) (topright) (bottomleft)] (prob1) {};
                    \end{pgfonlayer}
                    
                    % Column 2
                    \node [prob,minimum size=0.1cm,anchor=center] (prob12) at ([xshift=1cm]prob11.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob22) at ([yshift=-0.5cm]prob12.center) {};
                    \node [prob,minimum size=0.4cm,anchor=center] (prob32) at ([yshift=-0.5cm]prob22.center) {$.4$};
                    \node [prob,minimum size=0.3cm,anchor=center] (prob42) at ([yshift=-0.5cm]prob32.center) {$.3$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob52) at ([yshift=-0.5cm]prob42.center) {};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob52.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob12.center);
                        \node [draw,fit=(prob12) (prob22) (prob32) (prob42) (prob52) (topright) (bottomleft)] (prob2) {};
                    \end{pgfonlayer}
                    
                    % Column 3
                    \node [prob,minimum size=0.1cm,anchor=center] (prob13) at ([xshift=1cm]prob12.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob23) at ([yshift=-0.5cm]prob13.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob33) at ([yshift=-0.5cm]prob23.center) {};
                    \node [prob,minimum size=0.4cm,anchor=center] (prob43) at ([yshift=-0.5cm]prob33.center) {$.6$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob53) at ([yshift=-0.5cm]prob43.center) {};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob53.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob13.center);
                        \node [draw,fit=(prob13) (prob23) (prob33) (prob43) (prob53) (topright) (bottomleft)] (prob3) {};
                    \end{pgfonlayer}
                    
                    % Column 4
                    \node [prob,minimum size=0.5cm,anchor=center] (prob14) at ([xshift=1cm]prob13.center) {$.8$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob24) at ([yshift=-0.5cm]prob14.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob34) at ([yshift=-0.5cm]prob24.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob44) at ([yshift=-0.5cm]prob34.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob54) at ([yshift=-0.5cm]prob44.center) {};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob54.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob14.center);
                        \node [draw,fit=(prob14) (prob24) (prob34) (prob44) (prob54) (topright) (bottomleft)] (prob4) {};
                    \end{pgfonlayer}

                    % Label
                    \draw [decorate,decoration={brace}] ([yshift=0.1cm]prob1.north west) to node [midway,above,font=\small] {学习目标(Teacher输出)} ([yshift=0.1cm]prob4.north east);
                
                    % Vocab
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob11.center) {EOS};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob21.center) {I};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob31.center) {am};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob41.center) {fine};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob51.center) {good};
                
                    \draw [decorate,decoration={brace,mirror}] ([xshift=-1cm]prob1.north west) to node [midway,left,font=\small,align=center] {\\} ([xshift=-1cm]prob1.south west);
                
                    % Model
                    \coordinate (bottomleft) at ([yshift=-1cm]prob1.south west);
                    \coordinate (topright) at ([yshift=-0.5cm]prob4.south east);
                    \node [draw,rounded corners=3pt,fill=green!20,inner sep=0pt,fit=(bottomleft) (topright)] (model) {};
                    \node [word] () at (model.center) {Student};
                
                    \foreach \i in {1,2,...,4}
                        \draw [-latex,thick] (prob\i.south) to ([yshift=-0.5cm]prob\i.south);
                
                    % Input
                    \node [word,anchor=south] (input1) at ([yshift=-1.8cm]prob1.south) {EOS};
                    \node [word,anchor=south] (input2) at ([yshift=-1.8cm]prob2.south) {I};
                    \node [word,anchor=south] (input3) at ([yshift=-1.8cm]prob3.south) {am};
                    \node [word,anchor=south] (input4) at ([yshift=-1.8cm]prob4.south) {fine};
                
                    \foreach \i in {1,2,...,4}
                        \draw [-latex,thick] ([yshift=0.3cm]input\i.south) to ([yshift=0.8cm]input\i.south);

                    \node [word,anchor=south] (ns) at ([xshift=-1cm]input1.south) {输入:};
\node [word,anchor=north] () at ([xshift=2.1cm,yshift=-0.5cm]ns.south) {(a)\ Word-level};
\end{scope}
               
\begin{scope}[xshift=2.5in]
                    % Column 1
                    \node [prob,minimum size=0.1cm] (prob11) at (0,0) {};
                    \node [prob,minimum size=0.5cm,anchor=center] (prob21) at ([yshift=-0.5cm]prob11.center) {$1.$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob31) at ([yshift=-0.5cm]prob21.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob41) at ([yshift=-0.5cm]prob31.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob51) at ([yshift=-0.5cm]prob41.center) {};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob51.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob11.center);
                        \node [draw,fit=(prob11) (prob21) (prob31) (prob41) (prob51) (topright) (bottomleft)] (prob1) {};
                    \end{pgfonlayer}
                    
                    % Column 2
                    \node [prob,minimum size=0.1cm,anchor=center] (prob12) at ([xshift=1cm]prob11.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob22) at ([yshift=-0.5cm]prob12.center) {};
                    \node [prob,minimum size=0.5cm,anchor=center] (prob32) at ([yshift=-0.5cm]prob22.center) {$1.$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob42) at ([yshift=-0.5cm]prob32.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob52) at ([yshift=-0.5cm]prob42.center) {};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob52.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob12.center);
                        \node [draw,fit=(prob12) (prob22) (prob32) (prob42) (prob52) (topright) (bottomleft)] (prob2) {};
                    \end{pgfonlayer}
                    
                    % Column 3
                    \node [prob,minimum size=0.1cm,anchor=center] (prob13) at ([xshift=1cm]prob12.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob23) at ([yshift=-0.5cm]prob13.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob33) at ([yshift=-0.5cm]prob23.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob43) at ([yshift=-0.5cm]prob33.center) {};
                    \node [prob,minimum size=0.5cm,anchor=center] (prob53) at ([yshift=-0.5cm]prob43.center) {$1.$};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob53.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob13.center);
                        \node [draw,fit=(prob13) (prob23) (prob33) (prob43) (prob53) (topright) (bottomleft)] (prob3) {};
                    \end{pgfonlayer}
                    
                    % Column 4
                    \node [prob,minimum size=0.5cm,anchor=center] (prob14) at ([xshift=1cm]prob13.center) {$1.$};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob24) at ([yshift=-0.5cm]prob14.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob34) at ([yshift=-0.5cm]prob24.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob44) at ([yshift=-0.5cm]prob34.center) {};
                    \node [prob,minimum size=0.1cm,anchor=center] (prob54) at ([yshift=-0.5cm]prob44.center) {};
                    \begin{pgfonlayer}{background}
                        \coordinate (bottomleft) at ([shift={(-0.25cm,-0.25cm)}]prob54.center);
                        \coordinate (topright) at ([shift={(0.25cm,0.25cm)}]prob14.center);
                        \node [draw,fit=(prob14) (prob24) (prob34) (prob44) (prob54) (topright) (bottomleft)] (prob4) {};
                    \end{pgfonlayer}

                    % Label
                    \draw [decorate,decoration={brace}] ([yshift=0.1cm]prob1.north west) to node [midway,above,font=\small] {学习目标(Teacher输出)} ([yshift=0.1cm]prob4.north east);
                
                    % Vocab
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob11.center) {EOS};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob21.center) {I};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob31.center) {am};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob41.center) {fine};
                    \node [word,anchor=center] () at ([xshift=-0.9cm]prob51.center) {good};
                
                    \draw [decorate,decoration={brace,mirror}] ([xshift=-1cm]prob1.north west) to node [midway,left,font=\small,align=center] {\\} ([xshift=-1cm]prob1.south west);
                
                    % Model
                    \coordinate (bottomleft) at ([yshift=-1cm]prob1.south west);
                    \coordinate (topright) at ([yshift=-0.5cm]prob4.south east);
                    \node [draw,rounded corners=3pt,fill=green!20,inner sep=0pt,fit=(bottomleft) (topright)] (model) {};
                    \node [word] () at (model.center) {Student};
                
                    \foreach \i in {1,2,...,4}
                        \draw [-latex,thick] (prob\i.south) to ([yshift=-0.5cm]prob\i.south);
                
                    % Input
                    \node [word,anchor=south] (input1) at ([yshift=-1.8cm]prob1.south) {EOS};
                    \node [word,anchor=south] (input2) at ([yshift=-1.8cm]prob2.south) {I};
                    \node [word,anchor=south] (input3) at ([yshift=-1.8cm]prob3.south) {am};
                    \node [word,anchor=center] (input4) at ([xshift=1cm]input3.center) {good};
                
                    \foreach \i in {1,2,3}
                        \draw [-latex,thick] ([yshift=0.3cm]input\i.south) to ([yshift=0.8cm]input\i.south);
\draw [-latex,thick] ([yshift=0.36cm]input4.south) to ([yshift=0.86cm]input4.south);

                    \node [word,anchor=south] (ns) at ([xshift=-1cm]input1.south) {输入:};
\node [word,anchor=north] () at ([xshift=2.1cm,yshift=-0.5cm]ns.south) {(b)\ Sequence-level };
\end{scope}          
\end{tikzpicture}