Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
mtbookv2
Commits
8c744f45
Commit
8c744f45
authored
Mar 23, 2021
by
单韦乔
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
文字修改
parent
863f4cf7
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
12 行增加
和
12 行删除
+12
-12
Chapter1/Figures/figure-four-levels-of-rbmt.tex
+1
-1
Chapter1/Figures/figure-process-of-rule-based-translation.tex
+1
-1
Chapter1/chapter1.tex
+0
-0
Chapter13/chapter13.tex
+6
-6
Chapter15/chapter15.tex
+0
-0
Chapter2/chapter2.tex
+4
-4
没有找到文件。
Chapter1/Figures/figure-four-levels-of-rbmt.tex
查看文件 @
8c744f45
...
...
@@ -29,7 +29,7 @@
\node
[anchor=north] (l1) at ([yshift=-2em]s4.south)
{{
\small
{
语义
\
转换
}}}
;
\node
[anchor=north] (l2) at ([yshift=-3em]l1.south)
{{
\small
{
句法
\
转换
}}}
;
\node
[anchor=north] (l3) at ([yshift=-2.5em]l2.south)
{{
\small
{
词汇
\
转换
}}}
;
\node
[anchor=north] (l3) at ([yshift=-2.5em]l2.south)
{{
\small
{
单词
\
转换
}}}
;
\node
[node5,anchor=north,draw] (st1) at ([xshift=-3em,yshift=-0.5em]l3.south)
{{
\small
{
分析部分
}}}
;
\node
[node5,anchor=north,draw] (st2) at ([xshift=3em,yshift=-0.5em]l3.south)
{{
\small
{
生成部分
}}}
;
...
...
Chapter1/Figures/figure-process-of-rule-based-translation.tex
查看文件 @
8c744f45
...
...
@@ -20,7 +20,7 @@
\node
[modelnode,anchor=north,minimum height=1.7em,minimum width=8em] (t4) at ([yshift=-1.5em]t3.south)
{{
\small
{
目标语句法生成
}}}
;
\node
[datanode,anchor=north,minimum height=1.7em,minimum width=8em] (t5) at ([yshift=-1.5em]t4.south)
{{
\small
{
译文结构
}}}
;
\node
[decodingnode,anchor=west,minimum height=1.7em,minimum width=13em,inner sep=3pt] (st1) at ([xshift=3.5em,yshift=0.85em]s5.east)
{{
\small
{
源语-目标语
词汇
转换
}}}
;
\node
[decodingnode,anchor=west,minimum height=1.7em,minimum width=13em,inner sep=3pt] (st1) at ([xshift=3.5em,yshift=0.85em]s5.east)
{{
\small
{
源语-目标语
单词
转换
}}}
;
\node
[decodingnode,anchor=north,minimum height=1.7em,minimum width=13em,inner sep=3pt] (st2) at ([yshift=0.05em]st1.south)
{{
\small
{
源语-目标语结构转换
}}}
;
\draw
[->,very thick] (s1.south) -- (s2.north);
...
...
Chapter1/chapter1.tex
查看文件 @
8c744f45
差异被折叠。
点击展开。
Chapter13/chapter13.tex
查看文件 @
8c744f45
差异被折叠。
点击展开。
Chapter15/chapter15.tex
查看文件 @
8c744f45
差异被折叠。
点击展开。
Chapter2/chapter2.tex
查看文件 @
8c744f45
...
...
@@ -521,7 +521,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\end{itemize}
\vspace
{
0.5em
}
\parinterval
极大似然估计方法(基于频次的方法)和掷骰子游戏中介绍的统计
词汇
概率的方法是一致的,它的核心是使用
$
n
$
-gram出现的频次进行参数估计。基于人工神经网络的方法在近些年也非常受关注,它直接利用多层神经网络对问题的输入
$
w
_{
m
-
n
+
1
}
\ldots
w
_{
m
-
1
}$
和输出
$
\funp
{
P
}
(
w
_
m|w
_{
m
-
n
+
1
}
\ldots
w
_{
m
-
1
}
)
$
进行建模,而模型的参数通过网络中神经元之间连接的权重进行体现。严格来说,基于人工神经网络的方法并不算基于
$
n
$
-gram的方法,或者说它并没有显性记录
$
n
$
-gram的生成概率,也不依赖
$
n
$
-gram的频次进行参数估计。为了保证内容的连贯性,接下来仍以传统
$
n
$
-gram语言模型为基础进行讨论,基于人工神经网络的方法将会在
{
\chapternine
}
进行详细介绍。
\parinterval
极大似然估计方法(基于频次的方法)和掷骰子游戏中介绍的统计
单词
概率的方法是一致的,它的核心是使用
$
n
$
-gram出现的频次进行参数估计。基于人工神经网络的方法在近些年也非常受关注,它直接利用多层神经网络对问题的输入
$
w
_{
m
-
n
+
1
}
\ldots
w
_{
m
-
1
}$
和输出
$
\funp
{
P
}
(
w
_
m|w
_{
m
-
n
+
1
}
\ldots
w
_{
m
-
1
}
)
$
进行建模,而模型的参数通过网络中神经元之间连接的权重进行体现。严格来说,基于人工神经网络的方法并不算基于
$
n
$
-gram的方法,或者说它并没有显性记录
$
n
$
-gram的生成概率,也不依赖
$
n
$
-gram的频次进行参数估计。为了保证内容的连贯性,接下来仍以传统
$
n
$
-gram语言模型为基础进行讨论,基于人工神经网络的方法将会在
{
\chapternine
}
进行详细介绍。
\parinterval
$
n
$
-gram语言模型的使用非常简单。可以直接用它来对词序列出现的概率进行计算。比如,可以使用一个2-gram语言模型计算一个句子出现的概率,其中单词之间用斜杠分隔,如下:
\begin{eqnarray}
...
...
@@ -555,7 +555,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\begin{figure}
[htp]
\centering
\input
{
./Chapter2/Figures/figure-word-frequency-distribution
}
\caption
{
词汇
出现频次的分布
}
\caption
{
单词
出现频次的分布
}
\label
{
fig:2-10
}
\end{figure}
%---------------------------
...
...
@@ -819,7 +819,7 @@ c(\cdot) & \textrm{当计算最高阶模型时} \\
\noindent
这里
$
\arg
$
即argument(参数),
$
\argmax
_
x f
(
x
)
$
表示返回使
$
f
(
x
)
$
达到最大的
$
x
$
。
$
\argmax
_{
w
\in
\chi
}$
\\
$
\funp
{
P
}
(
w
)
$
表示找到使语言模型得分
$
\funp
{
P
}
(
w
)
$
达到最大的单词序列
$
w
$
。
$
\chi
$
是搜索问题的解空间,它是所有可能的单词序列
$
w
$
的集合。
$
\hat
{
w
}$
可以被看做该搜索问题中的“最优解”,即概率最大的单词序列。
\parinterval
在序列生成任务中,最简单的策略就是对词表中的
词汇
进行任意组合,通过这种枚举的方式得到全部可能的序列。但是,很多时候待生成序列的长度是无法预先知道的。比如,机器翻译中目标语序列的长度是任意的。那么怎样判断一个序列何时完成了生成过程呢?这里借用现代人类书写中文和英文的过程:句子的生成首先从一片空白开始,然后从左到右逐词生成,除了第一个单词,所有单词的生成都依赖于前面已经生成的单词。为了方便计算机实现,通常定义单词序列从一个特殊的符号<sos>后开始生成。同样地,一个单词序列的结束也用一个特殊的符号<eos>来表示。
\parinterval
在序列生成任务中,最简单的策略就是对词表中的
单词
进行任意组合,通过这种枚举的方式得到全部可能的序列。但是,很多时候待生成序列的长度是无法预先知道的。比如,机器翻译中目标语序列的长度是任意的。那么怎样判断一个序列何时完成了生成过程呢?这里借用现代人类书写中文和英文的过程:句子的生成首先从一片空白开始,然后从左到右逐词生成,除了第一个单词,所有单词的生成都依赖于前面已经生成的单词。为了方便计算机实现,通常定义单词序列从一个特殊的符号<sos>后开始生成。同样地,一个单词序列的结束也用一个特殊的符号<eos>来表示。
\parinterval
对于一个序列
$
<
$
sos
$
>
$
\
I
\
agree
\
$
<
$
eos
$
>
$
,图
\ref
{
fig:2-12
}
展示语言模型视角下该序列的生成过程。该过程通过在序列的末尾不断附加词表中的单词来逐渐扩展序列,直到这段序列结束。这种生成单词序列的过程被称作
{
\small\bfnew
{
自左向右生成
}}
\index
{
自左向右生成
}
(Left-to-Right Generation)
\index
{
Left-to-Right Generation
}
。注意,这种序列生成策略与
$
n
$
-gram的思想天然契合,因为
$
n
$
-gram语言模型中,每个词的生成概率依赖前面(左侧)若干词,因此
$
n
$
-gram语言模型也是一种自左向右的计算模型。
...
...
@@ -1044,7 +1044,7 @@ c(\cdot) & \textrm{当计算最高阶模型时} \\
\vspace
{
0.5em
}
\item
在
$
n
$
-gram语言模型中,由于语料中往往存在大量的低频词以及未登录词,模型会产生不合理的概率预测结果。因此本章介绍了三种平滑方法,以解决上述问题。实际上,平滑方法是语言建模中的重要研究方向。除了上文中介绍的三种平滑方法之外,还有如Jelinek–Mercer平滑
\upcite
{
jelinek1980interpolated
}
、Katz 平滑
\upcite
{
katz1987estimation
}
以及Witten–Bell平滑等等
\upcite
{
bell1990text,witten1991the
}
的平滑方法。相关工作也对这些平滑方法进行了详细对比
\upcite
{
chen1999empirical,goodman2001a
}
。
\vspace
{
0.5em
}
\item
除了平滑方法,也有很多工作对
$
n
$
-gram语言模型进行改进。比如,对于形态学丰富的语言,可以考虑对单词的形态
学
变化进行建模。这类语言模型在一些机器翻译系统中也体现出了很好的潜力
\upcite
{
kirchhoff2005improved,sarikaya2007joint,koehn2007factored
}
。此外,如何使用超大规模数据进行语言模型训练也是备受关注的研究方向。比如,有研究者探索了对超大语言模型进行压缩和存储的方法
\upcite
{
federico2007efficient,federico2006how,heafield2011kenlm
}
。另一个有趣的方向是,利用随机存储算法对大规模语言模型进行有效存储
\upcite
{
talbot2007smoothed,talbot2007randomised
}
,比如,在语言模型中使用Bloom
\
Filter等随机存储的数据结构。
\item
除了平滑方法,也有很多工作对
$
n
$
-gram语言模型进行改进。比如,对于形态学丰富的语言,可以考虑对单词的形态变化进行建模。这类语言模型在一些机器翻译系统中也体现出了很好的潜力
\upcite
{
kirchhoff2005improved,sarikaya2007joint,koehn2007factored
}
。此外,如何使用超大规模数据进行语言模型训练也是备受关注的研究方向。比如,有研究者探索了对超大语言模型进行压缩和存储的方法
\upcite
{
federico2007efficient,federico2006how,heafield2011kenlm
}
。另一个有趣的方向是,利用随机存储算法对大规模语言模型进行有效存储
\upcite
{
talbot2007smoothed,talbot2007randomised
}
,比如,在语言模型中使用Bloom
\
Filter等随机存储的数据结构。
\vspace
{
0.5em
}
\item
本章更多地关注了语言模型的基本问题和求解思路,但是基于
$
n
$
-gram的方法并不是语言建模的唯一方法。从现在自然语言处理的前沿看,端到端的深度学习方法在很多任务中都取得了领先的性能。语言模型同样可以使用这些方法
\upcite
{
jing2019a
}
,而且在近些年取得了巨大成功。例如,最早提出的前馈神经语言模型
\upcite
{
bengio2003a
}
和后来的基于循环单元的语言模型
\upcite
{
mikolov2010recurrent
}
、基于长短期记忆单元的语言模型
\upcite
{
sundermeyer2012lstm
}
以及现在非常流行的Transformer
\upcite
{
vaswani2017attention
}
。 关于神经语言模型的内容,会在
{
\chapternine
}
进行进一步介绍。
\vspace
{
0.5em
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论