了解掌握语言模型基本概念、向量语义、基于神经网络的语言模型处理、基于神经网络的机器翻译、预训练语言模型的基本原理与方法。
- 语言模型的基本概念,如N - gram模型、评价指标如困惑度、训练技巧等
- 什么是词向量,如何评估语义相似度
- Word2Vec:词袋模型和跳跃模型的基本原理和训练方式
- 基于全连接、LSTM的语言模型处理
- 基于神经网络的机器翻译,理解Seq2Seq、基于注意力的Seq2Seq、BeamSearch等
- Transformer的基本原理
- 预训练语言模型的基本原理与方法,了解BERT和GPT的联系与区别
- 判别式与生成式建模方式
一. 语言模型基本概念
语言模型是自然语言处理(NLP)领域的一个核心概念,它主要用于预测自然语言中下一个词或者序列的概率分布。语言模型可以应用到许多实用场景,如文本纠错(改正错别字、语法错误)、翻译、语言生成等。
1. n-gram模型
n - gram 模型是一种基于统计的语言模型。它的基本思想是通过统计文本中连续的 n 个单词(或字符)出现的频率,来预测下一个单词(或字符)出现的概率。
概率计算原理
模型分类:分为unigram、bigram 和 trigram等
- unigram元模型中k = 1,只考虑单个字符出现的概率,忽略上下文,即序列中的每个字符相互独立,在此模型下,即使改变字符在序列中的顺序,序列概率也不变;
- bigram(二元模型)中k = 2,考虑当前字符和它前面一个字符一起出现的概率;
- trigram(三元模型)中k = 3,考虑当前字符和它前面两个字符出现的概率;
- 更高阶的n-gram按照此规律类推,可以构建四元模型、五元模型等等。
2. 评价指标
2.1. 困惑度
衡量语言模型性能的常用指标,它反映了模型对测试集的预测正确性,困惑度越低,模型通常越好。
2.2. 交叉熵
衡量的是模型预测的概率分布与真实数据分布之间的差异。交叉熵越低,表示模型的预测分布与真实分布越接近,模型的性能越好。
3. 训练中的特殊字符
3.1. OOV问题:处理模型未见过的字符
由于测试语料与训练语料并不完全一致,模型训练完毕在测试集上预测时往往会遇到在字典L中没有出现的字符,即未知字符(unknown character)或字典外字符(out-of-vocabulary,OOV),因此引入<unk>字符。
- 可将训练集中出现频次较少的字符替换为<unk>,
- 也可将只在训练集中没有出现或者出现很少但在测试集中出现的字符替换为<unk>.
3.2. 起始字符:起始出现概率的处理
对于序列 c 1 c 2 ⋯ c N c _ { 1 } c _ { 2 } \cdots c _ { N } c1c2⋯cN的起始字符 c 1 c _ { 1 } c1,由于之前没有字符,因此使用 P ( c 1 ) P ( c _ { 1 } ) P(c1)作为条件概率。但对完整的一句话进行建模时,往往要求 c 1 c _ { 1 } c1恰好作为一句话中第一个字符出现的概率,因此引入特殊字符<start>,c出现的概率为 P ( c 1 ∣ < s t a r t > ) P ( c _ { 1 } \vert < start > ) P(c1∣<start>),同样结束字符出现的概率为 P ( < e n d > ∣ c N ) P ( < end > \vert c _ { N } ) P(<end>∣cN)。
4. 字模型与词模型
词模型的优势:需要处理的序列长度大大减少,增加语言模型的准确度。
语言模型处理的字符以汉字或词语为基本单位,如句子“深度神经网络是人工智能研究的热点”,如果以字为基本单位处理起来较复杂,但如果用词作为分析的基本单元,可以得到一个长度为6的序列,即“深度神经网络”“是”“人工智能”“研究”的“热点”,需要处理的序列长度大大减小,语言模型也能更准确地进行计算。
不同场景下如何选择子模型和词模型
词作为建模单位缺点在于字典L会变得非常大,汉语中常见汉字约2500个,常见词语可达到万或者十万级别,因此用词语进行建模需要更大规模的语料。所以在实际应用中应根据具体应用的需要和训练语料的大小,适当选择词、字还是二者混合为基本单位。
对较短句子或短语建模,可以以字为单位,对较长的语句或者专业术语较多的场合,应当考虑以词为基本单位。
5. 中英文差别
英文分词 | 1. 英文由于存在分隔符,词作为语言的基本单位非常自然,汉字分词相对复杂一些。 2. 英文更关注词性分割,简称 POS tagging,如"We talk about artificialintelligence"和"He gave a talk on artificial intelligence”中尽管都使用了talk,但在前一句中talk是动词,后一句是名词。 |
英文中的特定名词 | 英文虽然常用词汇不多,但在专业领域有很多拼写复杂的专用名词,如果都简单处理成<ank>,容易造成严重的信息丢失。 |
英文中的缩写与连写(词条化) | 英文不能单纯以空格或分隔符作为划分单词的绝对依据,如U.S.A.不能将3个字母看成三个词,但21-year-old则应分割“21”、“year”,"old”三个词,这种将连续的英文序列分割为词单元的过程称为词条化,词条化在英文自然处理中是一个必要步骤。 |
英文中不同的词性变化(词干化) | 同样的单词有单数和复数的区别,如“man”和“men”;有时态变化,如“Iam happy”和“was happy”;有人称变化,如“Ihave”和“he has”;有词性变化,如“I want to see you”和”llookforward to seeing you”,还有大小写变化。将这些不同形式的单词处理成相同形式,这个过程称为词干化。 |