本发明涉及人工智能领域,特别是指一种面向深度答案推荐模型的主动学习方法
背景技术:
随着互联网技术的快速更新与发展,致力于为用户提供知识的线上社区问答平台应运而生,此平台中用户可以提出问题,也可以贡献自己的知识提供答案。近些年,线上社区问答平台规模不断变大,每个问题可以得到许多答案,但是这些答案中往往存在很多低质量答案,导致用户查看问题时需要从大量答案中寻找最优答案,耗费大量的时间和精力,因此智能答案推荐模型被进行深度研究,以用于线上社区问答平台,成为提升平台使用体验的关键。
随着人工智能技术的飞速发展,深度学习模型在智能答案推荐领域被深入探索并取得了显著的效果。通常,面向答案推荐任务的深度学习模型是一个孪生网络架构,该架构使用编码器将输入的问题文本和答案文本转化为抽象的向量化表示,并将其进行拼接输入到一个全连接网络,最后通过softmax层输出该问题和答案的匹配分数。当对一个问题的所有候选答案计算匹配分数后,就可以根据分数推荐最优答案。
然而,训练深度答案推荐模型需要大量的标注数据,需要耗费大量时间和人力,极大的阻碍了推荐模型在实际中的应用。主动学习技术研究机器学习模型如何根据自身需求主动选择信息量大的数据获取标注,即针对性地提出数据标注需求,在保证模型训练效果的基础上极大的减少了标注任务的工作量。
因此如何将主动学习技术应用于深度答案推荐模型,对在线社区问答平台的发展具有重要意义。但面向传统机器学习模型的主动学习技术并不能直接应用在深度学习模型中,因为神经网络的预测分数不能简单作为其预测置信度。另外,答案推荐任务是对一个问题的多个候选答案进行排序,需要同时考虑目标问题和多个候选答案的关系。因此,这是一种较为复杂的机器学习任务,相应的深度主动学习机制也缺乏研究。
技术实现要素:
针对训练深度答案推荐模型需要大量标注数据的问题,本发明提出了一种面向深度答案推荐模型的主动学习方法,基于主动学习机制,开发了可以应用于线上问答社区平台的数据标注界面,实现了主动学习方法的有效实施;减少了深度答案推荐模型训练所需要的标注数据量,对其在线上问答社区平台的部署具有重要意义。
所述的一种面向深度答案推荐模型的主动学习方法,具体步骤如下:
步骤一、针对某个线上社区问答平台,将该平台中的每个问题和对应的若干候选答案分别作为一个样本;
步骤二、利用该平台通常采用的深度答案推荐模型通过dropout构建贝叶斯神经网络,包括在神经网络的每层权重前设置dropout机制。
步骤三、利用贝叶斯神经网络计算每个样本的近似期望损失;
具体过程如下:
步骤301、针对包含一个问题文本q1和多个候选答案文本{a1,...,aj}的当前样本x,将其视为问答对集合{(q1,a1),(q1,a2),...,(q1,aj)},将每个问答对分别输入神经网络,并开启dropout机制,进行随机前向传播来分别获得每个问答对的匹配分数,即y={y1,...,yj}。
具体为:神经网络将每个问答对中的问题文本和候选答案文本分别进行编码,然后拼接成一个特征向量,经过全连接层和softmax层输出概率作为当前候选答案对于该问题的匹配分数;
步骤302、对当前样本x进行t次随机前向传播来近似其后验预测分布;
计算公式为:
dl为当前已有的标注数据;ω为深度答案推荐模型的参数;
步骤303、利用当前样本x,计算每次随机前向传播时对应的每个候选答案的匹配分数,并进一步计算通用指标dcg并求其期望;
具体为:
首先,计算第t次随机前向传播时,神经网络对样本x的第j个候选答案预测匹配分数为
然后,当前样本x所有候选答案根据匹配分数
计算公式如下:
yt为基于
πt(j)为第j个候选答案在排序πt中的位置。
步骤304、利用当前样本x,计算每次随机前向传播时对应的每个候选答案的后验匹配分数,并进一步计算通用指标dcg并求其期望;
具体为:
首先,利用第t次随机前向传播时,神经网络对样本x的第j个候选答案预测匹配分数为
然后,将样本x所有候选答案根据后验匹配分数
公式为:
步骤305、利用由匹配分数和后验匹配分数得到的通用指标dcg期望值计算各样本对应的近似期望损失;
样本x的期望损失表示如下:
π为候选答案基于匹配分数从大到小的排序;y={y1,y2,...}为所有候选答案的匹配分数集合;
步骤四、将各样本按照对应的期望损失按从大到小排序,并选取前k个作为待标注数据样本;
k的具体选择人为根据需求设定。
步骤五、将前k个样本中的每个样本,各样本分别分给三个用户,进行最优答案的人工标注,并将标注结果进行融合;
具体为:
用户v的可靠程度表示为
τv=τv 1
τv为用于计算用户可靠程度
若其他两个用户选择了相同的最优答案且与用户v选择的最优答案不相同,同时其他两个用户的平均可靠程度大于用户v的可靠程度时,则减小用户v的可靠程度:
τv=τv-1
其他情况用户可靠程度都不变。
标注结果融合是指:3个用户提交的结果分别为r1,r2和r3,相应用户可靠程度为
1)若三个用户标注的最优结果相同,则该结果作为该样本的最终标注;
2)当其中两个用户标注结果相同,且对应的两个用户可靠程度相加大于第三个用户,则该相同结果作为当前样本的最终标注,反之,将第三个用户的标注结果作为样本的最终标注;
3)若三个用户的标注结果都不相同,则选择可靠程度最大的用户的标注结果作为最终结果。
步骤六、将各样本及其标注融合结果加入已标注数据集,并训练当前线上社区问答平台的深度答案推荐模型;
步骤七、判断深度答案推荐模型是否达到收敛且最优性能,如果是,利用训练好的深度答案推荐模型直接对新的问题,推荐出最优的答案。否则,重复步骤一到六,继续提高模型性能。
最优答案具体为:计算新问题中每个候选答案与其的匹配分数,并选取最大分数对应的答案作为最优答案。
本发明的优点在于:
一种面向深度答案推荐模型的主动学习方法,有效减少了基于深度学习的答案推荐模型训练所需要的标注数据量,使其可以以较小的标注代价达到理想性能,有效推动了深度答案推荐模型的实际部署和应用。
附图说明
图1为本发明一种面向深度答案推荐模型的主动学习方法的系统架构图;
图2为本发明一种面向深度答案推荐模型的主动学习方法的流程图;
图3为本发明采用的神经网络预测候选答案匹配分数的原理图;
图4为本发明选用的实施例社区问答平台的标注任务界面。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
本发明面向深度答案推荐模型,其使用孪生神经网络计算一个问题和每个候选答案的相关性分数,最后根据分数对候选答案进行排序和推荐,模型架构如图3所示。针对该模型,本发明提供了一种深度主动学习方法,其通过选择信息量较大的样本获取标注来减少标注代价。为了实际部署到线上问答平台,本发明还提供了一种数据标注机制。如图1所示,具体为:首先,用户从线上社区问答平台中查看问答数据,为了提升使用效率,平台通常采用深度答案推荐模型自动预测每个问题的最优答案,但模型需要先使用标注好的问答数据进行训练。为了获取标注数据,需要从积累的海量问答数据中选取批量进行标注,即在每个问题的多个候选答案中分别标注出最优答案。
为了减少标注工作量,主动学习机制选取价值大的样本进行标注。具体地,采样模块基于当前的深度答案推荐模型,使用提出的深度主动学习方法计算每个样本(包括一个问题和多个候选答案)的信息量,最后从所有样本中选择一批信息量最大的样本作为待标注数据。
主动学习机制的标注模块将待标注数据推送到社区问答平台获取标注,其中每个样本都被分配给三个用户进行标注。相应地,平台通过发布标注任务让用户在开发的标注界面上根据问题描述从其多个候选答案中标注出最优答案。
当用户完成标注后,标注数据返回标注模块。另外,为了获取高质量结果,该模块基于用户可靠度,使用提出的标注结果处理机制对获得的用户标注进行分析处理,得到最终标注结果,并更新用户可靠度。
用获得标注的数据扩充训练数据集后,模型基于扩充后的数据集进行训练,其性能得到进一步提高,从而给平台提供更好的答案推荐服务。同时,可以再次标注数据来扩充训练数据集,从而进一步提高模型性能;该过程可以迭代进行直到模型收敛到最优性能。
总体包括:1)、面向神经网络的不确定性计算方法:面向神经网络模型,基于变分贝叶斯理论,通过dropout技术来近似其对一个输入样本的后验预测分布,该概率分布可以用于刻画模型自身对该样本的不确定性程度。
2)、针对深度答案推荐模型的主动学习方法:智能答案推荐模型通过预测一个问题的多个候选答案的匹配度来推荐最优答案,近年来,基于神经网络的深度答案推荐模型取得了非常好的效果。本发明针对深度答案推荐模型提出了一种基于期望损失优化的主动学习框架,其借助面向神经网络的不确定性计算方法,可以计算答案推荐模型对每个样本的不确定性程度,其中不确定性越大的样本具有越大信息量,从而主动选取不确定性大的样本来获取人工标注用于模型训练。
3)、为线上社区问答平台开发了一个标注任务界面,使社区用户可以从一个问题的多个候选答案标注出最为匹配的答案。标注界面显示的待标注样本由主动学习方法所推荐,每个样本都会被分配给三个用户进行标注。
4)、标注结果处理方法,对于每个样本,将三个用户完成的标注结果根据用户的可靠程度进行聚合,得到最终的标注结果。
如图2所示,具体步骤如下:
步骤一、针对某个线上社区问答平台,将该平台中的每个问题和对应的若干候选答案分别作为一个样本;
步骤二、利用该平台通常采用的深度答案推荐模型通过dropout构建贝叶斯神经网络,包括在神经网络的每层权重前设置dropout机制。
步骤三、利用贝叶斯神经网络计算每个样本的近似期望损失;
深度主动学习中的难点是计算神经网络的后验预测分布,因为与传统模型不同的是,深度神经网络仅仅做出决定性的预测,并不能很好地去表达深度模型的预测分布,这就给深度学习与主动学习的结合带来了困难。例如,在常见的二分类任务的神经网络模型中,通常会在输出层后面加一个softmax层用来近似表达分类的概率,但是这一概率并不能认为是真实的分类概率,因此不能直接拿这一输出结果进行主动学习相关指标的计算。为了能够在深度学习模型中很好地表示模型的预测分布,本发明引入了贝叶斯神经网络,基于贝叶斯深度学习理论将深度答案推荐模型建模为贝叶斯神经网络,即通过建模神经网络中的参数分布来推断模型的后验预测分布。并面向答案推荐任务中的样本,进一步计算每个样本的近似期望损失。目前还缺少针对深度答案推荐模型的主动学习方法。
步骤301、针对包含一个问题文本q1和多个候选答案文本{a1,...,aj}的当前样本x,将其视为问答对集合{(q1,a1),(q1,a2),...,(q1,aj),},将每个问答对分别输入神经网络,并开启dropout机制,进行随机前向传播来分别获得每个问答对的匹配分数,即y={y1,...,yj}。
具体为:神经网络将每个问答对中的问题文本和候选答案文本分别进行编码,然后拼接成一个特征向量,经过全连接层和softmax层输出概率作为当前候选答案对于该问题的匹配分数;
步骤302、对当前样本x进行t次随机前向传播来近似其后验预测分布;
首先,将神经网络模型建模为一个概率模型p(y|x,ω),并令p(ω)为模型参数ω的先验分布。其中ω为模型的参数;ω={w1,w2,...}:ω~p(ω)。
然后,给定已标注数据集dl,贝叶斯神经网络计算模型参数的后验概率分布p(ω|dl),该结果将被进一步用来计算预测结果的后验概率分布,如下公式所示:
计算公式为:
p(y|x,dl)=∫p(y|x,ω)p(ω|dl)dω
但分布p(w|dl)难以准确计算出来,基于变分推理技术,通过获取一个与模型参数后验分布p(ω|dl)的kl散度最小的分布来作为其近似分布。
具体地,使用变分贝叶斯推理方法,首先在神经网络的每层权重前设置dropout,然后基于蒙特卡洛采样原理,通过对神经网络进行t次随机前向传播得到该模型的近似后验预测分布(因为dropout会随机关闭一些节点,所以称为随机前向传播)。以上过程可表达如下:
ω为深度答案推荐模型的参数;
在获得神经网络模型的近似后验预测分布后,需要设计适合答案推荐任务的采样函数。由于在答案推荐任务中,模型预测结果为一个问题和每个候选答案的匹配分数,并且根据分数排序来推荐最优答案。该任务需要同时考虑一个问题和多个候选答案的关系,所以传统的采样函数无法直接应用于该任务,因为它们都往往面向分类任务或者回归任务。为此,本发明给出一种专门针对深度答案推荐模型的采样函数。该采样函数采用模型对一个未标注样本预测的稳定程度来判定其是否具有较大信息量,使模型预测越不稳定的未标注样本具有越大的信息量。为了建模预测的稳定程度,本发明基于贝叶斯决策理论,并基于模型后验预测分布来计算模型对一个未标注样本的期望损失,期望损失越大说明模型对其预测越不稳定。将期望损失最大的样本标注后让模型学习可以最大程度地优化模型参数。具体地,对于未标注样本x,其期望损失为选择使模型损失最小的排序下的后验损失:
当计算出所有未标注样本的期望损失后,本发明选择使期望损失最大的样本进行标注,因为它能加速模型优化速度,使其更快收敛到最优性能:
在计算期望损失过程中,需要计算排序π在一个预测结果下的损失值。为此,本发明基于dcg(discountedcumulativegain)指标来计算排序π在预测结果y下的损失:
其中dcg(π,y)用来衡量一个排序的质量,使用如下公式进行计算:
其中yj是模型预测出的样本的第j个候选答案的匹配分数,π(j)是第j个候选答案在预测结果中的排序位置。
综上,样本的期望损失可表达如下:
进一步,采用dropout的方式得到的近似后验分布,上式可变形如下:
其中,yt为基于
具体步骤如下:
步骤303、利用当前样本x,计算每次随机前向传播时对应的每个候选答案的匹配分数,并进一步计算通用指标dcg并求其期望;
具体为:
首先,计算第t次随机前向传播时,神经网络对样本x的第j个候选答案预测匹配分数为
然后,当前样本x所有候选答案根据匹配分数
计算公式如下:
yt为基于
πt(j)为第j个候选答案在排序πt中的位置。
步骤304、利用当前样本x,计算每次随机前向传播时对应的每个候选答案的后验匹配分数,并进一步计算通用指标dcg并求其期望;
具体为:
首先,计算第t次随机前向传播时,神经网络对样本x的第j个候选答案预测匹配分数为
然后,计算第j个候选答案的后验匹配分数
最后,将样本x所有候选答案根据后验匹配分数
公式为:
步骤305、利用由匹配分数和后验匹配分数得到的通用指标dcg期望值计算各样本对应的近似期望损失;
样本x的期望损失表示如下:
π为候选答案基于匹配分数从大到小的排序;y={y1,y2,...}为所有候选答案的匹配分数集合;
步骤四、将各样本按照对应的期望损失按从大到小排序,并选取前k个作为待标注数据样本;
k的具体选择人为根据需求设定。
步骤五、传统标注数据的获取需要将标注任务提交给相关标注平台(如亚马逊的amt),但是这种方式从标注任务提交到标注结果获取需要等待很长时间,不能满足动态快速增强模型性能的需求,而且需要花费大量金钱。在社区问答平台中,用户的主要行为就是寻找相关问题的最优答案,可以将标注机制融入到社区问答平台中。
因此,本发明使用javascript开发了一个标注任务界面,如图4所示,并在社区平台主界面开发一个进入标注界面的接口,用户可以通过该标注界面来完成样本的标注。标注任务具体由开发的主动学习模块推送信息量最大的未标注样本,用户在标注任务界面阅读相应的问题及其若干候选答案来选出最优答案。这样不仅可以保证主动学习在线上问答平台的有效部署,也能够保证用户学习的目的。
标注步骤如下:
将前k个样本中的每个样本,各样本分别分给三个用户,进行最优答案的人工标注,并将标注结果进行融合;
在社区问答平台中,每个用户的知识储备和认真程度都不同,提供的标注成果质量不能得到有效保证,标注结果一定会存在噪音从而影响模型训练的效果。因此,本平台中的标注模块将每个数据提交给3个用户进行标注,并进行结果融合来提高标注质量。
具体为:
用户v的可靠程度表示为
τv=τv 1
τv为用于计算用户可靠程度
若其他两个用户选择了相同的最优答案且与用户v选择的最优答案不相同,同时其他两个用户的平均可靠程度大于用户v的可靠程度时,则减小用户v的可靠程度:
τv=τv-1
其他情况用户可靠程度都不变。
标注结果融合是指:3个用户提交的结果分别为r1,r2和r3,相应用户可靠程度为
步骤六、将各样本及其标注融合结果加入已标注数据集,并训练当前线上社区问答平台的深度答案推荐模型;
步骤七、判断深度答案推荐模型是否达到收敛且最优性能,如果是,利用训练好的深度答案推荐模型直接对新的问题,推荐出最优的答案。否则,重复步骤一到六,继续提高模型性能。
具体为:计算新问题中每个候选答案与其的匹配分数,并选取最大分数对应的答案作为最优答案。
1.一种面向深度答案推荐模型的主动学习方法,其特征在于,具体步骤如下:
步骤一、针对某个线上社区问答平台,将该平台中的每个问题和对应的若干候选答案分别作为一个样本;
步骤二、利用该平台通常采用的深度答案推荐模型通过dropout构建贝叶斯神经网络,包括在神经网络的每层权重前设置dropout机制;
步骤三、利用贝叶斯神经网络计算每个样本的近似期望损失;
具体过程如下:
步骤301、针对包含一个问题文本q1和多个候选答案文本{a1,…,aj}的当前样本x,将其视为问答对集合{(q1,a1),(q1,a2),…,(q1,aj)},将每个问答对分别输入神经网络,并开启dropout机制,进行随机前向传播来分别获得每个问答对的匹配分数,即y={y1,…,yj};
步骤302、对当前样本x进行t次随机前向传播来近似其后验预测分布;
计算公式为:
dl为当前已有的标注数据;ω为深度答案推荐模型的参数;
步骤303、利用当前样本x,计算每次随机前向传播时对应的每个候选答案的匹配分数,并进一步计算通用指标dcg并求其期望;
具体为:
首先,计算第t次随机前向传播时,神经网络对样本x的第j个候选答案预测匹配分数为yjt;
然后,当前样本x所有候选答案根据匹配分数
计算公式如下:
yt为基于
πt(j)为第j个候选答案在排序πt中的位置;
步骤304、利用当前样本x,计算每次随机前向传播时对应的每个候选答案的后验匹配分数,并进一步计算通用指标dcg并求其期望;
具体为:
首先,利用第t次随机前向传播时,神经网络对样本x的第j个候选答案预测匹配分数为yjt,计算第j个候选答案的后验匹配分数
然后,将样本x所有候选答案根据后验匹配分数
公式为:
步骤305、利用由匹配分数和后验匹配分数得到的通用指标dcg期望值计算各样本对应的近似期望损失;
样本x的期望损失表示如下:
π为候选答案基于匹配分数从大到小的排序;y={y1,y2,…}为所有候选答案的匹配分数集合;
步骤四、将各样本按照对应的期望损失按从大到小排序,并选取前k个作为待标注数据样本;
k的具体选择人为根据需求设定;
步骤五、将前k个样本中的每个样本,各样本分别分给三个用户,进行最优答案的人工标注,并将标注结果进行融合;
步骤六、将各样本及其标注融合结果加入已标注数据集,并训练当前线上社区问答平台的深度答案推荐模型;
步骤七、判断深度答案推荐模型是否达到收敛且最优性能,如果是,利用训练好的深度答案推荐模型直接对新的问题,推荐出最优的答案;否则,重复步骤一到六,继续提高模型性能。
2.如权利要求1所述的一种面向深度答案推荐模型的主动学习方法,其特征在于,所述步骤301具体为:神经网络将每个问答对中的问题文本和候选答案文本分别进行编码,然后拼接成一个特征向量,经过全连接层和softmax层输出概率作为当前候选答案对于该问题的匹配分数。
3.如权利要求1所述的一种面向深度答案推荐模型的主动学习方法,其特征在于,所述的步骤五具体为:
用户v的可靠程度表示为
τv=τv 1
τv为用于计算用户可靠程度
若其他两个用户选择了相同的最优答案且与用户v选择的最优答案不相同,同时其他两个用户的平均可靠程度大于用户v的可靠程度时,则减小用户v的可靠程度:
τv=τv-1
其他情况用户可靠程度都不变;
标注结果融合是指:3个用户提交的结果分别为r1,r2和r3,相应用户可靠程度为
1)若三个用户标注的最优结果相同,则该结果作为该样本的最终标注;
2)当其中两个用户标注结果相同,且对应的两个用户可靠程度相加大于第三个用户,则该相同结果作为当前样本的最终标注,反之,将第三个用户的标注结果作为样本的最终标注;
3)若三个用户的标注结果都不相同,则选择可靠程度最大的用户的标注结果作为最终结果。
4.如权利要求1所述的一种面向深度答案推荐模型的主动学习方法,其特征在于,所述的步骤七中最优答案具体为:计算新问题中每个候选答案与其的匹配分数,并选取最大分数对应的答案作为最优答案。
技术总结