CN111143518B - 跨领域语言模型训练方法、装置、电子设备及存储介质 - Google Patents
跨领域语言模型训练方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111143518B CN111143518B CN201911400691.3A CN201911400691A CN111143518B CN 111143518 B CN111143518 B CN 111143518B CN 201911400691 A CN201911400691 A CN 201911400691A CN 111143518 B CN111143518 B CN 111143518B
- Authority
- CN
- China
- Prior art keywords
- training
- corpus
- language models
- language
- language model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Machine Translation (AREA)
Abstract
本申请提供了一种跨领域语言模型训练方法、装置、电子设备及存储介质,所述方法包括:获得多个领域的语料训练集;基于所述多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,所述多个语言模型与所述多个领域的语料训练集一一对应;根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型。本申请提供了一种跨领域语言模型训练方法,通过基于线性插值的语言模型混合方法,将多个领域的语言模型混合为一个模型,有效解决了语言模型跨领域的脆弱性,提高了语言模型性能指标以及降低了语言模型的困惑度。
Description
技术领域
本发明涉及自然语言处理技术领域,特别是涉及一种跨领域语言模型训练方法、装置、电子设备及存储介质。
背景技术
自然语言处理(NLP)是计算机科学、语言学和机器学习的交叉点,它致力于让计算机能够理解和生成人类语言,但是计算机无法直接对语言字符进行数学运算,需要将文本转换为数学符号,然后应用各类算法进行处理,得到我们想要的结果。语言模型是根据语言客观事实而进行的语言抽象数学建模,将自然语言文本转换为带语义特征的数学符号,因此语言模型的性能好坏直接影响NLP系统的性能。
尽管语言模型的理论基础已比较完善,但是语言模型但在实际应用中常常会遇到一些难以处理的问题,模型对跨领域的脆弱性(brittlenessacross domains)是最显著的问题。一方面,在实际应用场景中训练语言模型时采用的语料往往来自多种不同的领域,来自不同领域的数据无论在主题方面,还是在风格方面都有一定的差异,另一方面,语言模型对跨领域的数据非常敏感,直接影响语言模型的性能指标。
发明内容
本申请实施例提供了一种跨领域语言模型训练方法、装置、电子设备及存储介质,旨在解决语言模型跨领域的脆弱性,提高语言模型性能指标,降低语言模型的困惑度。
本申请实施例第一方面提供了一种跨领域语言模型训练方法,包括:
获得多个领域的语料训练集;
基于所述多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,所述多个语言模型与所述多个领域的语料训练集一一对应;
根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型。
可选地,根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型,包括:
根据所述多个语言模型各自经第一次训练后的输出,以及预先为所述多个语言模型分配的初始化的插值系数,对所述多个语言模型进行第一次插值,得到第一次插值后的语言模型;
根据所述多个语言模型各自经下一次训练后的输出,以及所述多个语言模型各自经下一次训练后对应的插值系数,对所述多个语言模型进行下一次插值,直到得到所述跨领域语言模型。
可选地,在对所述多个语言模型进行第r次插值之前,所述方法还包括:
按照以下公式确定所述多个语言模型各自经第r次训练后对应的插值系数,其中,
表示第r次训练后,第j个语言模型在第i类语料训练集上对应的插值系数,n表示所述多个语言模型的总数,Pij表示第j个语言模型经第r次训练后的输出,h表示第r-1次训练后第j个语言模型在第i类语料训练集上的λ值,i<=n。
可选地,在对所述多个语言模型进行插值,得到所述跨领域语言模型后,所述方法还包括:
根据NCE损失函数计算所述跨领域语言模型的损失值;
根据所述损失值对所述跨领域语言模型的模型参数进行优化。
可选地,在对所述多个语言模型进行插值,得到所述跨领域语言模型后,所述方法还包括:
获得当前输入词;
将所述当前输入词输入所述跨领域语言模型,输出针对所述当前输入词预测得到的下一个词。
可选地,获得多个领域的语料训练集,包括:
获得混合语料,所述混合语料包括多个不同领域的语料数据;
确定聚类目标,所述聚类目标为按照数据来源聚类、按照数据主题聚类以及按照数据类型聚类中的任意一种;
根据所述聚类目标,对所述混合语料进行聚类处理,得到所述多个领域的语料训练集。
可选地,基于所述多个领域的语料训练集,对多个语言模型进行训练,包括:
将所述多个领域的语料训练集划分为多个语料训练子集,每个所述语料训练子集中包含每一个领域的语料训练集的符合预设数量的语料;
基于所述多个语料训练子集中每一个语料训练子集,对所述多个语言模型进行训练。
本申请实施例第二方面提供了一种跨领域语言模型训练装置,包括:
获得模块,用于获得多个领域的语料训练集;
训练模块,用于基于所述多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,所述多个语言模型与所述多个领域的语料训练集一一对应;
插值模块,用于根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型。
可选地,所述插值模块包括:
第一插值模块,用于根据所述多个语言模型各自经第一次训练后的输出,以及预先为所述多个语言模型分配的初始化的插值系数,对所述多个语言模型进行第一次插值,得到第一次插值后的语言模型;
第二插值模块,用于根据所述多个语言模型各自经下一次训练后的输出,以及所述多个语言模型各自经下一次训练后对应的插值系数,对所述多个语言模型进行下一次插值,直到得到所述跨领域语言模型。
可选地,所述装置还包括:
确定模块,用于按照以下公式确定所述多个语言模型各自经第r次训练后对应的插值系数,其中,
表示第r次训练后,第j个语言模型在第i类语料训练集上对应的插值系数,n表示所述多个语言模型的总数,Pij表示第j个语言模型经第r次训练后的输出,h表示第r-1次训练后第j个语言模型在第i类语料训练集上的λ值,i<=n。
可选地,所述装置还包括:
计算模块,用于根据NCE损失函数计算所述跨领域语言模型的损失值;
优化模块,用于根据所述损失值对所述跨领域语言模型的模型参数进行优化。
可选地,所述装置还包括:
输入模块,用于获得当前输入词;
输出模块,用于将所述当前输入词输入所述跨领域语言模型,输出针对所述当前输入词预测得到的下一个词。
可选地,所述获得模块包括:
获得子模块,用于获得混合语料,所述混合语料包括多个不同领域的语料数据;
确定子模块,用于确定聚类目标,所述聚类目标为按照数据来源聚类、按照数据主题聚类以及按照数据类型聚类中的任意一种;
聚类模块,用于根据所述聚类目标,对所述混合语料进行聚类处理,得到所述多个领域的语料训练集。
可选地,所述训练模块包括:
划分模块,用于将所述多个领域的语料训练集划分为多个语料训练子集,每个所述语料训练子集中包含每一个领域的语料训练集的符合预设数量的语料;
训练子模块,用于基于所述多个语料训练子集中每一个语料训练子集,对所述多个语言模型进行训练。
本申请实施例第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。
本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的方法中的步骤。
本申请实施例提供了一种跨领域语言模型训练方法,首先获得多个领域的语料训练集;然后基于多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,多个语言模型与多个领域的语料训练集一一对应;再根据多个语言模型各自的输出,以及多个语言模型预设的插值系数,对多个语言模型进行插值,得到跨领域语言模型。本申请提供了一种跨领域语言模型训练方法,通过基于线性插值的语言模型混合方法,将多个领域的语言模型混合为一个模型,在面对来自不同领域的文本在主题方面或风格方面存在的差异时,也能具有较好的预测性能,有效解决了语言模型跨领域的脆弱性,提高了语言模型性能指标以及降低了语言模型的困惑度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例示出的一种跨领域语言模型训练方法的流程图;
图2是本申请一实施例示出的一种线性插值的原理示意图;
图3是本申请一实施例示出的一种跨领域语言模型训练方法的原理示意图;
图4是本申请一实施例示出的一种对多个语言模型进行插值的流程示意图;
图5是本申请一实施例示出的一种跨领域语言模型训练过程示意图;
图6是本申请一实施例示出的一种跨领域语言模型训练装置的结构框图;
图7是本申请一实施例示出的一种电子设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在对本申请的跨领域语言模型训练方法进行说明之前,首先对N-Gram中文统计语言模型技术原理进行简单说明:
设定S表示某个有意义的句子,该句子由一连串特定顺序排列的词w1,w2,...,wn组成,其中,n表示句子的长度,若需要预测句子S在文本中出现的概率,即S的概率P(S),则:P(S)=P(w1,w2,...,wn)。根据条件概率公式:P(w1,w2,...,wn)=P(w1)*P(w2|w1)*P(w3|w1,w2)……*P(wn|w1,w2,...,wn-1),即可计算得到S的概率P(S)。由于条件概率P(wn|w1,w2,...,wn-1)难以估算,根据马尔可夫假设任一个词wi在文本中出现的概率只同它前面的词wi-1有关,即n=2,则公式P(S)=P(w1,w2,...,wn)可简化为:P(S)=P(w1,w2,...,wn)=P(w1)*P(w2|w1)*P(w3|w2)……*P(wn|wn-1),对应的统计语言模型为二元模型(Bigram Model),即:一个词由前面N-1个词决定,对应的模型即称为N元模型。
对于P(wi|wi-1),根据条件概率公式可进行计算,其中联合概率P(wi-1,wi)和边缘概率P(wi-1),可利用语料库进行估算,只需统计(wi-1,wi)这对词在语料库文本中前后相邻出现的次数α(wi-1,wi),以及wi-1本身在同样的文本中出现的次数α(wi-1,wi),然后用两个数分别除以语料库的大小γ,即可得到二元组的相对频度:和根据大数定理,只要统计量足够,相对频度等于频率,因此:
具体地,N-Gram中文统计语言模型的训练方法可以如下:
步骤1:利用网络爬虫工具从互联网抓取中文语料或者直接下载公开免费中文语料库;
步骤2:构建y=ax+b的神经网络,其中,a和b表示参数矩阵;
步骤3:进行多个批次的训练,每次训练时获取预设数量的训练语料;
步骤4:假设N-Gram的N=2,将每条语料以两两相邻的词进行拆分,前面的词为输入下x,后面的词作为输出y,传递给y=ax+b的神经网络模型,训练得到a和b;
步骤5:每个批次训练完成之后,通过NCE损失函数验证模型的损失loss;
步骤6:根据损失loss对神经网络参数进行优化;
步骤7:反复迭代步骤3-步骤6,直到全部训练语料完成训练,或者loss满足预设阈值条件。
针对上述过程的N-Gram中文统计语言模型,如果在训练过程中,使用的训练语料是某一个特定领域的语料,例如:公安笔录中的电信诈骗类案笔录,那么训练得到的语言模型可用于对电信诈骗类案文本进行预测;又例如,如果在训练过程中使用的训练语料是公安笔录中的盗窃类案笔录,那么训练得到的语言模型可用于对盗窃类案文本进行预测。
然而,上述方法训练得到的模型在对某一个具体领域的文本进行预测时,预测准确率较高,当在对多个领域的文本进行预测时,面对来自不同领域的文本在主题方面或风格方面存在的差异,模型的预测效果严重降低。为了解决该问题,本申请提供了一种跨领域语言模型训练方法,通过基于线性插值的语言模型混合方法,有效解决了语言模型跨领域的脆弱性,提高了语言模型性能指标以及降低了语言模型的困惑度。
下面将对本申请提供的跨领域语言模型训练方法进行说明。图1是本申请一实施例示出的一种跨领域语言模型训练方法的流程图。参照图1,本申请的跨领域语言模型训练方法包括以下步骤:
步骤S11:获得多个领域的语料训练集。
在本实施例中,可以利用网络爬虫工具从互联网抓取中文语料或者直接下载公开免费中文语料库获得多个领域的语料训练集。其中,领域可以按照广义的概念划分,示例地,多个不同的领域可以是:化学、生物、医疗、计算机、文学等;再示例地,领域可以根据使用场景划分,例如,针对公安刑侦笔录,涉及到的多个不同的领域可以是:盗窃、命案、电信诈骗、涉黑、监所谈话等。
在步骤S11中,针对一个领域,可以获得对应的语料训练集。示例地,在公安刑侦笔录中,针对盗窃案笔录,可以获得盗窃案语料训练集;针对命案笔录,可以获得命案语料训练集。
步骤S12:基于所述多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,所述多个语言模型与所述多个领域的语料训练集一一对应。
在本实施例中,在获得多个领域的语料训练集后,根据领域的数量构建多个对应的初始化语言模型。示例地,在步骤S11中获得了N个领域的语料训练集,应当构建N个初始化语言模型(每一个初始化语言模型的模型参数都是随机赋值的),其中,一个领域的语料训练集与一个初始化语言模型唯一对应。
在步骤S12中,分别使用各个领域的语料训练集,对其对应的初始化语言模型进行训练。示例地,有3个不同的领域1-3,对应有3个不同领域的语料训练集1-3,也对应有3个不同的初始化语言模型1-3,则具体的训练过程应当是:基于语料训练集1对初始化语言模型1进行训练;基于语料训练集2对初始化语言模型2进行训练;基于语料训练集3对初始化语言模型3进行训练。
在本实施例中,可以分多轮对各个语言模型进行训练(对应该种情况,各个领域的语料训练集也可以分为多个子集,在每一轮训练时使用一个子集对对应的语言模型进行训练),在每一次训练完成后,将各个领域的语料,分别输入对应的语言模型,可以得到输出值。示例地,将上述语料训练集1-3中的训练语料作为输入,分别输入初始化语言模型1-3并进行第一轮训练后,可以得到第一轮训练后的语言模型1-3;再将上述语料训练集1-3中的训练语料作为输入,分别输入第一轮训练后的语言模型1-3并进行第二轮训练后,可以得到第二轮训练后的语言模型1-3,以此类推,直到完成对语言模型1-3的多轮训练。在每一轮训练完成后,对语言模型1-3分别输入对应领域的语料,可得到输出值。示例地,在第一轮训练完毕后,将领域1的语料输入到第一轮训练后的语言模型1,可得到输出值1;将领域2的语料输入到第一轮训练后的语言模型2,可得到输出值2,以此类推,可得到每一个语言模型的输出值。
步骤S13:根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型。
在本实施例中,通过将多个不同领域的语言模型进行混合处理,得到可降低对跨领域语料敏感度的混合模型。示例地,将语言模型1(对应领域1)和语言模型2(对应领域2)进行混合处理,得到的混合模型既可以对领域1的语料进行预测,也可以对领域2的语料进行预测,且具有较高的预测精度。
具体地,本申请采用线性插值公式对两个不同的语言模型进行混合处理。
线性插值公式如下所示:
图2是本申请一实施例示出的一种线性插值的原理示意图。参照图2,假设坐标(x0,y0)与(x1,y1)已知,要得到区间[x0,x1]内某一位置x在直线上的值,根据图2所示,可以得到两点式直线方程:
假设方程两边的值为α,那么α就是插值系数(从x0到x的距离与从x0到x1距离的比值),由于x已知,所以根据公式得到α的值。
或者
因此,从代数上可以将线性插值公式表示为:
y=(1-α)y0+αy1
或者
y=y0+α(y1-y0)
可见,线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法,在已知两点(x0,y0)和(x1,y1)的情况下,通过α就可以直接得到连接该两点的直线上的y值。
在本实施例中,如前所述,单个语言模型可以表示y=ax+b的神经网络,该神经网络在数学上即为一条曲线(x表示当前时刻输入的词,y为针对当前时刻输入的x预测得到的下一个词),因此可以将该语言模型的一组输入输出看做一个已知量。对于两个语言模型,分别获得一组输入输出,可获得两个已知量,因而,连接该两个已知量的直线可近似看做两个语言模型混合后的混合模型的曲线。
在步骤S13中,将语言模型1(对应领域1)和语言模型2(对应领域2)进行混合处理,具体地:将领域1的语料输入语言模型1,获得输出y0,将领域2的语料输入语言模型2,获得输出y1,设语言模型1的插值系数为1-α,那么语言模型1的插值系数为α(两个语言模型进行插值处理时,各自的插值系数之和应当为1),那么最终得到的混合后的混合模型的曲线应当为:
y=(1-α)y0+αy1
该混合模型既可以对领域1的语料进行预测,也可以对领域2的语料进行预测。例如:输入领域1的词XXX,可以预测得到下一个词YYY,输入输入领域2的词X’X’X’,也可以预测得到下一个词Y’Y’Y’。
图3是本申请一实施例示出的一种跨领域语言模型训练方法的原理示意图。参照图3,在利用本申请的跨领域语言模型训练方法训练跨领域语言模型时,首先获得跨领域语料,通过文本聚类将跨领域语料聚类为多个领域的语料训练集,例如:领域1的语料训练集-领域5的语料训练集;然后根据每个领域的语料训练集可以对每个领域对应的语言模型进行训练,例如,利用领域1的语料训练集可以训练得到语言模型1,利用领域2的语料训练集可以训练得到语言模型2,以此类推,直到训练出5个领域对应的语言模型;在对5个领域对应的语言模型进行训练的过程中,利用线性插值公式可以获得对5个领域对应的语言模型的混合模型,即跨领域语言模型:
在本实施例中,如果存在两个以上的语言模型,可以通过两两插值处理的方式,实现最终混合为一个模型。示例地,如果有3个不同的领域1-3,对应有3个不同的语言模型1-3,那么可以首先对语言模型1和语言模型2进行插值处理,得到一个混合模型,再对该混合模型和语言模型3进行插值处理,得到最终的混合模型,该最终的混合模型可以用于预测领域1-3的语料,该最终的混合模型即为跨领域1-3的跨领域语言模型。
在本实施例中,针对多个(两个及两个以上)初始模型语言,既可以先将其中的任意两个初始语言模型进行插值处理,训练得到具有预测功能的混合模型;然后基于该具有预测功能的混合模型,从剩余的初始语言模型中选择一个初始语言模型,将两者再进行插值处理,训练得到具有预测功能的混合模型,以此类推,直到所有的初始语言模型混合完毕,得到最终的具有预测功能的混合模型,即跨领域语言模型。
在本实施例中,混合过程与训练过程不同,如果采用多轮训练,刚开始多个语言模型的模型参数都是随机参数,在第一轮训练时,首先混合两个初始语言模型,混合得到一个语言模型,然后再拿第三个初始语言模型与该混合得到的语言模型进行混合,以此类推,直到所有初始语言模型混合为一个语言模型,然后优化参数,之后再进入第二轮训练,而不是对两个初始语言模型进行多轮训练完毕后,再拿第三个初始语言模型与该混合得到的语言模型进行混合。
在本实施例中,首先获得多个领域的语料训练集;然后基于多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,多个语言模型与多个领域的语料训练集一一对应;再根据多个语言模型各自的输出,以及多个语言模型预设的插值系数,对多个语言模型进行插值,得到跨领域语言模型。本申请提供了一种跨领域语言模型训练方法,通过基于线性插值的语言模型混合方法,将多个领域的语言模型混合为一个模型,在面对来自不同领域的文本在主题方面或风格方面存在的差异时,也能具有较好的预测性能,有效解决了语言模型跨领域的脆弱性,提高了语言模型性能指标以及降低了语言模型的困惑度。
结合以上实施例,在一种实施方式中,上述步骤S13包括如图4所示的多个步骤。图4是本申请一实施例示出的一种对多个语言模型进行插值的流程示意图。参照图4,对多个语言模型进行插值具体可以包括:
步骤S131:根据所述多个语言模型各自经第一次训练后的输出,以及预先为所述多个语言模型分配的初始化的插值系数,对所述多个语言模型进行第一次插值,得到第一次插值后的语言模型。
在本实施例中,针对多个领域,先构建得到多个初始语言模型,每一个领域对应一个初始语言模型;然后基于各个领域的语料训练集,对多个初始语言模型进行第一轮训练,在第一轮训练完成后,针对得到的每一个语言模型,输入对应领域的语料,得到输出值,然后利用预先为各个初始语言模型分配的初始化的插值系数,对多个语言模型进行第一次插值,得到第一次插值后的语言模型。
示例地,如果有3个不同的领域1-3,分别对应有3个不同的语料训练集1-3,也对应有3个不同的初始语言模型1-3。根据步骤S131,首先从语料训练集1中获取部分训练语料,对初始语言模型1进行第一次训练,得到第一次训练后的语言模型1,同时,从语料训练集2中获取部分训练语料,对初始语言模型2进行第一次训练,得到第一次训练后的语言模型2,从语料训练集3中获取部分训练语料,对初始语言模型3进行第一次训练,得到第一次训练后的语言模型2;然后将领域1的语料输入第一次训练后的语言模型1,得到输出值y1,将领域2的语料输入第一次训练后的语言模型2,得到输出值y2,将领域3的语料输入第一次训练后的语言模型3,得到输出值y3;那么根据y1、y2、y3,对语言模型1-3进行第一次插值,具体插值时,可先将y1、y2进行插值,例如得到:
y′=(1-α)y1+αy2
然后再将y′与y3进行插值,例如得到:
y″=(1-b)y′+by3
将上述y′带入y″,并化简,即可得到最终的第一次插值后的语言模型:
y=λ1y1+λ2y2+λ3y3
其中,λ1、λ2、λ3为包含α和/或b的表达式(在此不作示意),α和b为预先随机分配的系数,λ1、λ2、λ3分别为语言模型1-3对应的插值系数。
步骤S132:根据所述多个语言模型各自经下一次训练后的输出,以及所述多个语言模型各自经下一次训练后对应的插值系数,对所述多个语言模型进行下一次插值,直到得到所述跨领域语言模型。
在本实施例中,对多个语言模型进行多轮训练,在每一轮训练后,都可以根据各个语言模型的输出,再次进行插值,得到新的插值后的语言模型,直到得到满足预设条件的语言模型。
步骤S132的具体实现过程可参照步骤S131,在此不作赘述。
结合以上实施例,在一种实施方式中,在对所述多个语言模型进行第r次插值之前,所述方法还包括:
按照以下公式确定所述多个语言模型各自经第r次训练后对应的插值系数,其中,
表示第r次训练后,第j个语言模型在第i类语料训练集上对应的插值系数,n表示所述多个语言模型的总数,Pij表示第j个语言模型经第r次训练后的输出,h表示第r-1次训练后第j个语言模型在第i类语料训练集上的λ值,i<=n。
在本实施例中,可通过EM迭代计算方法对λ值进行计算,0≤λ≤1。λ值的EM迭代计算方法如下:
步骤1:对于n个类,随机初始化插值系数λ;
步骤2:根据上述公式计算新的概率和期望;
步骤3:第r次迭代,第j个语言模型在第i(i<=n)类上λ计算公式为:
其中,h为第r-1次迭代时第j个模型在第i类语料训练集上的λ值。
不断迭代,重复步骤2和3,直至收敛。
结合以上实施例,在一种实施方式中,在对所述多个语言模型进行插值,得到所述跨领域语言模型后,所述方法还包括:
根据NCE损失函数计算所述跨领域语言模型的损失值;
根据所述损失值对所述跨领域语言模型的模型参数进行优化。
结合以上实施例,在一种实施方式中,
获得当前输入词;
将所述当前输入词输入所述跨领域语言模型,输出针对所述当前输入词预测得到的下一个词。
在本实施例中,跨领域语言模型在获得当前输入词后,对所有历史语料中的词进行概率计算,将计算得到的概率最高的词作为下一个预测得到的词。在对所有历史语料中的词进行概率计算时,使用的公式为:
结合以上实施例,在一种实施方式中,获得多个领域的语料训练集,可以包括:
获得混合语料,所述混合语料包括多个不同领域的语料数据;
确定聚类目标,所述聚类目标为按照数据来源聚类、按照数据主题聚类以及按照数据类型聚类中的任意一种;
根据所述聚类目标,对所述混合语料进行聚类处理,得到所述多个领域的语料训练集。
在本实施例中,初次获得的多个不同领域的语料数据往往是混合的、未经过预处理和分类的,为了便于对语言模型进行训练,需要预先将多个不同领域的语料数据进行聚类处理,得到多个领域的语料训练集。
在聚类时,可以按照数据来源进行聚类,例如,数据来源于区域1-3,那么按照数据来源聚类后可以得到区域1的语料训练集、区域2的语料训练集以及区域3的语料训练集;此外,还可以按照数据主题聚类,例如,数据涉及衣、食、住、行,那么按照数据主题聚类后可以得到衣对应的语料训练集、食对应的语料训练集、住对应的语料训练集以及行对应的语料训练集;此外,还可以按照数据类型聚类,例如,数据类型包括:阿拉伯数字、英文字母、汉字,那么按照数据类型聚类后可以得到阿拉伯数字对应的语料训练集、英文字母对应的语料训练集以及汉字对应的语料训练集。
在本实施例中,聚类目标可以有多个,具体使用何种聚类目标可根据实际需求设置,本申请对此不作具体限制。
结合以上实施例,在一种实施方式中,基于所述多个领域的语料训练集,对多个语言模型进行训练,包括:
将所述多个领域的语料训练集划分为多个语料训练子集,每个所述语料训练子集中包含每一个领域的语料训练集的符合预设数量的语料;
基于所述多个语料训练子集中每一个语料训练子集,对所述多个语言模型进行训练。
在本实施例中,在利用多个领域的语料训练集对多个语言模型进行训练时,可以按照预设比例从多个领域的语料训练集中的每一个语料训练集中获取预设数量的训练语料,得到语料训练子集,从而将多个领域的语料训练集划分为多个语料训练子集,实现对多个语言模型的多轮训练。
示例地,语料训练集1中有10000条训练语料,语料训练集2中有10000条训练语料,语料训练集3中有10000条训练语料;假设将语料训练集1-3中的训练语料划分为5个语料训练子集,那么首先将语料训练集1的10000条训练语料划分为5组,每组2000条,将语料训练集2的10000条训练语料划分为5组,每组2000条,将语料训练集3的10000条训练语料划分为5组,每组2000条;再从语料训练集1中选取1组,从语料训练集2中选取1组,从语料训练集3中选取1组,组成一个含有6000条训练语料的语料训练子集,同理,可划分得到5个不同的语料训练子集。
图5是本申请一实施例示出的一种跨领域语言模型训练过程示意图。下面将结合图5以一个具体的实施方式对本申请的跨领域语言模型训练方法进行整体的说明。
本申请实施例的跨领域语言模型训练方法可应用于公安刑侦笔录模型的训练。公安刑侦笔录的语料库中的语料主要是由盗窃类案笔录、命案笔录、电信诈骗笔录、涉黑类笔录以及监所谈话笔录组成的。训练过程包括:
步骤1:由于公安刑侦各类案的笔录类别已确定,因此按类案类型将笔录划分成盗窃案笔录、命案笔录、电信诈骗案笔录、涉黑类案笔录以及监所谈话笔录5个样本集,每个样本集各10万份笔录,数量比例按1:1:1:1:1挑选;
步骤2:将每个样本集细分为训练集、验证集以及测试集,数量比例按5:1:1进行划分;
具体地,根据盗窃类案笔录可训练得到盗窃案笔录模型P1(wi|wi-1),根据命案笔录可训练得到命案笔录模型P2(wi|wi-1),根据电信诈骗笔录可训练得到电信诈骗笔录模型P3(wi|wi-1),根据涉黑类笔录可训练得到涉黑类笔录模型P4(wi|wi-1),根据监所谈话笔录可训练得到监所谈话笔录模型P5(wi|wi-1)。
步骤4:利用针对5个领域的5个特定语言模型,和线性插值公式,训练获得整个语言模型。
步骤4的具体训练过程可参照前文所述,在此不作赘述。
在本实施例中,首先获得多个领域的语料训练集;然后基于多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,多个语言模型与多个领域的语料训练集一一对应;再根据多个语言模型各自的输出,以及多个语言模型预设的插值系数,对多个语言模型进行插值,得到跨领域语言模型。本申请提供了一种跨领域语言模型训练方法,通过基于线性插值的语言模型混合方法,将多个领域的语言模型混合为一个模型,在面对来自不同领域的文本在主题方面或风格方面存在的差异时,也能具有较好的预测性能,有效解决了语言模型跨领域的脆弱性,提高了语言模型性能指标以及降低了语言模型的困惑度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本申请还提供了一种跨领域语言模型训练装置600,如图6所示。图6是本申请一实施例示出的一种跨领域语言模型训练装置的结构框图。参照图6,本申请提供的跨领域语言模型训练装置600包括:
获得模块601,用于获得多个领域的语料训练集;
训练模块602,用于基于所述多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,所述多个语言模型与所述多个领域的语料训练集一一对应;
插值模块603,用于根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型。
可选地,所述插值模块603包括:
第一插值模块,用于根据所述多个语言模型各自经第一次训练后的输出,以及预先为所述多个语言模型分配的初始化的插值系数,对所述多个语言模型进行第一次插值,得到第一次插值后的语言模型;
第二插值模块,用于根据所述多个语言模型各自经下一次训练后的输出,以及所述多个语言模型各自经下一次训练后对应的插值系数,对所述多个语言模型进行下一次插值,直到得到所述跨领域语言模型。
可选地,所述装置600还包括:
确定模块,用于按照以下公式确定所述多个语言模型各自经第r次训练后对应的插值系数,其中,
表示第r次训练后,第j个语言模型在第i类语料训练集上对应的插值系数,n表示所述多个语言模型的总数,Pij表示第j个语言模型经第r次训练后的输出,h表示第r-1次训练后第j个语言模型在第i类语料训练集上的λ值,i<=n。
可选地,所述装置600还包括:
计算模块,用于根据NCE损失函数计算所述跨领域语言模型的损失值;
优化模块,用于根据所述损失值对所述跨领域语言模型的模型参数进行优化。
可选地,所述装置600还包括:
输入模块,用于获得当前输入词;
输出模块,用于将所述当前输入词输入所述跨领域语言模型,输出针对所述当前输入词预测得到的下一个词。
可选地,所述获得模块包括:
获得子模块,用于获得混合语料,所述混合语料包括多个不同领域的语料数据;
确定子模块,用于确定聚类目标,所述聚类目标为按照数据来源聚类、按照数据主题聚类以及按照数据类型聚类中的任意一种;
聚类模块,用于根据所述聚类目标,对所述混合语料进行聚类处理,得到所述多个领域的语料训练集。
可选地,所述训练模块包括:
划分模块,用于将所述多个领域的语料训练集划分为多个语料训练子集,每个所述语料训练子集中包含每一个领域的语料训练集的符合预设数量的语料;
训练子模块,用于基于所述多个语料训练子集中每一个语料训练子集,对所述多个语言模型进行训练。
基于同一发明构思,本申请另一实施例提供一种电子设备700,如图7所示。图7是本申请一实施例示出的一种电子设备的示意图。该电子设备包括存储器702、处理器701及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种跨领域语言模型训练方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
2.根据权利要求1所述的方法,其特征在于,根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型,包括:
根据所述多个语言模型各自经第一次训练后的输出,以及预先为所述多个语言模型分配的初始化的插值系数,对所述多个语言模型进行第一次插值,得到第一次插值后的语言模型;
根据所述多个语言模型各自经下一次训练后的输出,以及所述多个语言模型各自经下一次训练后对应的插值系数,对所述多个语言模型进行下一次插值,直到得到所述跨领域语言模型。
3.根据权利要求1所述的方法,其特征在于,在对所述多个语言模型进行插值,得到所述跨领域语言模型后,所述方法还包括:
根据NCE损失函数计算所述跨领域语言模型的损失值;
根据所述损失值对所述跨领域语言模型的模型参数进行优化。
4.根据权利要求1所述的方法,其特征在于,在对所述多个语言模型进行插值,得到所述跨领域语言模型后,所述方法还包括:
获得当前输入词;
将所述当前输入词输入所述跨领域语言模型,输出针对所述当前输入词预测得到的下一个词。
5.根据权利要求1所述的方法,其特征在于,获得多个领域的语料训练集,包括:
获得混合语料,所述混合语料包括多个不同领域的语料数据;
确定聚类目标,所述聚类目标为按照数据来源聚类、按照数据主题聚类以及按照数据类型聚类中的任意一种;
根据所述聚类目标,对所述混合语料进行聚类处理,得到所述多个领域的语料训练集。
6.根据权利要求1所述的方法,其特征在于,基于所述多个领域的语料训练集,对多个语言模型进行训练,包括:
将所述多个领域的语料训练集划分为多个语料训练子集,每个所述语料训练子集中包含每一个领域的语料训练集的符合预设数量的语料;
基于所述多个语料训练子集中每一个语料训练子集,对所述多个语言模型进行训练。
7.一种跨领域语言模型训练装置,其特征在于,包括:
获得模块,用于获得多个领域的语料训练集;
训练模块,用于基于所述多个领域的语料训练集,对多个语言模型进行训练,得到多个语言模型各自的输出,其中,所述多个语言模型与所述多个领域的语料训练集一一对应;
插值模块,用于根据所述多个语言模型各自的输出,以及所述多个语言模型预设的插值系数,对所述多个语言模型进行插值,得到所述跨领域语言模型;
所述插值系数通过如下公式获得:
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-6任一所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911400691.3A CN111143518B (zh) | 2019-12-30 | 2019-12-30 | 跨领域语言模型训练方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911400691.3A CN111143518B (zh) | 2019-12-30 | 2019-12-30 | 跨领域语言模型训练方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143518A CN111143518A (zh) | 2020-05-12 |
CN111143518B true CN111143518B (zh) | 2021-09-07 |
Family
ID=70522147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911400691.3A Active CN111143518B (zh) | 2019-12-30 | 2019-12-30 | 跨领域语言模型训练方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143518B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112151021A (zh) * | 2020-09-27 | 2020-12-29 | 北京达佳互联信息技术有限公司 | 语言模型的训练方法、语音识别方法、装置及电子设备 |
CN112562640B (zh) * | 2020-12-01 | 2024-04-12 | 北京声智科技有限公司 | 多语言语音识别方法、装置、系统及计算机可读存储介质 |
CN116432693B (zh) * | 2023-03-15 | 2024-02-09 | 北京擎盾信息科技有限公司 | 大规模预训练语言模型的构建方法、装置、存储介质及电子装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880611B (zh) * | 2011-07-14 | 2017-12-12 | 深圳市世纪光速信息技术有限公司 | 一种语言建模方法及语言建模装置 |
CN102902362B (zh) * | 2011-07-25 | 2017-10-31 | 深圳市世纪光速信息技术有限公司 | 文字输入方法及系统 |
CN103164198A (zh) * | 2011-12-14 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 一种裁减语言模型的方法和装置 |
CN104572614A (zh) * | 2014-12-03 | 2015-04-29 | 北京捷通华声语音技术有限公司 | 一种语言模型的训练方法及系统 |
CN104572631B (zh) * | 2014-12-03 | 2018-04-13 | 北京捷通华声语音技术有限公司 | 一种语言模型的训练方法及系统 |
CN105654945B (zh) * | 2015-10-29 | 2020-03-06 | 乐融致新电子科技(天津)有限公司 | 一种语言模型的训练方法及装置、设备 |
CN107154260B (zh) * | 2017-04-11 | 2020-06-16 | 北京儒博科技有限公司 | 一种领域自适应语音识别方法和装置 |
CN107358948B (zh) * | 2017-06-27 | 2020-06-09 | 上海交通大学 | 基于注意力模型的语言输入关联性检测方法 |
CN110019832B (zh) * | 2017-09-29 | 2023-02-24 | 阿里巴巴集团控股有限公司 | 语言模型的获取方法和装置 |
CN110287480B (zh) * | 2019-05-27 | 2023-01-24 | 广州多益网络股份有限公司 | 一种命名实体识别方法、装置、存储介质及终端设备 |
-
2019
- 2019-12-30 CN CN201911400691.3A patent/CN111143518B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111143518A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6972265B2 (ja) | ポインタセンチネル混合アーキテクチャ | |
Simeone | A brief introduction to machine learning for engineers | |
CN109783817B (zh) | 一种基于深度强化学习的文本语义相似计算模型 | |
CN111143518B (zh) | 跨领域语言模型训练方法、装置、电子设备及存储介质 | |
Klauer | Hierarchical multinomial processing tree models: A latent-trait approach | |
Cho | Natural language understanding with distributed representation | |
Fanelli | A theory and methodology to quantify knowledge | |
CN114565104A (zh) | 语言模型的预训练方法、结果推荐方法及相关装置 | |
CN110347802B (zh) | 一种文本分析方法及装置 | |
WO2019220113A1 (en) | Device and method for natural language processing | |
CN112528634A (zh) | 文本纠错模型训练、识别方法、装置、设备及存储介质 | |
CN111191457A (zh) | 自然语言语义识别方法、装置、计算机设备和存储介质 | |
CN113239169A (zh) | 基于人工智能的回答生成方法、装置、设备及存储介质 | |
CN112686049A (zh) | 文本审核方法、装置、设备及存储介质 | |
CN111160000A (zh) | 作文自动评分方法、装置终端设备及存储介质 | |
CN114818729A (zh) | 一种训练语义识别模型、查找语句的方法、装置及介质 | |
Windiatmoko et al. | Developing FB chatbot based on deep learning using RASA framework for university enquiries | |
CN110929532B (zh) | 数据处理方法、装置、设备及存储介质 | |
Serras et al. | User-aware dialogue management policies over attributed bi-automata | |
CN115840808A (zh) | 科技项目咨询方法、装置、服务器及计算机可读存储介质 | |
CN111832305A (zh) | 一种用户意图识别方法、装置、服务器和介质 | |
Bianchi et al. | A randomised approach for NARX model identification based on a multivariate Bernoulli distribution | |
CN111241843B (zh) | 基于复合神经网络的语义关系推断系统和方法 | |
CN112667791A (zh) | 潜在事件预测方法、装置、设备及存储介质 | |
CN116738956A (zh) | 一种提示模板生成方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |