一种基于强化学习的排序学习方法及服务器与流程

文档序号:15385695发布日期:2018-09-08 00:32阅读:1101来源:国知局

本发明涉及排序学习领域,尤其涉及一种基于强化学习的排序学习方法及服务器。



背景技术:

随着互联网快速发展,信息呈现爆炸式的增长。如何从海量的信息中快速找出用户需要的数据成为信息检索研究的重点。目前,从海量的信息中找出需要的数据主要是利用搜素引擎进行检索的,并对搜索结果进行排序。

但随着服务器的发展,影响对搜索结果的排序的因素越来越多,已无法通过人工方式来拟合出排序模型,这时候用机器学习就是非常合适的。排序学习算法是目前非常重要的一种机器学习算法。

排序学习算法是一类基于监督学习的排序算法,已经被广泛应用到搜索、问答以及推荐等问题中。现有的排序算法主要包括:单文档(pointwise)算法、文档对(pairwise)算法和文档列表(listwise)算法。其中,pointwise算法是将排序问题转化为回归问题,对于每个“查询词-文档”,学习排序模型使其得分与相关性标注拟合;pairwise算法是将排序问题转化为分类问题,对于每个“查询词”,学习排序模型使得其能够区分不同的“候选文档”间的相关性好坏(由标注决定);listwise算法是对于每个“查询词”,希望学习排序模型使得该查询的整体排序效果最优。

现有的基于排序学习算法的模型需要依赖查询词与文档之间的相关性标注数据来进行训练,但无法使用通过用户对查询词对应的文档排序列表的排序效果进行评估而得到的数据,无法提高用户对排序效果的满意度。



技术实现要素:

本发明实施例提供一种基于强化学习的排序学习方法和服务器,有利于提高用户对查询词对应的文档排序列表的排序结果的满意度。

第一方面,本发明实施例提供一种基于强化学习的排序学习方法,包括:

接收模块,用于接收用户输入的查询词;

第一获取模块,用于获取与所述查询词相匹配的n个文档;其中,所述n为自然数;

第一排序模块,用于利用排序模型对所述n个文档进行排序以获取文档排序列表;其中,所述排序模型是根据强化学习算法、历史查询词以及与所述历史查询词相对应的历史文档、所述历史查询词对应的文档排序列表和排序效果评估值训练得到的;

显示模块,用于向所述用户呈现所述目标文档排序列表。与现有技术相比,通过强化学习算法不断训练上述排序模型,提高通过该排序模型获得的文档排序列表的排序效果,进而提高用户对排序效果的满意度。

在一种可行的实施例中,在所述服务器利用排序模型对所述n个文档进行排序以获取文档排序列表之前,所述方法包括:

所述服务器利用排序模型对所述n个文档进行排序以获取文档排序列表之前,所述方法还包括:

所述服务器获取历史查询词,并获取与所述历史查询词相对应的m个文档;

所述服务器对所述m个文档进行排序以获取目标文档排序列表;

所述服务器获取所述目标文档排序列表的排序效果评估值;

所述服务器将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为一个训练样本,并放入训练样本集合中;

当所述训练样本集中的训练样本的数量大于预设数量时,所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

与现有技术相比,将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为训练样本集合的一个训练样本,通过该训练样本集合和强化学习算法不断优化参量θ,使得期望函数的值不断增大,进而精确优化排序指标,有利于提高用户对查询词对应的文档排序列表的排序结果的满意度。

在一种可行的实施例中,所述服务器根据排序模型对所述m个文档进行排序以获取目标文档排序列表,包括:

所述服务器根据所述排序模型对所述m个文档中的每个文档中与查询词的相关性进行打分以获取打分结果;

所述服务器根据所述打分结果的升序排序或者降序排序对所述n个文档进行排序以获取所述目标文档排序列表。

在一种可行的实施例中,所述服务器获取所述目标文档排序列表的排序效果评估值,包括:

所述服务器根据用户行为对所述目标文档排序列表的排序效果进行评估,获取排序效果的评估值。

在一种可行的实施例中,所述服务器获取所述目标文档排序列表的排序效果评估值,还包括:

所述服务器将所述用户对所述目标文档排序列表的排序效果进行评估所给出的数值作为所述排序效果评估值。

在一种可行的实施例中,所述服务器获取所述目标文档排序列表的排序效果评估值,还包括:

所述服务器根据用户对所述目标文档排序列表中的每个文档与查询词的相关性进行打分的结果,对所述目标文档排序列表的排序效果进行评估以获取所述排序效果评估值。

第二方面,本发明实施例提供一种服务器,包括:

接收模块,用于接收用户输入的查询词;

