首页> 中国专利> 一种融合用户类别标签的相似问题检索方法及装置

一种融合用户类别标签的相似问题检索方法及装置

摘要

本发明公开了一种融合用户类别标签的相似问题检索方法及其装置,所述包括:步骤1、计算每个用户类别标签之间的相似度;步骤2、根据用户输入的查询问题,建立融合用户类别标签的检索模型;步骤3、根据所述融合用户类别标签的检索模型,在所述查询问题对应的查询问题类别标签和相似类别标签下的历史问题中进行检索,获得所述查询问题的相似问题。因此,最终的相似问题检索仅仅考虑与查询问题在类别标签上相似或相近的历史问题,大大减少了搜索的空间以及主题不相关历史问题的干扰,有效地提高了检索的效率和性能。经过实验证明,在大规模的社区问答数据集中,相似问题检索的效率提高了81.77倍,检索的性能提升了11.25%。

著录项

  • 公开/公告号CN103218436A

    专利类型发明专利

  • 公开/公告日2013-07-24

    原文格式PDF

  • 申请/专利权人 中国科学院自动化研究所;

    申请/专利号CN201310133077.1

  • 发明设计人 周光有;赵军;

    申请日2013-04-17

  • 分类号G06F17/30(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人宋焰琴

  • 地址 100190 北京市海淀区中关村东路95号

  • 入库时间 2024-02-19 19:41:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-18

    授权

    授权

  • 2013-08-21

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130417

    实质审查的生效

  • 2013-07-24

    公开

    公开

说明书

技术领域

本发明涉及自然语言处理技术领域,是一种融合用户类别标签的相似 问题检索方法及装置。

背景技术

问答系统是自然语言处理领域的重要研究课题。然而,受限于自然语 言处理和人工智能的技术水平,自动问答系统只能较好地回答一些相对简 单的事实性、列表性和定义性提问,因而离用户更广泛的真实信息需求仍 有很大差距,这极大地限制了自动问答系统的实用性。随着Web2.0的兴 起,基于用户生成(User-Generated Content,UGC)的互联网服务越来 越流行,社区问答应运而生,例如Yahoo!Answers、百度知道等。区别于 自动问答系统,在社区问答上,用户可以提出任何类型的问题,也可以回 答其它用户任何类型的问题。相似问题检索是社区问答分析的基础,占有 很重要的位置。相似问题检索是指从大规模的问题库中检索出与查询问题 在语义上相似或相近的历史问题,并将这些问题对应的答案返回给用户, 用户回答该查询问题。因此,社区问答相似问题检索具有重要的理论意义 和实用价值。

目前社区问答相似问题检索存在的一个本质缺陷是:对于用户给定的 查询问题,社区问答中所有的历史问题都需要参与相似度计算,尽管有大 量的历史问题与查询问题存在一定数量的重叠词条,但它们的类别标签是 完全不同的,这些类别标签下的历史问题也是不相关的。因此,这些大量 的无关历史问题将会增加检索系统搜索的空间以及不相关历史问题的干 扰,影响相似问题检索的效率和性能。

在社区问答中,所有的问题(查询问题和历史问题)都按照一定的类 别标签结构组织。当用户提出一个查询问题后,系统需要用户从预先定义 的类别标签结构中选择一个合适的类别作为该问题的类别标签。解决上述 问题的一个方法就是融合用户类别标签,在检索的过程中根据查询问题与 历史问题之间的类别标签来判断查询问题与历史问题是否是相关的。而融 合用户类别标签的方法的前提是首先要构造一个有效的类别标签相似度 计算方法,其次是这个相似度阈值的设置要合理,不能损失太多的准确率。 而直接使用查询问题和历史问题的类别标签进行匹配,相似问题检索的准 确率会大打折扣,主要原因是在社区问答中,并不是所有相似或相关的历 史问题都来自于与查询问题完全匹配的类别标签下,其中有大量的相关历 史问题来自于与查询问题在类别上相似的类别标签下。因此,本发明首先 需要计算类别标签之间的相似度,如果查询问题与历史问题之间的类别标 签相似度很高,则查询问题与历史问题具有较高的主题相似度。然后根据 预先设定的阈值,如果查询问题与历史问题之间的类别标签相似度低于这 个阈值,将该类别下的所有历史问题过滤掉,不参与最后的检索结果排序。

根据上述思路,本发明主要针对社区问答相似问题检索的效率和性能 入手,成功地将用户类别标签引入相似问题检索的过程中,通过实验证明, 该方法有效地提高了相似问题检索的效率和性能。

发明内容

有鉴于此,本发明通过充分利用社区问答中的用户类别标签,将与查 询问题在类别上无关的历史问题过滤掉,在最终的检索排序结果中仅仅考 虑与查询问题在类似上相似或相似的类别下的历史问题,从而减少相似问 题搜索的空间以及主题不相关历史问题的干扰,提高相似问题检索的效率 和性能。

本发明公开了一种融合用户类别标签的相似问题检索方法,包括如下 步骤:

步骤1、计算每个用户类别标签之间的相似度;

步骤2、根据用户输入的查询问题,建立融合用户类别标签的检索模 型;

步骤3、根据所述融合用户类别标签的检索模型,在所述查询问题对 应的查询问题类别标签和相似类别标签下的历史问题中进行检索,获得所 述查询问题的相似问题。

本发明还公开了一种融合用户类别标签的相似问题检索装置,其包括:

相似度计算模块,其用于计算每个用户类别标签之间的相似度;

融合用户类别标签的检索模块,其用于根据用户输入的查询问题,建 立融合用户类别标签的检索模型,并根据所述融合用户类别标签的检索模 型,在所述查询问题对应的查询问题类别标签和相似类别标签下的历史问 题中进行检索,获得所述查询问题的相似问题。

本发明采用融合用户类别标签的思想来提升相似问题检索的效率和 性能。通过计算用户类别标签之间的相似度,根据预先设定的阈值,将与 查询问题在类别标签上不相关的历史问题过滤掉,然后在与查询问题在类 别标签上相似或相近的历史问题库中进行检索,从而提高了相似问题检索 的效率和性能。

附图说明

图1是本发明中融合用户类别标签的相似问题检索方法流程图。

图2是本发明中融合用户类别标签的问答相似问题检索装置结构图。

图3是一种社区问答类别标签示例的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实 施例,并参照附图,对本发明作进一步的详细说明。

本发明公开了一种融合用户类别标签的相似问题检索方法及装置。其 可以分为离线过程和在线过程两部分。离线过程即从大规模的历史问题库 中获得类别标签之间的相似度。在线过程则通过建立融合用户类别标签的 检索模型,检索与所述查询问题相似度最高的几个历史问题并返回给用户。

图1示出了本发明提出的一种融合用户类别标签的相似问题检索方法。 如图1所示,其包括离线部分和在线部分两个阶段。其中离线过程包括:

步骤(1)、将历史问题库中每个用户类别下的所有历史问题合并成一个 大的文档,每个文档实质上对应一个用户类别标签c。

步骤(2)、利用LDAGibbs++工具,对上述文档集合进行主题分析后, 每个用户类别c都可以表示成一个Z维的主题分布向量p(z|c)。

步骤(3)、利用Jensen香农距离计算每个用户类别标签之间的相似度。

所述在线过程包括:

步骤(1)、建立融合用户类别标签的检索模型;

步骤(2)、根据建立的检索模型,设置类别标签相似度的阈值;

步骤(3)、根据阈值,将与查询问题在类别标签上不相关的历史问题过 滤掉。然后在与查询问题在类别标签上相同或相似的历史问题构成的集合 中进行检索。按照查询问题与历史问题之间的相似度进行排序,将排序最 高的N个历史问题作为最终的结果输出,同时将这些相似问题对应的答案 返回给用户。

图2示出了本发明中提出的融合用户类别标签的相似问题检索装置。 如图2所示,该检索装置包括:用户类别标签相似度计算模块、融合用户 类别标签的检索模块、类别标签相似度的阈值设定模块以及查询问题类别 下相似度计算模块。

所述用户类别标签相似度计算模块,用于计算两个用户类别标签之间 的相似度。

类别标签相似度的常用计算方法是基于该类别下文本内容分析的方 法。然而,由于用户类别标签下包含的问题数目往往很少,如果直接采用 上述方法,因数据稀疏的问题,导致相似度计算的准确性会下降。因此, 本发明中利用主题模型来计算两个类别标签之间的相似度。所述两个类别 标签之间的相似度的主题模型,其基本假设是如果两个类别标签越相似, 则它们对应同一个主题的概率也较大。

图3示出了一种社区问答类别标签示例的结构示意图。如图3所示, 类别标签“Monitors”、“Scanners”和“Printers”都是相似的类别,因 为它们均属于同一个主题“Computer Hardware”。

所述用户类别标签相似度计算模块首先将同一个用户类别下的所有 历史问题合并成一个大的文档,合并后的每个文档实质上对应一个类别标 签c。然后,所述用户类别标签相似度计算模块利用GibbsLDA++工具识别 每个类别标签c的主题信息,并将每个类别标签c表示成一个Z维的主题分 布向量p(z|c),其中Z表示主题的数目,这样类别标签之间的相似度可以 转化成类别标签主题分布向量之间的距离。最后,所述用户类别标签相似 度计算模块利用Jensen香农距离来度量两个类别标签之间的相似度。从 用户类别标签cj到ci的Jensen香农距离可以用公式表示如下:

R(cjci)=12{PKL(cj||ci)+PKL(ci||cj)}

其中,PKL(cj||ci)=Σzp(z|cj)logp(z|cj)p(z|ci)表示KL距离(Kullback-Leibler  divergence)。如果R(cj→ci)∈[0,1]越大,则类别标签cj与ci越相似。当所有 的类别标签两两都计算完毕后,可以获得类别标签相似度矩阵 Mc={mji=R(cj→ci)}

所述融合用户类别标签的检索模块用于根据用户类别标签之间的相 似度建立融合用户类别标签的检索模型。本发明中定义的融合类别标签的 检索模型,可以用如下公式表示:

PRCS(d|q,cq)=1A{αPBCS(d|q,cq)+ΣscqRelated(cq)R(scqcq)PBCS(d|q,scq)}

其中,公式左边PRCS(d|q,cq)表示在给定查询问题类别标签cq的条件下, 查询问题q和历史问题d之间的关联概率;公式右边PBCS(d|q,Cq)表示给定 查询问题类别标签cq的条件下,查询问题q和历史问题d之间的似然概率; PBCS(d|q,scq)表示查询问题与相似类别标签scq下历史问题d之间的似然概 率;Related(cq)表示与cq相似的类别标签集合,scq表示与cq相似的类别标 签;R(scq→cq)表示类别标签scq与类别标签cq之间的相似度; 表示归一化因子,使得公式左边PRcs(d|q,cq)的概率 在0到1之间;参数α控制公式右边PBCS(d|q,cq)与 ΣscqRelated(cq)R(scqcq)PBCS(d|q,scq)之间的相对权重大小。

所述类别标签相似度的阈值设定模块用于设定类别标签相似度的阈 值。本发明中如下定义Related(cq):

scq∈Related(cq),如果R(scq→cq)≥δ

其中,参数δ∈[0,1]为类别标签相似度的阈值,该参数可以通过在开发 集上调试获得最佳的参数选择。

由于在类别标签相似度的阈值设定模块设置特定的阈值后,上述融合 用户类别标签的检索模块在计算的过程中,仅仅需要考虑与查询问题在类 别标签上相似或相近的历史问题,这些类别标签下的历史问题数目只占到 总数的5%左右。因此,系统的搜索空间大大减低,同时也避免了不相关 历史问题的干扰,检索的效率和性能明显提升。

所述查询问题类别标签下相似度计算模块用于计算查询问题类别标 签下查询问题与历史问题之间的相似度。

社区问答中每个问题(查询问题和历史问题)都有唯一的类别标签, 如图3所示的是Yahoo!Answers社区问答的部分类别标签结构图。本发 明定义cq表示查询问题q的类别标签,定义c(d)为历史问题d的类别标签。 查询问题类别标签cq下,查询问题与所述查询问题类别标签下的历史问题 之间的似然概率用如下的公式表示:

PBCS(d|q,cq)∝PBCS(q,cq|d)P(d)

PBCS(q,cq|d)=PBCS(q|cq,d)P(cq|d)

p(cq|d)=1ifcq=c(d)0otherwise

其中,PBCS(d|q,cq)表示在查询问题类别标签cq的条件下,查询问题q和 历史问题d之间的似然概率;PBCS(q,cq|d)表示查询问题q和历史问题d在特 定类别标签cq下的后验概率;P(d)表示历史问题d的先验,一般设置为常 数;PBCS(q|cq,d)表示在给定查询问题类别标签cq的条件下,查询问题q和 历史问题d之间的相似度;P(cq|d)表示历史问题d属于类别标签cq的概率; c(d)表示历史问题d对应的用户类别标签。查询问题与相似类别标签scq下 历史问题d之间的似然概率和所述查询问题与所述查询问题类别标签下的 历史问题之间的似然概率的计算方式一样。

上述查询问题q和历史问题d在查询问题类别标签cq下的相似度 PBCS(q|cq,d),优先地采用一元语言模型(unigram language model)计算。 为了避免零概率的出现,采用Jelinek-Mercer平滑方法,因为该平滑方 法性能良好并且计算复杂度低。PBCS(q|cq,d)可以采用如下的公式计算:

PBCS(q|cq,d)=ΠwqPLM(w|cq,d)

PLM(w|cq,d)=(1-λ)Pml(w|d)+λPml(w|cq)

Pml(w|d)=N(w,d)|d|

Pml(w|cq)=N(w,cq)|cq|

其中,PBCS(q|cq,d)表示在给定查询问题类别标签cq的条件下,查询问 题q和历史问题d之间的相似度;PLM(w|cq,d)表示历史问题d的一元语言模 型;Pml(w|d)表示查询问题q中词w在历史问题d中的极大似然概率; Pml(w|cq)表示查询问题中的词w在查询问题类别标签cq中的极大似然概率; 参数λ∈[0,1]表示平滑参数,N(w,d)表示词w在历史问题d中的频率, N(w,cq)表示词w在查询问题类别标签cq中的频率,|d|表示历史问题d中包 含的词数目,|cq|表示查询问题类别标签cq下的单词数目。

为了说明本发明提出的上述融合用户类别标签的问答相似问题检索 方法及其装置的性能,通过下面的两组实验数据来验证其性能。所述实验 主要分为两个部分,分别验证融合用户类别标签对系统检索效率的提升以 及对检索性能的提高。

本发明的实验数据来源于Yahoo!Answers社区问答系统,在这些历 史问题集中,每个问题主要由四部分组成:问题的题目、问题的类别、问 题的描述以及问题的答案。我们所采用的数据集包含1232个用户类别标 签,2,288,607个问答对。为了评价该发明方法的有效性,另外选择了 252个查询问题作为测试数据集。对于测试数据集中的每个查询问题,采 用语言模型检索出最好的20个结果,然后让两个标注者去手工标注。如 果返回的历史问题与该查询问题相似,就标注为“相关”,否则标注为“不 相关”。如果两个标注者的标注结构有冲突,让第三个人来做最终的决定。 在判断历史问题与查询问题是否相似的过程中,标注者仅仅知道问题本身。

假设Qt表示测试问题集,本发明采用如下两个评价指标:

平均正确率(MAP):其计算公式如下:

MAP(Qt)=1QtΣqQt1mqΣk=1mqPrecision(Rk)

其中,mq是与查询问题q相关的问题数目,Rk是检索结果中第k个问 题及其之前全部问题的集合,Precision(Rk)是Rk与q相关的问题比例。该指 标反映了测试结果整体上的平均水平。

PrecisionK(PK):定义为系统对于查询问题返回的前K个结果的准 确率。整个测试集的PrecisionK为测试集合中所有问题的PrecisionK 的平均值,其计算公式如下:

P(q)K=kK

其中,k表示检索系统返回的前k个问题中相关问题数目,K表示检 索系统返回的问题总数目。因此,

PK=Σq=1Qtp(q)KQt

考虑到用户在查看检索结果时,往往希望在前面几个结果就找到自己 所需要的信息,因此常常设置K=10。

系统运行在4G内存,Intel Core2.5GHz CPU的PC机上,采用JAVA 编程语言。

本发明通过融合用户类别标签,将与查询问题在类别标签上不相关的 历史问题过滤掉,从而减小相似问题搜索的空间,提高检索的效率。表1 给出了检索效率的实验。

检索方法 平均搜索空间 平均响应时间(以秒为单位) LM 2,288,607 0.351 RCS_LM 101,466(↓95.57%) 0.064(↓81.77%)

表1:融合用户类别标签后系统的检索效率。

如表1所示,LM表示传统的基于语言模型的相似问题检索方法, RCS_LM表示融合用户类别标签的相似问题检索方法,平均搜索空间指对 于每一个查询问题,系统平均需要从多大规模的问题集中找到与该查询相 似的历史问题,平均响应时间只指对于每一个查询问题,系统返回最相似 的前10个历史问题平均需要的时间,以秒为单位。通过表1的对比,我 们可以看到,本发明的方法可以使搜索空间的规模减小95.57%,检索的效 率提高81.77%。实验结果证明,本发明可以有效地提高相似问题检索的效 率。

在社区问答中,尽管有大量的历史问题与查询问题存在一定数量的重 叠词条,但它们在类别标签上是完全不相关的,这些不相关的历史问题会 严重干扰结果的准确率。本发明融合用户类别标签,可以将这些主题不相 关的历史问题过滤掉,只保留主题相同或相关的历史问题。表2给出了融 合用户标签后相似问题检索性能的实验。

检索方法 MAP P10 LM 0.382 0.240 RCS_LM 0.453(↑18.59%) 0.267(↑11.25%)

表2:融合用户类别标签后相似问题检索性能的实验

如表2所示,融合用户标签后,相似问题检索的性能有明显的提升。 如MAP提升了18.59%,P10提升了11.25%。实验结果证明,本发明可 以较好地提升相似问题检索的性能。

从以上表1和表2的实验结果可以看到,融合用户类别标签的相似问 题检索方法在效率和性能都取得了不错的效果,这个方法被证明是有效的。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已, 并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、 等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号