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
03ccc7d6
Commit
03ccc7d6
authored
Aug 20, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wording (lm prediction)
parent
296fdb14
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
41 行增加
和
3 行删除
+41
-3
Chapter2/chapter2.tex
+41
-3
没有找到文件。
Chapter2/chapter2.tex
查看文件 @
03ccc7d6
...
...
@@ -766,11 +766,49 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
%----------------------------------------------------------------------------------------
\sectionnewpage
\section
{
搜索
}
\section
{
预测与
搜索
}
\parinterval
语言模型的应用非常广泛,比如,可以用语言模型判断一个句子是否通顺;也可以用语言模型在缺失单词的位置选择出最适合的单词。但是语言模型是否可以完成更加复杂的任务呢?比如写作文时,需要生成出一个完整的句子甚至一篇完整的文章,此时并没有指定某个单词序列作为输入,而是要求直接生成一个合理的单词序列。
\parinterval
给定模型结构,统计语言模型的使用可以分为两个阶段:
\parinterval
这个问题也对应着一大类自然语言处理问题
\ \dash\
{
\small\bfnew
{
序列生成
}}
\index
{
序列生成
}
(Sequence Generation)
\index
{
Sequence Generation
}
。机器翻译就是一个非常典型的序列生成问题:在机器翻译任务中,需要根据源语言序列直接生成与之相对应的目标语言序列。但是语言模型本身并不能“制造”单词序列的,它的基础功能是评判给定的、已经生成的单词序列是否流畅合理。因此严格地说,序列生成问题的本质并非是语言模型凭空“生成”序列,而是使用语言模型在所有候选的单词序列中找出其中的“最佳”序列。实际上,在序列生成任务中寻找最佳单词序列过程的本质是经典的
{
\small\bfnew
{
搜索问题
}}
\index
{
搜索问题
}
(Search Problem)
\index
{
Search Problem
}
。也就是,在所有可能的序列中,根据语言模型的打分找出最佳的序列作为生成的结果。下面将着重介绍序列生成背后的搜索问题建模方法,以及在序列生成里常用的搜索技术。
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
训练
}}
\index
{
训练
}
(Training
\index
{
Training
}
):从训练数据上获得语言模型的参数;
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
预测
}}
\index
{
预测
}
(Prediction
\index
{
Prediction
}
):用训练好的语言模型对新输入的句子进行评价,或者生成新的句子。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
模型训练的内容已经在前文进行了介绍,这里重点讨论语言模型的预测。实际上,预测是统计自然语言处理中的常用概念。比如,深度学习中的
{
\small\bfnew
{
推断
}}
\index
{
推断
}
(Inference
\index
{
Inference
}
)、统计机器翻译中的
{
\small\bfnew
{
解码
}}
\index
{
解码
}
(Decoding
\index
{
Decoding
}
)本质上都是预测。具体到语言建模的问题上,预测往往对应两类问题:
\begin{itemize}
\vspace
{
0.5em
}
\item
预测输入句子的可能性。比如,有如下两个句子,
\vspace
{
0.8em
}
\hspace
{
10em
}
The boy caught the cat.
\vspace
{
0.8em
}
\hspace
{
10em
}
The caught boy the cat.
\vspace
{
0.8em
}
可以利用语言模型对其进行打分,即计算句子的生成概率,之后把语言模型的得分作为判断句子合理性的依据。显然,在这个例子中,第一句的语言模型得分更高,因此句子也更加合理。
\vspace
{
0.5em
}
\item
预测可能生成的单词或者单词序列。比如,对于如下的例子
\vspace
{
0.8em
}
\hspace
{
10em
}
The boy caught
\ \ \underline
{
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
}
\vspace
{
0.8em
}
下划线的部分是缺失的内容,现在要将缺失的部分生成出来。理论上,所有可能的单词串都可以构成缺失部分的内容。这时可以使用语言模型得到所有可能词串构成句子的概率,之后找到概率最高的词串作为缺失部分的内容。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
从对词序列建模的角度看,以上两类预测问题本质上是一样的。因为,它们都是在使用语言模型对单词序列进行概率评估。但是,从具体实现上看,单词序列生成更难。因为,它不仅要对所有可能的词序列进行打分,同时要“找到”最好的词序列。由于潜在的词序列不计其数,因此这个“找”最优词序列的过程并不简单。
\parinterval
实际上,生成最优词序列的问题也对应着自然语言处理中的一大类问题
\ \dash\
{
\small\bfnew
{
序列生成
}}
\index
{
序列生成
}
(Sequence Generation)
\index
{
Sequence Generation
}
。机器翻译就是一个非常典型的序列生成问题:在机器翻译任务中,需要根据源语言序列直接生成与之相对应的目标语言序列。但是语言模型本身并不能“制造”单词序列的。因此严格地说,序列生成问题的本质并非是语言模型凭空“生成”序列,而是使用语言模型在所有候选的单词序列中找出“最佳”序列。这个过程的本质上对应着经典的
{
\small\bfnew
{
搜索问题
}}
\index
{
搜索问题
}
(Search Problem)
\index
{
Search Problem
}
。也就是,在所有可能的序列中,根据语言模型的打分找出最佳的序列作为生成的结果。下面将着重介绍序列生成背后的问题建模方法,以及在序列生成里常用的搜索技术。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论