第一获取模块,用于获取与所述查询词相匹配的n个文档;其中,所述n为自然数;

第一排序模块,用于利用排序模型对所述n个文档进行排序以获取文档排序列表;其中,所述排序模型是根据强化学习算法、历史查询词以及与所述历史查询词相对应的历史文档、所述历史查询词对应的文档排序列表和排序效果评估值训练得到的;

显示模块,用于向所述用户呈现所述文档排序列表。

在一种可行的实施例中,在所述第一排序模块利用排序模型对所述n个文档进行排序以获取文档排序列表之前,所述服务器还包括:

第二获取模块,用于获取历史查询词,并获取与所述历史查询词相对应的m个文档;

第二排序模块,用于对所述m个文档进行排序以获取目标文档排序列表;

第三获取模块,用于获取所述目标文档排序列表的排序效果评估值;

收集模块,用于将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为一个训练样本,并放入训练样本集合中;

训练模块,用于当所述训练样本集中的训练样本的数量大于预设数量时,利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

在一种可行的实施例中,所述第二排序模块包括:

打分单元,用于根据所述排序模型对所述m个文档中的每个文档中与查询词的相关性进行打分以获取打分结果;

排序单元,用于根据所述打分结果的升序排序或者降序排序对所述m个文档进行排序以获取文档排序列表。

在一种可行的实施例中,所述第三获取模块具体用于:

根据用户行为对所述目标文档排序列表的排序效果进行评估,获取排序效果的评估值。

在一种可行的实施例中,所述第三获取模块具体用于:

获取用户对所述目标文档排序列表的排序效果进行评估所给出的数值,作为所述排序效果评估值。

在一种可行的实施例中,所述第三获取模块具体用于:

获取根据用户对所述目标文档排序列表中的每个文档与查询词的相关性进行打分的打分结果,并根据所述打分结果对所述目标文档排序列表的排序效果进行评估以获取所述排序效果评估值。

本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种搜索文档方法的流程示意图;

图2为本发明实施例提供的一种基于强化学习的排序学习方法的流程示意图;

图3为本发明实施例提供的一种基于强化学习的排序学习方法的流程示意图;

图4为本发明实施例提供的一种基于强化学习的排序学习方法的流程示意图;

图5为本发明实施例提供的一种基于强化学习的排序学习方法的流程示意图;

图6为本发明实施例提供的一种服务器的结构示意图;

图7为本发明实施例提供的一种服务器的部分结构示意图;

图8为本发明实施例提供的另一种服务器的结构示意图。

具体实施方式

本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

下面结合附图对本申请的实施例进行描述。

请参见图1,图1为本发明实施例提供的一种搜索文档方法的流程示意图。如图1所示,本发明实施例提供的一种基于强化学习的排序学习方法,包括以下步骤:

s101、服务器接收用户输入的查询词。

s102、所述服务器获取与所述查询词相匹配的n个文档;其中,所述n为自然数。

其中,上述服务器接收到上述用户输入的查询词后,在其后台数据库中获取与该查询词相关的n个文档。上述n个文档中的任意一个文档的标题或者内容中包含上述查询词。

s103、所述服务器利用排序模型对所述n个文档进行排序以获取文档排序列表;其中,所述排序模型是根据强化学习算法、历史查询词以及与所述历史查询词相对应的历史文档、所述历史查询词对应的文档排序列表和排序效果评估值训练得到的。

其中,上述服务器利用排序模型对所述n个文档进行排序以获取文档排序列表具体包括:

上述服务器根据排序模型对上述n个文档中的每个文档进行打分,并获取打分结果;

上述服务器根据打分结果对上述n个文档进行排序,以获取上述文档排序列表。

具体地,上述排序模型为带参数的可微函数。例如前向神经网络函数mlp(x)

在此需要说明的是,上述服务器根据强化学习算法、历史查询词以及与所述历史查询词相对应的历史文档、所述历史查询词对应的文档排序列表和排序效果评估值训练上述排序模型过程参见图2-图5的相关描述。

s104、所述服务器向所述用户呈现所述文档排序列表。

具体地,上述服务器获取上述文档列表后,将上述文档列表显示出来,供上述用户查阅。

请参见图2,图2为本发明实施例提供的一种基于强化学习的排序学习方法的流程示意图。如图2所示,本发明实施例提供的一种基于强化学习的排序学习方法,包括以下步骤:

s201、服务器获取历史查询词,并获取与所述历史查询词相对应的m个文档。

可选地,上述历史查询词可以是用户输入的,也可以是上述服务器自动获取的。

具体地,上述服务器接收到上述历史查询词q后,根据上述历史查询词从上述服务器的后台数据库中获取与上述历史查询词q相关的m个文档,该m个文档中的任意一个文档的标题或者内容包含上述历史查询词q。

其中,上述m个文档可以用集合(d1,d2,......,dm)表示。

s202、所述服务器对所述m个文档进行排序以获取目标文档排序列表。

具体地,上述所述服务器根据上述排序模型对上述m个文档中的每个文档与上述历史查询词q的相关性进行打分以获取打分结果。

上述m个文档中的每个文档与上述历史查询词q的相关性包括上述历史查询词q在上述m个文档中每个文档的标题或者内容中出现的次数。

上述服务器根据上述打分结果的升序排序或者降序排序对上述m个文档进行排序以获取文档排序列表。

其中,上述排序模型为带参数的可微函数,可以f(q,d;θ)表示,q为上述查询词,d为根据查询词q获取的文档,θ为参量。

上述服务器根据上述排序模型f(q,d;θ)对在上述m个文档中的每个文档中上述历史查询词出现的频率进行打分而获取的打分结果可以集合(d1',d2',......,dm')表示,上述服务器根据上述打分结果的升序排序或者降序排序对上述m个文档进行排序而获取的目标文档排序列表可以集合(y1,y2,......,ym)。

进一步,上述过程能以σ=(y1,y2,......,ym)=sort(d1,d2,......,dm)表示。该sort函数为降序排序模型或者升序排序模型。

s203、所述服务器获取所述目标文档排序列表的排序效果评估值。

在此需要说明的是,上述排序效果评估值r越大,则上述目标文档排序列表的排序效果越好,上述用户对文档排序列表的满意度越高。

可选地,上述服务器获取上述目标文档排序列表的排序效果评估值,包括:

上述服务器根据用户行为对上述目标文档排序列表的排序效果进行评估,获取排序效果评估值。

具体地,上述服务器根据用户行为对上述目标文档排序列表(y1,y2,......,ym)的排序效果进行评估具体为:

上述服务器获取用户最后一次在上述目标文档排序列表(y1,y2,......,ym)中的点击位置k,该点击位置k∈{1,2,......,m};上述服务器根据评估函数求得上述服务器获取上述目标文档排序列表的排序效果评估值r。排序效果评估值r越大,则上述目标文档排序列表的排序效果越好。

可选地,上述评估函数可为r=1/k,也可为其他形式的函数。

可选地,上述服务器获取上述目标文档排序列表的排序效果评估值,包括:

上述服务器获取用户对上述目标文档排序列表的排序效果进行评估所给出的数值,作为所述排序效果评估值。

具体地,上述用户对上述查询词q对应的文档排序列表(y1,y2,......,ym)的排序结果的满意程度进行评估,并给出数值。上述服务器将该数值作为上述排序效果评估值r。

其中,上述排序效果评估值r越大,则上述用户对上述查询词q对应的文档排序列表(y1,y2,......,ym)的排序结果越满意。

可选地,上述服务器获取上述目标文档排序列表的排序效果评估值,包括:

上述服务器根据用户对上述目标文档排序列表中的每个文档与上述历史查询词q的相关性进行打分的结果,对上述目标文档排序列表的排序效果进行评估以获取上述排序效果评估值。

具体地,上述用户对上述目标文档排序列表(y1,y2,......,ym)中的每个文档与上述历史查询词q的相关性进行打分,并给出打分结果,该打分结果可用集合(g1,g2,......,gm)。上述打分结果gi为上述集合(g1,g2,......,gm)的第i个值,gi∈(0,1,2,3)。

上述服务器根据预设公式计算上述排序效果评估值r,

其中,可理解为上述集合(g1,g2,......,gm)的第i个值,即gi。

在此需要说明的是,上述dcg英文全称为discountedcumulativegain,它是一个衡量服务器算法的指标。

其中,dcg@k的意义是根据搜索结果中的前k个结果来计算dcg的,k的取值与用户关注的搜索结果的个数有关。

举例说明,假设服务器为网页服务器,用户通常关注前十个(第一页)文档的排序质量,则k=10;假设服务器为问答系统服务器,用户通常关注第一个文档的好坏,则k=1。

s204、所述服务器将所述历史查询词、所述m个文档、所述目标文档列表排序和所述排序效果评估值作为一个训练样本,并放入训练样本集合中。

其中,上述训练样本可用集合(q,d1,......dm,σ,r)表示。q为上述查询词,d1,d2……dm为上述m个文档,σ为上述目标文档排序列表(y1,y2,......,ym),r为上述排序效果评估值。

上述训练样本集合可用集合该训练样本集合包含m个上述训练样本。

进一步,当上述训练样本集合中训练样本的数量达到预设数量m时,上述服务器执行步骤s205。

s205、当所述训练样本集中的训练样本的数量大于预设数量m时,所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

具体地,上述服务器利用强化学习算法对上述训练样本集合进行训练以获取上述排序模型可以看成上述服务器根据上述训练样本集合训练和强化学习算法训练求解使上述期望函数取最大值的参量θ',并将所述参量θ'替代所述排序模型中的参量θ,得到一个新的排序模型。这个过程可以看成求解出的θ。

具体的,求解θ过程如下:

首先,将查询词-文档对(q,di)替换为特征变量xi,则可将上述集合(d1,d2,......,dm)替换为特征变量集合s=(x1,......,xm),上述训练样本集合替换为排序模型f(q,di;θ)=f(xi;θ)。

其次,通过期望函数来求解θ,该θ为使期望函数值最大。该期望函数为其中,σ(i)为上述训练样本集合中第i样本中的历史查询词q对应的目标文档排序列表,s(i)为上述训练样本集合中第i样本中的历史查询词q对应的m个文档,r(i)为上述训练样本集合中第i样本中的排序效果评估值。

函数p(σ(i)|s(i);θ)为在上述m个文档s(i)的前提下得到文档列表σ(i)的概率,θ为使函数p(σ(i)|s(i);θ)取值最大的参量。

具体地,似然函数其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果相比于第i个目标文档排序列表的排序效果较好,其中,

最后通过梯度上升方法求解使上述函数值最大的θ,

其中,根据强化学习算法可知:

对数似然函数的梯度,

上述其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序相比于第i个目标文档效果排序列表的效果较好;r(i)=r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果与第i个目标文档排序列表的排序效果相同;r(i)>r(j)表示为上述训练样本集合中第i个目标文档排序列表的排序效果相比于第j个目标文档排序列表的排序效果较好。

在此需要说明的是,梯度上升方法为本领域人员的公知常识,故上述通过梯度上升方法求解使上述函数值最大的θ的过程在此不再叙述。

上述步骤s201-s205为上述步骤s103所述的训练上述排序模型的过程。

可以看出,在本发明实施例的方案中,所述服务器获取历史查询词,并获取与所述历史查询词相对应的m个文档;所述服务器对所述m个文档进行排序以获取目标文档排序列表;所述服务器获取所述目标文档排序列表的排序效果评估值;所述服务器将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为一个训练样本,并放入训练样本集合中;当所述训练样本集中的训练样本的数量大于预设数量时,所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。所述服务器根据所述训练样本集合和强化学习算法获取使期望函数取最大值的参量θ',并将所述参量θ'替代所述排序模型中的参量θ,所述期望函数的最大值表示排序指标的优化程度最高。与现有技术相比,将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为训练样本集合的一个训练样本,通过该训练样本集合和强化学习算法不断优化参量θ,使得期望函数的值不断增大,进而精确优化排序指标,有利于提高用户对查询词对应的目标文档排序列表的排序结果的满意度。

请参见图3,图3为本发明实施例提供的一种基于强化学习的排序学习方法的流程示意图,包括以下步骤:

s301、服务器获取所述历史查询词,并获取与所述历史查询词相关的m个文档。

s302、所述服务器对所述m个文档进行排序以获取目标文档排序列表。

s303、所述服务器获取所述目标文档排序列表的排序效果评估值。

在此需要说明的是,上述步骤s301-s303的具体描述可参照上述步骤s201-s203的相关描述,在此不再赘述。

s304、所述服务器将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为一个训练样本,并放入训练样本集合中所述服务器的计数器自加1。

其中,上述训练样本可用集合(q,d1,......,dm,σ,r)表示。q为上述查询词,d1,d2……,dm为上述m个文档,σ为上述目标文档排序列表(y1,y2,......,ym),r为上述排序效果评估值。

上述训练样本集合可用集合该训练样本集合包含m个上述训练样本。

上述服务器每当将一个上述训练样本放入上述训练样本集合中后,其计数器自加1。

s305、所述服务器的计数器是否计数至预设数量m。

其中,若上述服务器的计数器计数至预设数量m,则上述服务器执行步骤s306;反之,则上述服务器执行步骤s301。

其中,上述预设阈值m为大于1的整数。

s306、所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

其中,上述服务器将其计数器复位。

具体地,上述述服务器利用强化学习算法对上述训练样本集合进行训练以获取是述排序模型可以看成上述服务器根据上述训练样本集合训练和强化学习算法训练求解使上述期望函数取最大值的参量θ',并将所述参量θ'替代所述排序模型中的参量θ,得到一个新的排序模型。这个过程可以看成求解出的θ

具体的,求解θ过程如下:

首先,将查询词-文档对(q,di)替换为特征变量xi,则可将上述集合(d1,d2,......,dm)替换为特征变量集合s=(x1,......,xm),上述训练样本集合替换为排序模型f(q,di;θ)=f(xi;θ)。

其次,通过期望函数来求解θ,该θ为使期望函数值最大。该期望函数为其中,σ(i)为上述训练样本集合中第i样本中的历史查询词q对应的目标文档排序列表,s(i)为上述训练样本集合中第i样本中的历史查询词q对应的m个文档,r(i)为上述训练样本集合中第i样本中的排序效果评估值。

函数p(σ(i)|s(i);θ)为在上述m个文档s(i)的前提下得到文档列表σ(i)的概率,θ为使函数p(σ(i)|s(i);θ)取值最大的参量。

具体地,似然函数其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果相比于第i个目标文档排序列表的排序效果较好,其中,

最后通过梯度上升方法求解使上述函数值最大的θ,

其中,根据强化学习算法可知:

对数似然函数的梯度,

上述其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序相比于第i个目标文档排序列表的排序效果较好;r(i)=r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果与第i个目标文档排序列表的排序效果相同;r(i)>r(j)表示为上述训练样本集合中第i个目标文档排序列表的排序效果相比于第j个目标文档排序列表的排序效果较好。

在此需要说明的是,梯度上升方法为本领域人员的公知常识,故上述通过梯度上升方法求解使上述函数值最大的θ的过程在此不再叙述。

进一步,上述服务器执行步骤s305之后,再跳转执行上述步骤s301,同时其计数器开始计数。

参见图4,图4为本发明是实施例提供的另一种基于强化学习的排序学习方法的流程示意图。如图4所示,本发明实施例提供了另一种基于强化学习的排序学习的方法,包括:

s401、服务器获取历史查询词q,并所述历史查询词q检索后台数据库获取m个文档。

可选地,上述查询词可以是用户输入的,也可以是上述服务器自动获取的。

其中,上述m个文档中的任意一个文档的标题或者内容包含上述历史查询词q。上述m个文档可通过集合(d1,d2,......,dm)表示。

s402、所述服务器根据排序模型对所述m个文档进行排序以获取文档排序列表。

具体地,上述所述服务器根据上述排序模型对上述m个文档中的每个文档与上述历史查询词q的相关性进行打分以获取打分结果。

上述m个文档中的每个文档与上述历史查询词q的相关性包括上述历史查询词q在上述m个文档中每个文档的标题或者内容中出现的次数。

上述服务器根据上述打分结果的升序排序或者降序排序对上述m个文档进行排序以获取目标文档排序列表。

其中,上述排序模型为带参数的可微函数,可以f(q,d;θ)表示,q为上述历史查询词,d为根据该历史查询词q获取的文档,θ为参量。

上述服务器根据上述排序模型f(q,d;θ)对在上述m个文档中的每个文档中上述历史查询词出现的频率进行打分而获取的打分结果可以集合(d1',d2',......,dm')表示,上述服务器根据上述打分结果的升序排序或者降序排序对上述m个文档进行排序而获取的目标文档排序列表可以集合(y1,y2,......,ym)。

进一步,上述过程能以σ=(y1,y2,......,ym)=sort(d1,d2,......,dm)表示。该sort函数为降序排序模型或者升序排序模型。

s403、所述服务器根据用户行为对所述目标文档排序列表进行评估,并得到排序效果评估值r。

其中,上述预服务器的评估系统根据用户行为对上述目标文档排序列表进行评估具体为根据上述用户针对文档排序列表的点击行为进行评估,并给出排序效果评估值r。

在此需要说明的是,上述排序效果评估值r越大,则上述目标文档排序列表的排序效果越好。上述目标文档排序列表是以列表的形式在上述服务器的显示界面上显示的。

具体地,上述服务器接收到上述用户输入的历史查询词q后,从后台数据库中获取包含历史查询词q的m个文档,用(d1,d2,......,dn)表示。上述服务器对上述m个文档中的第i文档di根据上述排序模型f(q,d;θ)进行打分,并得到打分结果yi,yi=f(q,di;θ)。接着根据打分结果yi对上述m个文档进行降序排序或者升序排序,得到目标文档排序列表。

上述搜素引擎得到上述目标文档排序列表后,以页面的形式显示上述目标文档排序列表。该服务器获取用户在该页面中最后一次点击位置k,k∈{1,2,......,m}。排序效果评估值r通过评估函数r=1/k。若最后一次点击的位置靠前,上述k越小,则根据评估函数r=1/k可知排序效果评估值r越大,进一步可知用户对该历史查询词q的查询结果的满意度越高。

举例说明,假设上述服务器接收到上述用户输入的历史查询词q后,从后台数据库中检索获取包含上述历史查询词q的的10个文档,用(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10)表示。接着根据上述排序模型f(q,d;θ)进行打分,并根据打分结果对上述n个文档进行降序排序,得到文档排序列表,用σ=sort(y1,y2,y3,y4,y5,y6,y7,y8,y9,y10)表示。上述服务器将上述目标文档排序列表以页面的形式显示后。若检测到上述用户最后一次点击位置位于第5个文档上,则k=5,根据上述评估函数r=1/k可知排序效果评估值为0.2;若检测到上述用户最后一次点击位置位于第2个文档上,则k=2,根据上述评估函数r=1/k可知排序效果评估值为0.5;若检测到上述用户未进行任何点击操作,则k=100,根据上述评估函数r=1/k可知排序效果评估值为0.01。可以看出,若排序效果评估值越高,则表示用户对历史查询词q的查询结果的满意度越高。

s404、所述服务器收集所述历史查询词q、所述m个文档、所述目标文档排序列表和所述排序效果评估值,作为一个训练样本,并放入训练样本集合中。

具体地,上述训练样本可以用(q,d1,......,dm,σ,r)表示。q为上述历史查询词,d1,d2……dm为上述m个文档,σ为上述目标文档排序列表(y1,y2,......,ym),r为上述排序效果评估值。

进一步,当上述训练样本集合中训练样本的数量达到预设数量m时,上述服务器执行步骤s405。包含m个训练样本的训练样本集合可以用集合表示。

可选地,m为大于或等于1的整数,m可为1、2、3、5、8或者其他值。

s405、当所述训练样本集中的训练样本的数量大于预设数量m时,所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

具体地,上述服务器利用强化学习算法对上述训练样本集合进行训练以获取上述排序模型可以看成上述服务器根据上述训练样本集合训练和强化学习算法训练求解使上述期望函数取最大值的参量θ',并将所述参量θ'替代所述排序模型中的参量θ,得到一个新的排序模型。这个过程可以看成求解出的θ。

具体的,求解θ过程如下:

首先,将查询词-文档对(q,di)替换为特征变量xi,则可将上述集合(d1,d2,......,dm)替换为特征变量集合s=(x1,......,xm),上述训练样本集合替换为f(q,di;θ)=f(xi;θ),

其次,通过期望函数来求解θ,该θ为使期望函数值最大。该期望函数为其中,σ(i)为上述训练样本集合中第i样本中的历史查询词q对应的目标文档排序列表,s(i)为上述训练样本集合中第i样本中的历史查询词q对应的m个文档,r(i)为上述训练样本集合中第i样本中的排序效果评估值。

函数p(σ(i)|s(i);θ)为在上述n个文档s(i)的前提下得到文档排序列表σ(i)的概率。

具体地,似然函数其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果相比于第i个目标文档排序列表的排序结果较好,

最后通过梯度上升方法求解使上述函数值最大的θ,

其中,根据强化学习算法可知:

对数似然函数的梯度,

上述其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果相比于第i个目标文档排序列表的结果较好;r(i)=r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果与第i个目标文档排序列表的结果相同;r(i)>r(j)表示为上述训练样本集合中第i个文档排序列表的排序效果相比于第j个目标文档排序列表的结果较好。

在此需要说明的是,梯度上升方法为本领域人员的公知常识,故上述通过梯度上升方法求解使上述函数值最大的θ的过程在此不再叙述。

需要说明的是,图4所示的方法的各个步骤的具体实现过程可参见上述方法所述的具体实现过程,在此不再叙述。

参见图5,图5为本发明是实施例提供的另一种基于强化学习的排序学习方法的流程示意图。如图5所示,本发明实施例提供了另一种基于强化学习的排序学习的方法,包括:

s501、服务器获取历史查询词q,并根据所述历史查询词q检索后台数据库获取m个文档。

可选地,上述查询词可以是用户输入的,也可以是上述服务器自动获取的。

其中,上述m个文档可通过集合(d1,d2,......,dm)表示,该m个文档中的任意一个文档的标题或者内容包含上述历史查询词q。

s502、所述服务器根据排序模型对所述m个文档进行排序以获取文档排序列表。

具体地,上述所述服务器根据上述排序模型对上述m个文档中的每个文档与上述历史查询词q的相关性进行打分以获取打分结果。

上述m个文档中的每个文档与上述历史查询词q的相关性包括上述历史查询词q在上述m个文档中每个文档的标题或者内容中出现的次数。

上述服务器根据上述打分结果的升序排序或者降序排序对上述m个文档进行排序以获取文档排序列表。

其中,上述排序模型为带参数的可微函数,可以f(q,d;θ)表示,q为上述历史查询词,d为根据历史查询词q获取的文档,θ为参量。

上述服务器根据上述排序模型f(q,d;θ)对在上述m个文档中的每个文档中上述历史查询词出现的频率进行打分而获取的打分结果可以集合(d1',d2',......,dm')表示,上述服务器根据上述打分结果的升序排序或者降序排序对上述m个文档进行排序而获取的目标文档排序列表可以集合(y1,y2,......,ym)。

进一步,上述过程能以σ=(y1,y2,......,ym)=sort(d1,d2,......,dm)表示。该sort函数为降序排序模型或者升序排序模型。

s503、所述服务器获取用户对所述目标文档排序列表的整体打分结果或者所述目标文档排序列表中每个文档的打分结果,根据该打分结果获取文档排序评估值。

在此需要说明的是,上述排序效果评估值r越大,则上述目标文档排序列表的排序效果越好。

其中,上述服务器获取用户对上述目标文档排序列表中每个文档的打分结果,根据该打分结果获取文档排序评估值r。

具体地,上述用户对上述目标文档排序列表(y1,y2,......,ym)中的每个文档与上述历史查询词q的相关性进行打分,并给出打分结果,该打分结果可用集合(g1,g2,......,gm)。上述打分结果gi为上述集合(g1,g2,......,gm)的第i个值,gi∈(0,1,2,3)。

可选地,gi也可以取其他范围的值,比如(0,1,2,3,4,5)或者(0,1,2,3,4,5,6,7)。

进一步,上述服务器根据预设公式计算排序效果评估值r。该预设公式可为dcg@k,排序效果评估值其中,可理解为上述集合(g1,g2,......,gm)的第i个值,即gi。

在此需要说明的是,上述dcg英文全称为discountedcumulativegain,它是一个衡量服务器算法的指标。

其中,dcg@k的意义是根据搜索结果中的前k个结果来计算dcg的,k的取值与用户关注的搜索结果的个数有关。

举例说明,假设服务器为网页服务器,用户通常关注前十个(第一页)文档的排序质量,则k=10;假设服务器为问答系统服务器,用户通常关注第一个文档的好坏,则k=1。

可选地,所述服务器获取用户对所述目标文档排序列表的整体打分结果,根据该打分结果获取文档排序评估值。

举例说明,假设对上述排序结果的整体排序质量分为5个等级,则r∈(-2,-1,0,1,2),其中,2分表示整体排序的质量完美,1分表示整体排序的质量较好,0分表示整体排序的质量一般,-1分表示整体排序的质量较差,-2分表示整体排序的质量很差。人工根据上述5个等级对上述排序结果的排序质量进行打分。

s504、所述服务器将所述历史查询词,所述m个文档、所述目标文档排序列表和排序效果评估值,作为一个训练样本,并放入训练样本集合中。

具体地,上述训练样本可以用(q,d1,......dm,σ,r)表示。q为上述历史查询词,d1,d2……dm为上述m个文档,σ为上述目标文档排序列表(y1,y2,......,ym),r为上述排序效果评估值r。

进一步,当上述训练样本集合中训练样本的数量达到m时,上述服务器执行步骤s505。包含m个训练样本的训练样本集合可以用集合表示。

其中,m为大于或等于1的整数。可选地,m可为1、2、3、5、8或者其他值。

s505、当所述训练样本集中的训练样本的数量大于预设数量m时,所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

具体地,上述服务器利用强化学习算法对上述训练样本集合进行训练以获取上述排序模型可以看成上述服务器根据上述训练样本集合训练和强化学习算法训练求解使上述期望函数取最大值的参量θ',并将所述参量θ'替代所述排序模型中的参量θ,得到一个新的排序模型。这个过程可以看成求解出的θ。

具体的,求解θ过程如下:

首先,将查询词-文档对(q,di)替换为特征变量xi,则可将上述集合(d1,d2,......,dm)替换为特征变量集合s=(x1,......,xm),上述训练样本集合替换为排序模型f(q,di;θ)=f(xi;θ),

其次,通过期望函数来求解θ,该θ为使期望函数值最大。该期望函数为其中,σ(i)为上述训练样本集合中第i样本中的历史查询词q对应的文档排序列表,s(i)为上述训练样本集合中第i样本中的历史查询词q对应的m个文档,r(i)为上述训练样本集合中第i样本中的排序效果评估值。

函数p(σ(i)|s(i);θ)为在上述n个文档s(i)的前提下得到文档排序列表σ(i)的概率。

具体地,似然函数其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果相比于第i个目标文档排序列表的结果较好,

最后通过梯度上升方法求解使上述函数值最大的θ,

其中,根据强化学习算法可知:

对数似然函数的梯度,

上述其中,r(i)<r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果相比于第i个目标文档排序列表的结果较好;r(i)=r(j)表示为上述训练样本集合中第j个目标文档排序列表的排序效果与第i个目标文档排序列表的结果相同;r(i)>r(j)表示为上述训练样本集合中第i个目标文档排序列表的排序效果相比于第j个目标文档排序列表的结果较好。

在此需要说明的是,梯度上升方法为本领域人员的公知常识,故上述通过梯度上升方法求解使上述函数值最大的θ的过程在此不再叙述。

本发明实施例还提供了一种服务器600,如图6所示,包括:

接收模块601,用于接收用户输入的查询词;

第一获取模块602,用于获取与所述查询词相匹配的n个文档;其中,所述n为自然数;

第一排序模块603,用于利用排序模型对所述n个文档进行排序以获取文档排序列表;其中,所述排序模型是根据强化学习算法、历史查询词以及与所述历史查询词相对应的历史文档、所述历史查询词对应的文档排序列表和排序效果评估值训练得到的;

可选地,在所述第一排序模块603利用第一排序模型对所述n个文档进行排序以获取文档排序列表之前,所述服务器600还包括:

第二获取模块605,用于获取所述历史查询词,并获取与所述历史查询词相关的m个文档。

第二排序模块606,用于根据排序模型对所述m个文档进行排序以获取目标文档排序列表。

其中,上述第二排序模块606包括:

打分单元6061,用于根据所述排序模型对所述m个文档中的每个文档中与查询词的相关性进行打分以获取打分结果;

第二排序单元6062,用于根据所述打分结果的升序排序或者降序排序对所述m个文档进行排序以获取目标文档排序列表。

第三获取模块607,用于获取所述目标文档排序列表的排序效果评估值。

可选地,上述第三获取模块607具体用于根据用户行为对上述目标文档排序列表的排序效果进行评估,获取排序效果的评估值。

可选地,上述第三获取模块607具体用于获取用户对上述目标文档排序列表的排序效果进行评估所给出的数值,作为上述排序效果评估值。

可选地,上述第三获取模块607具体用于根据用户对上述目标文档排序列表中的每个文档与历史查询词的相关性进行打分的结果,对上述目标文档排序列表的排序效果进行评估以获取上述排序效果评估值。

收集模块608,用于将所述查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为一个训练样本,并放入训练样本集合中。

训练模块609,用于当所述训练样本集中的训练样本的数量大于预设数量时,利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

显示模块604,用于向所述用户呈现所述文档排序列表。

需要说明的是,上述各模块(接收模块601、第一获取模块602、第一排序模块603、显示模块604、第二获取模块605、第二排序模块606、第三获取模块607、收集模块608、训练模块609)用于执行上述方法的相关步骤。

在本实施例中,服务器600是以模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specificintegratedcircuit,asic),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上接收模块601、第一获取模块602、第一排序模块603、显示模块604、第二获取模块605、第二排序模块606、第三获取模块607、收集模块608、训练模块609可通过图8所示的终端设备的处理器801来实现。

如图8所示,服务器800可以以图8中的结构来实现,该服务器800包括至少一个处理器801,至少一个存储器802以及至少一个通信接口803。所述处理器801、所述存储器802和所述通信接口803通过所述通信总线连接并完成相互间的通信。

处理器801可以是通用中央处理器(cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制以上方案程序执行的集成电路。

通信接口803,用于与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wirelesslocalareanetworks,wlan)等。

存储器802可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,所述存储器802用于存储执行以上方案的应用程序代码,并由处理器701来控制执行。所述处理器801用于执行所述存储器802中存储的应用程序代码。

存储器802存储的代码可执行以上提供的终端设备执行的上述基于强化学习的排序学习方法,比如所述服务器获取历史查询词,并获取与所述历史查询词相对应的m个文档;所述服务器对所述m个文档进行排序以获取目标文档排序列表;所述服务器获取所述目标文档排序列表的排序效果评估值;所述服务器将所述历史查询词、所述m个文档、所述目标文档排序列表和所述排序效果评估值作为一个训练样本,并放入训练样本集合中;当所述训练样本集中的训练样本的数量大于预设数量时,所述服务器利用强化学习算法对所述训练样本集合进行训练以获取所述排序模型。

本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种基于强化学习的排序学习方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1