著录项信息
专利名称 | 基于语言模型的专家推荐方法 |
申请号 | CN201110373475.1 | 申请日期 | 2011-11-22 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2012-06-13 | 公开/公告号 | CN102495860A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 北京大学 | 申请人地址 | 北京市海淀区颐和园路5号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京大学 | 当前权利人 | 北京大学 |
发明人 | 崔斌;姚俊杰;阴红志;刘晴芸 |
代理机构 | 北京路浩知识产权代理有限公司 | 代理人 | 王莹 |
摘要
本发明是一种基于语言模型的专家推荐方法,包括步骤:S1:收集用户的发布内容来表征相应用户的知识特征,采用文本检索中的语言模型来对用户的知识特征进行基于概率的文本建模,建立的模型中具有用户专家度数据索引;S2:在用户和用户之间建立用户关系模型,用户关系模型中具有用户关系图,用户的专家度能互相给对方产生影响;S3:在给出一个查询时,根据每个用户的专家度索引信息计算原始专家度,并给出原始用户排序列表;S4:根据用户关系图之间的相互联系调整每个用户的专家度,得到最终的用户排序列表。
1.一种基于语言模型的专家推荐方法,其特征在于,包括步骤:
S1:收集用户的发布内容来表征相应用户的知识特征,采用文本检索中的语言模型来对用户的知识特征进行基于概率的文本建模,建立的模型中具有用户专家度数据索引;
将用户发的每个帖子作为一个词库样本建模,推测背后产生该样本的模型,从而计算这个模型产生查询的概率;
在两个层面上建立语言模型,第一是针对用户的每个帖子建立独立的语言模型Mtd,第二是将所有用户的所有帖子看作一个文本建立语言模型Mc;整个查询的出现概率为其中,q为查询文本;β为参数,用来平衡整个帖子集和单个帖子之间的权重;tεq,为查询文本中的词;td为用户所发的单个帖子;c为所有用户的所有帖子,即整个帖子集;p(t|Mtd)为用户所有帖子产生查询词t的概率;p(t|Mc)为所有用户的所有帖子产生查询词t的概率;p(q|Mtd)为用户的所有帖子产生查询文本q的概率;
S2:在用户和用户之间建立用户关系模型,用户关系模型中具有用户关系图,用户的专家度能互相给对方产生影响;
所述用户关系模型是基于Google的PageRank算法建立的;
S3:在给出一个查询时,根据每个用户的专家度索引信息计算原始专家度,并给出原始用户排序列表;
S4:根据用户关系图之间的相互联系调整每个用户的专家度,得到最终的用户排序列表。
2.如权利要求1所述的方法,其特征在于,在计算帖子和最佳答案相似度上,采用的是向量模型;给待评估质量的帖子和最佳答案分别建立高维向量空间,计算两个向量间的夹角,夹角的余弦函数值越大则两个向量的夹角越小,视为二者越相似,该帖子和最佳答案的向量相似度
其中,BestAns为最佳答案;Sim(td,BestAns)为用户所发的单个帖子和最佳答案的向量相似度。
3.如权利要求1所述的方法,其特征在于,把用户所有回答的帖子集看作一个大的文本库,对这个文本库建立语言模型,计算这个语言模型能够产生当前答案的概率,根据答案内容是否来源于用户的知识特征体系来判定答案的质量。
4.如权利要求1所述的方法,其特征在于,长度修正采用的计算公式为
5.如权利要求1所述的方法,其特征在于,所述步骤S1中用户的知识特征以文本倒排索引形式存储,并支持持续的更新和后续清理操作。
6.如权利要求1所述的方法,其特征在于,步骤S1中建立的模型的参数估计可采用点估计、矩估计或最大似然估计。
7.如权利要求1所述的方法,其特征在于,在根据建立的语言模型计算出用户的专家度排序后,通过用户的PageRank值进行修正,每个用户在利用此用户的PageRank值之前要乘以共享的问题数作为加权。
基于语言模型的专家推荐方法\n技术领域\n[0001] 本发明涉及互联网技术领域,具体涉及一种基于语言模型的专家推荐方法。\n背景技术\n[0002] 专家推荐是指从一批候选用户中建模其权威和特长领域,在给定的查询请求下推荐出匹配的专家用户的过程。,在海量的信息堆积中存在了大量的有用但尚未挖掘的信息,也有急需解决的问题因为没有遇到合适的时机变成不流通的信息死角。专家推荐的目的是希望把信息传递的方向从单一的搜寻变成双向的交流,能够提供有效的信息推入机制,从而加快网络信息有效的流通。作为一个重要的用户管理分支,此前的专家推荐方法或受限于传统领域的应用情景和模型考量等,或仅采用简单的用户建模和排序方法。他们在灵活性和概括性上都有不足,无法适应新的互联网环境下的专家识别。\n[0003] 网络互动社区的兴起使得人们越来越多地参与到信息的提供与获取中。在大量的提问和回答中隐藏着对特定信息比较精通的专家,他们掌握的知识能够正确地对用户提出的问题给出答案,他们给出的回答也因此更具有价值。相对于过去提问后的等待,主动地寻找专家,将问题有针对性地推送给能够回答的用户,提高答案的正确率和回答的速率,能够大大增加社区中问答网络信息互动的及时性,更加符合问答式社区的发展势头。\n[0004] 然而专家并没有在社区中大量标出。在诸如Tripadvisor,酷讯和去哪儿等旅游论坛中,有网络管理员会对大量的回帖做出判断来识别专家,这种人工识别辨识出来的专家虽然拥有很高的成功率,但是效率十分低下。在百度知道,雅虎知识堂等国内的网站中,均通过积分来进行排名,而积分多取决于回答问题的数量、活跃程度,这些不能作为专家的唯一判断依据。尤其是对于回答质量不高的用户,很可能通过回答的数量和活跃程度占据了很大优势,可能掩盖掉真正的专家用户的表现。\n[0005] 研究者希望对用户发表的帖子进行语义识别,从内容上进行分析,从而确定用户回答的质量。由此对用户是否为某一领域的专家做出更准确的判断。\n[0006] 判断查询和文档是否相关有很多种判定方法,例如布尔模型、向量模型等。通过概率也能给出查询需求和文档的相关程度。通常用户会认为一个文档如果和查询相关则会在文档中出现查询中的词,概率模型计算的是查询需求和文档同时出现的概率,即P(1|q,d),其中q为查询需求,d为文档。\n[0007] 传统的概率模型对整个查询和文档的相关度进行建模,而在语言模型中则是对文档进行建模,计算这个文档的语言模型产生查询的概率,即P(q|Md),其中q为查询,Md为对文档建立的语言模型。在语言模型中,文档被看作是一个可能产生查询需求的“词库”,每次给出一个查询需求,通过计算产生概率来确定相关度。\n发明内容\n[0008] (一)要解决的技术问题\n[0009] 本发明的目的是提出一种基于语言模型的专家推荐方法,能够主动地寻找专家,将问题有针对性地推送给能够回答的用户,提高答案的正确率和回答的速率,增加社区中问答网络信息互动的及时性。\n[0010] (二)技术方案\n[0011] 为了解决上述技术问题,本发明提供一种基于语言模型的专家推荐方法,包括步骤:\n[0012] S1:收集用户的发布内容来表征相应用户的知识特征,采用文本检索中的语言模型来对用户的知识特征进行基于概率的文本建模,建立的模型中具有用户专家度数据索引;\n[0013] S2:在用户和用户之间建立用户关系模型,用户关系模型中具有用户关系图,用户的专家度能互相给对方产生影响;\n[0014] S3:在给出一个查询时,根据每个用户的专家度索引信息计算原始专家度,并给出原始用户排序列表;\n[0015] S4:根据用户关系图之间的相互联系调整每个用户的专家度,得到最终的用户排序列表。\n[0016] 优选地,所述步骤S1中是将用户发的每个帖子作为一个词库样本建模,推测背后产生该样本的模型,从而计算这个模型产生查询的概率。\n[0017] 优选地,在两个层面上建立语言模型,第一是针对用户的每个帖子建立独立的语言模型Mtd,第二是将所有用户的所有帖子看作一个文本建立语言模型Mc;整个查询的出现概率为\n[0018] \n[0019] 其中,q为查询文本;β为参数,用来平衡整个帖子集和单个帖子之间的权重。\n[0020] 优选地,在计算帖子和最佳答案相似度上,采用的是向量模型;给待评估质量的帖子和最佳答案分别建立高维向量空间,计算两个向量间的夹角,夹角的余弦函数值越大则两个向量的夹角越小,视为二者越相似,该帖子和最佳答案的向量相似度[0021] \n[0022] 优选地,把用户所有回答的帖子集看作一个大的文本库,对这个文本库建立语言模型,计算这个语言模型能够产生当前答案的概率,根据答案内容是否来源于用户的知识特征体系来判定答案的质量。\n[0023] 优选地,长度修正采用的计算公式为\n[0024] \n[0025] 优选地,所述步骤S1中用户的知识特征以文本倒排索引形式存储,并支持持续的更新和后续清理操作。\n[0026] 优选地,步骤S1中建立的模型的参数估计可采用点估计、矩估计或最大似然估计。\n[0027] 优选地,所述步骤S2基于Google的PageRank算法建立用户关系模型。\n[0028] 优选地,在根据建立的语言模型计算出用户的专家度排序后,通过用户的PageRank值进行修正,每个用户在利用此用户的PageRank值之前要乘以共享的问题数作为加权。\n[0029] (三)有益效果\n[0030] 本发明通过建立语言模型和用户关系模型,提取用户和数据之间的专家度,然后通过从数据中提取的用户和用户之间的关系图来修正用户专家度排序,相对于过去提问后的等待,主动地寻找专家,将问题有针对性地推送给能够回答的用户,提高答案的正确率和回答的速率,能够大大增加社区中问答网络信息互动的及时性,更加符合问答式社区的发展势头。\n附图说明\n[0031] 图1为本发明方法的结构流程图;\n[0032] 图2为本发明实施例中一个测评指标对比图,每项指标从左到右分别为query1-6;\n[0033] 图3为本发明实施例中另一测评指标对比图,每项指标从左到右分别为query1-6。\n具体实施方式\n[0034] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不是限制本发明的范围。\n[0035] 本发明所述的基于语言模型的专家推荐方法的结构流程图如图1所示,其中虚线框标明算法模型,实线框标明数据。流程图从上至下,从左至右运行。上方为静态的,可提前建立;下方为动态的,需根据用户输入即时计算。本发明包括步骤:S1:收集用户的发布内容来表征相应用户的知识特征,采用文本检索中的语言模型来对用户的知识特征进行基于概率的文本建模,建立的模型中具有用户专家度数据索引;S2:在用户和用户之间建立用户关系模型,用户关系模型中具有用户关系图,用户的专家度能互相给对方产生影响;S3:\n在给出一个查询时,根据每个用户的专家度索引信息计算原始专家度,并给出原始用户排序列表;S4:根据用户关系图之间的相互联系调整每个用户的专家度,得到最终的用户排序列表。\n[0036] 语言模型方法和推导\n[0037] 语言模型是概率模型的一种,在本专利中要解决的问题就是根据输入的问题提供与此最相关的用户列表。即,要根据查询文本和用户已有的发帖信息得到p(u|q),其中u为用户,q为查询文本。\n[0038] 根据贝叶斯定理,有\n[0039] \n[0040] 对于同一个查询的用户概率,p(q)的值在比较的时候是一致的,可以省略。在此假设p(u)为均匀分布,因此只需根据p(q|u)进行用户排序即可。在这里,通过用户u的所有回答的帖子作为u的建模依据。因此\n[0041] p(q|u)-p(q|Mpf) =f(p(q|Mtd1),p(q|Mtd2),...,p(q|Mtdn))[0042] 其中pf为用户u的所有帖子的集合,td1∈pf,其中i=1,2,...,n。\n[0043] 本发明模型是将用户发的每个帖子作为一个词库样本建模,推测背后产生该样本的模型,从而计算这个模型产生查询的概率。在建模时候需要计算出文本中每个词的产生概率。参数估计可采用点估计,矩估计,最大似然估计等。在实验中参数估计采用最大似然估计。\n[0044] 最大似然估计(MLE)假设一个文本背后存在一个概率分布,而此文本表现为整个分布的一个样本。\n[0045] p(t1,t2,...,tn;θ)=P(T1=t1,T2=t2,...,Tn=tn)\n[0046] 其中θ为未知参数。\n[0047] 为了使得p(t1,t2,...,tn;θ)的概率最大,对p(t1,t2,...,tn;θ)进行求偏导,可分别计算出未知参数的值。可以发现,文本中一个词t的出现的概率按照MLE来计算为:\n[0048] \n[0049] 在两个层面上建立语言模型,第一个是针对用户的每个帖子建立独立的语言模型Mtd,第二个是将所有用户的所有帖子看作一个文本建立语言模型Mc。整个查询的出现概率为\n[0050] \n[0051] 其中β为参数,用来平衡整个帖子集和单个帖子之间的权重。这样的好处是避免了查询里的词没有出现在单个帖子里的时候概率为0,从而导致整个查询被单个帖子产生的概率也为0。\n[0052] 基本模型\n[0053] 用户每一个帖子都能够计算出一个产生查询的概率。如何将这些帖子产生的概率合并成用户全部帖子产生该查询的概率是本专利重点讨论的问题,即等式[0054] p(q|Mpf)=f(p(q|Mtd1),p(q|Mtd2),...,p(q|Mtdn))\n[0055] 中函数f的计算过程。\n[0056] 均等权重\n[0057] 最基本的语言模型是每个帖子的权重均等。在计算出每个帖子产生查询的概率后,相加取平均值来得到这个用户的整个帖子集产生该查询的概率。\n[0058] 算法3-1\n[0059] 对于每个用户\n[0060] 对于查询里的每个term\n[0061] 对于用户的每个帖子\n[0062] 计算P(t|td)=该term被这个帖子产生的概率\n[0063] P(t|Mtd)为用户所有帖子产生的P(t|td)之和按发帖数平均得到这个用户产生这个term的概率\n[0064] 将用户产生每个term的概率相乘获得用户产生这个查询的概率\n[0065] 依据用户的概率,排序输出\n[0066] 基准模型\n[0067] 基准模型是用来衡量一个新的算法是否有效的参考标准。本专利提出的参考标准有两个,其中一个为前述的基本语言模型,在这个语言模型中,每个帖子的权重相等。另外一个是不参照内容仅按照用户的发帖量排序。后者在对待任何查询上给出的专家排序都是一样的,可见和内容无关的排序还是不灵活的,可能用户的大量帖子都在谈论和查询无关的话题,这样以来按帖子数给出的排序就非常不准确。在基本的语言模型上,本专利进行多种改进,试图寻找更有效的算法。\n[0068] 最佳答案相似度比较\n[0069] 在Yahoo!Answers上的回答,如果被提问人选定为最佳答案,则说明回答的帖子质量高,可以将这一点优势加入对帖子的质量评估中,通过用户回答和最佳答案之间的距离来修正仅由MLE计算出来的概率,不再将每个帖子看作同等重要,而是将更高质量的帖子予以更高的重要度。修正的表现形式是在计算由这个帖子产生查询需求的概率时乘以一个权重。在意义上,这个权重越高,则说明这个帖子质量越高,用户在回答这方面问题是越可能成为专家;在最终的用户得分上,乘以这个权重后,不同的回答该问题的帖子产生这个查询的概率差距就加大了,越是靠近最佳答案的相似度越大,这个帖子能够回答这个查询需求的概率越高,最终提高用户的分数。\n[0070] 在计算帖子和最佳答案相似度上,采用的是向量模型。给待评估质量的帖子和最佳答案分别建立高维向量空间,计算两个向量间的夹角。夹角的余弦函数值越大则两个向量的夹角越小,视为二者越相似。\n[0071] \n[0072] 算法3-2\n[0073] 对于每个用户\n[0074] 对于查询里的每个term\n[0075] 对于用户的每个帖子\n[0076] 计算P(t|td)=该term被这个帖子产生的概率*Sim(td,BestAns)[0077] 用户所有帖子产生的P(t|td)相加得到这个用户产生这个term的概率[0078] 将用户产生每个term的概率相乘获得用户产生这个查询的概率\n[0079] 依据用户的概率,排序输出\n[0080] 注:Sim(td,BestAns)为这个帖子和最佳答案的向量相似度。\n[0081] 从全部回答中产生答案的贡献度\n[0082] 为了计算帖子的质量,除了比较帖子和最佳答案的相似度之外,还可以从用户所有回答的帖子中获取参考依据。用户如果是精通某方面知识的话,则他的回答中应该会经常出现与这类知识相关的词语集,也就是说,可以认定如果一个词经常出现在用户的整个帖子集里而本次回答的帖子中又用到了这个词,则用户精通此方面的知识,有权威度,并且在这个帖子里运用了这方面的专业知识给出了他的解答,从而认定这个帖子应该具有较高的质量。\n[0083] 这个贡献度可以看作是用户的已有知识产生了当前的帖子。因此可以把用户所有回答的帖子集看作一个大的文本库,对这个文本库建立语言模型,计算这个语言模型能够产生当前答案的概率。根据答案内容是否来源于用户的知识体系来判定答案的质量。最终将这个贡献度乘以帖子产生查询的概率,由此使得高质量的答案对用户专家度的提升更快。根据语言模型有,\n[0084] \n[0085] 而p(w|Mpf)跟P(w|Mtd)类似,采用自己的词频和总的文集的词频加权的方法获得。\n[0086] 算法3-3\n[0087] 对于每个用户\n[0088] 对于查询里的每个term\n[0089] 对于用户的每个帖子\n[0090] 计算P(t|td)=该term被这个帖子产生的概率*P(td,AIITd)\n[0091] 用户所有帖子产生的P(t|td)相加得到这个用户产生这个term的概率[0092] 将用户产生每个term的概率相乘获得用户产生这个查询的概率\n[0093] 依据用户的概率,排序输出\n[0094] 注:P(td,AIITd)为用户已有知识产生当前答案的概率。\n[0095] 另外,对当前答案质量的评判也可以从被它回答的问题角度考虑。它对问题建立语言模型,希望计算从问题中生成答案的概率,来衡量答案的质量。思想是,如果答案中出现了问题中的词语,可以认为用户正在有针对性地回答,而不是在胡乱作答。另一个考虑的途径是把问题看作由答案生成,同样可以判断用户是不是有针对性地在回答。语言模型注重对内容相似度的分析,因此如果正确答案和问题并没有重合的词汇的话,语言模型的这种赋权值的方法就不尽如人意。\n[0096] 长度标准化\n[0097] 用户的回答习惯各有不同。针对用户或长或短的答案,给用户加上一定的长度以补偿语言模型计算出来的概率。因为在语言模型中,没有涉及到回答同一问题的用户间的横向比较,只是进行产生新查询的概率计算。在概率模型中,由于帖子长度越长,则产生一个词的概率越小,因此,产生一篇长文的概率比产生短文的概率要小得多。\n[0098] 举例如下,文档A内容为XYY,文档B内容为XY。如果查询q为XY,则文档B产生q的概率为\n[0099] \n[0100] 而文档A产生q的概率为\n[0101] \n[0102] 但是从直观上来看,A所描述的内容相关度要大于B的。\n[0103] 为了减小用户答案的长短不一导致的分数不一样,统计回答同一问题的所有帖子的总长度,再根据自己在总长度中占的分量进行修正。在本专利中,长度修正用的计算公式为\n[0104] \n[0105] 算法3-4\n[0106] 对于每个用户\n[0107] 对于查询里的每个term\n[0108] 对于用户的每个帖子\n[0109] 计算P(t|td)=该term被这个帖子产生的概率*UserPortion(td)[0110] 用户所有帖子产生的P(t|td)相加得到这个用户产生这个term的概率[0111] 将用户产生每个term的概率相乘获得用户产生这个查询的概率\n[0112] 依据用户的概率,排序输出\n[0113] 用户关系模型\n[0114] 语言模型及其权重改进都主要是针对单个用户本身,但是在社区中用户和用户间无意间都会形成一个网络,这个网络里潜藏着他们之间的联系,这些联系如果被发掘出来,也许会对用户的专家度判断起到积极的作用。例如在同一个问题下回答问题的用户其知识体系应该有部分重合,当用户A和用户B经常出现在一起回答问题,则如果判断其中一个是专家很可能另一个也是专家。\n[0115] PageRank的适用性\n[0116] PageRank算法是Google用来标识网页排名程度的一个算法,它的核心思想是如果一个网页被很多其它网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。这个算法将网络从一个图的角度进行系统的计算,而不像在它之前的研究只关注于一个网站和它所收到的查询这样局限的范围。\n[0117] 同样,在用户的专家度排名中,可以利用PageRank的思想弥补仅通过内容计算专家度的缺陷。如果查询的词在一个用户的帖子集中少有出现,则即使是高质量的答案,也会因为内容上的不匹配而无法获得高概率。这种专家用户可以通过回答相同问题的其他用户的高分来弥补自己的低分值。因此,我们需要发掘用户间的共享次数来给各个用户定义共享度。希望共享次数越高,则两人的PageRank值都变得很高,可以供分值低的一方来修正自己的专家度。这正好符合了PageRank算法的意图。\n[0118] 利用PageRank思路得到共享度\n[0119] 将每个用户看作一个节点,如果同时出现在同一个问题的回答中则添加互相指向对方的链接。通过以上方法建立Co-occurrence的双向图,同时回答的问题的个数作为连接两个用户的边的权重。在获得用户关系图后,利用迭代得出各个用户的共享度。\n[0120] 假定所有用户初始的PR值是相同的,每个用户根据指向其他用户的边的权重将这个初始值分出去。遍历完毕,每个用户统计自己从别人那里获得的PR之和,作为自己新的PR值。经过大约30次迭代得到收敛后的PR值。从理论上已经证明了不论初始值如何选取,这种算法都保证了用户的PR值能收敛到他们的真实值。\n[0121] 算法3-5\n[0122] 对于用户u\n[0123] 计算指出去的所有边的权重sumofW;\n[0124] 对每个用户u’\n[0125] 按照 计算出应该分配出去PR值\n[0126] 加在此用户新的PR值上\n[0127] 将以上迭代至PR值稳定\n[0128] 注:w(u,u′)为用户u和u′间共享的帖子数\n[0129] 排序中如何加入PageRank值\n[0130] 在根据语言模型计算出用户的专家度排列后,通过用户的PageRank值进行修正。\n如果一个用户的PageRank值偏高,说明他经常和其他用户一起回答问题。在利用PageRank值进行修正时,不能单利用这个值来做加权,因为每个用户和此用户共享的问题数并不相同。\n[0131] 每个用户在利用此用户的PageRank值之前要乘以共享的问题数作为加权。即,如果A用户和B用户之间仅共享了几个问题,而和C用户之间共享了上百个问题,则A在修正自身专家度的时候,能够得到更多的C的专家值,而A由于和B共享的问题少,只能获得少量的B的专家值,即使B的共享度很高也不能受益,因为B的共享度高不是由A造成的。\n[0132] 实验中利用PR值从其他用户那里获得的修正值如下\n[0133] \n[0134] 则用户更新后的专家度为\n[0135] newscore(u)=δ*oldscore(u)+(1-δ)*Δ(u)\n[0136] 算法3-6\n[0137] 对于用户u\n[0138] 遍历每个用户u’\n[0139] u能够拿到的专家度的权值为u’的PR值和w(u,u’)的乘积\n[0140] 给u的专家度为按照 计算出应该分配的专家度\n[0141] 按照一定的比例和u的旧专家度加权得到新的专家度\n[0142] 注:w(u,u′)为用户u和u′间共享的帖子数\n[0143] 实验分析\n[0144] 实验数据的选择与处理\n[0145] 实验选取的是2006年至2008年间Yahoo!Answers上的Computer&Internet子集下的数据。选取了100个用户和他们发表的1万多条数据。帖子的内容中删去了数字,符号,忽略了大小写,并且没有对帖子中包含的链接作特别处理,仅当作一般文本对待。\n[0146] 这样的处理可能丢失了一些信息。大小写可能包含特定的意义,例如MAC,指代的是固化在网卡上的物理地址,而Mac通常指代的是Apple公司出品的笔记本电脑。但是大小写也可能只是为了引起读者注意,例如HELP,THANKS则和help,thanks没有差别。由于数字出现在文中并不像词语一样有特定的含义,通常和文章的内容没有必然联系,因此不列入概率贡献的计算。\n[0147] 在根据查询计算出一个专家(用户)排名之后,需要和实际的专家列表来比较。由于Yahoo!Answers上没有给出详细的专家列表,因此需要手动对每个用户衡量,决定是否能够作为该查询的专家。在评估是否为专家的时候需要浏览该用户所有回答过的问题。总共设了6个新的问题,对100个可能的专家(用户)做出判断。评测结果划分为相关和不相关两级,没有划分更多级别。\n[0148] 实验结果及分析\n[0149] 评估性能的参数的介绍\n[0150] MAP:单个查询的MAP是每个相关的专家检索出来后的准确率的平均值。全局的MAP是6个查询的MAP的平均值。\n[0151] MRR:第一个相关的专家在排序中的位置的平均值。它能说明为了找到相关的专家需要顺着给出的用户排序搜索多长的距离。\n[0152] R-Precision:检索结果中,在所有相关的专家总数位置上的准确率[0153] P@n:前n个排序中包含正确的相关的专家的比例。\n[0154] 实验中参数的选取\n[0155] 语言模型的参数选择\n[0156] 语言模型的建立取决于两部分,一个是单个帖子的贡献度,另一个是在整个帖子数的贡献度。后者起到平滑的作用。记单个帖子的贡献度的权重为β,就β的取值大小进行了如下实验:\n[0157] 在问题产生答案的模型中:\n[0158] \n \n[0159] 可以看到β的取值在0.5的时候表现是最好的,其中MRR的变化尤为明显,增幅达到22%以上。在其他指标上,三种取值造成的差异不明显。\n[0160] 根据用户的历史发帖产生问题的模型中:\n[0161] \n[0162] 在这个模型中,β的表现和在上一个模型中很不相同,当β=0.9的时候,模型的表现是最好的,但总体上三个取值之间的差异不明显。为了平衡以上两个模型及之后更多模型由于β的选取而带来的性能差异,将β的默认值设定为表现较为中庸的0.7。\n[0163] Co-occurrence权重的选取\n[0164] 为了能够在用户原有的分数基础上被一起出现的用户的专家度调整,需要做权重的分配以决定同时答题的用户的专家度在多大程度上影响用户本人。参数δ表示用户自身在新的分数中占的加权比例,极端的情况是δ=0,即完全由同时答题的其他用户来决定此用户的专家度。同样对两个模型进行了实验。其中,β=0.7。\n[0165] a)由问题产生答案的模型+rerank\n[0166] \n[0167] b)根据用户的历史发帖产生问题的模型+rerank\n[0168] \n \n[0169] 和上一个模型的数据不同,MRR的最高取值出现在δ=0.4的时候,并且在δ=\n0.4是,3样数据达到最高。为了综合不同模型间带来的差异,选择表现最稳定的δ=0.8来作为默认值。\n[0170] 性能比对\n[0171] 帖子的贡献度变化\n[0172] 基准线为以下两个:\n[0173] Baseline 1:按照回复的帖子量排序出来的\n[0174] Baseline 2:按照权重均等的contribution来计算的。\n[0175] 实验方法包括五个:\n[0176] Method 1:答案由它回答的问题产生的概率\n[0177] Method 2:帖子由用户历史帖子产生的概率\n[0178] Method 3:帖子和所答问题的最佳答案的相似度\n[0179] Method 4:帖子的长度在全部回复中的比例\n[0180] 下面列出实验结果:\n[0181] \n[0182] 可以看到,baseline 2在表现上最弱,即,平均分配每个帖子的权重不利于掌握用户的专家度。由于它对用户发表的帖子没有侧重,所以每个帖子在用户整体的知识中贡献相同,没有突出用户的知识重点。而baseline 1在整个结果中略低,其性能和其他模型相比没有巨大的差别。主要原因在于数据来源。Baseline 1是根据帖子数量来排序,而这次论坛的数据选取来源于同一个目录(Computer &Internet)下的子论坛。在计算机及网络方面很多话题比较相关,相似的知识易于一起掌握,所以在这个论坛下回答最多的人确实可以倾向判断为专家。如果更换数据源,例如将Computer和History这两个论坛的子论坛合并在一起,则再依据发帖量来排列专家度,性能必然很低。因为在History下发贴最多的和在Computer下发贴最多的,互相对彼此的知识系统都很不了解。\n[0183] Baseline 1不是基于语言模型的排序,而在baseline 2和Method 1、Method2的比较中可以看出,帖子之间的权重变化很重要。Method 1和Method 2中的P@10为0.6167,而baseline 2中P@1-仅为0.3333。这表明,从内容上分析帖子的质量是可行的。无论是依据问题来判断或者是依据用户历史来判断,都依然采用语言模型产生概率。把用户的每个帖子都作为用户的一个特定的知识范围,按照不同的加权来确定用户总的专家知识范围。\n[0184] Method 3的表现突出在于MRR接近80%,这意味着只需要沿着给出的排序找到第一个或者第二个就能够得到第一个正确的专家。Method 3之所以能够在MRR上有不错的表现是因为和最佳答案来比较相似度确实是目前比较优秀的判定回答质量的方式。最佳答案的产生是由提问者手动选择的,这一步是其他几种方法所不具有的优势。其他的方法是在用建模计算的方法来从帖子的各种参数中判断帖子的质量,而高质量帖子拥有的参数很可能是不符合建模的特质,例如长度,关键词词频。因此如果能够直接和最佳答案比较,才是最有效的判定帖子质量的方法,它接近于由人来手动判断该帖子的质量,应该是最合理的。\n[0185] 在无手动判断的情况下建模的三种方法中Method 4是MRR和P@5较高的,但这种方法的其他几个指标都不太优秀。这个方法是希望能够把长帖子带来的概率上的减小弥补一下。针对它表现出来的性能可以理解为这种方法确实能够增加长帖子的相关度,但是对短的帖子的概率削弱也很厉害,使得它能够在前几个的时候很好地找出专家,从而提高MRR和P@5。但是过于为长帖子增加权重使得拥有短帖子的专家的排名并不靠前,导致其他的综合指标突出。\n[0186] 关于长度标准化的性能比较\n[0187] 由于Method 1和Method 2在帖子权重的计算时都采用了语言模型,于是我尝试将Method 4的权重也加入上述两种方法里去,看是否能够更加适应语言模型对长度的敏感变化。\n[0188] \n[0189] Method 4希望通过长度上的补偿来减小概率上对篇幅长的帖子带来负面影响。在单独运行Method 4的时候性能还可以,虽然不突出可也不算很差。但在运用到Method 1和Method 2上面效果并不好。大部分的指标有所下降。\n[0190] 总结原因可能是由于长度补偿在直接作为语言模型的帖子的加权的时候,能够适当补偿长篇幅的帖子的概率偏小的问题,但是当已经存在另一套由语言模型建立的加权时,再直接运用长度补偿就乱套了。因为作为加权的语言模型已经根据帖子再次进行了加工,所以帖子的长度不再是简单的线性关系,变得复杂,也不再能够通过粗糙的成正比的长度标准化来进行补偿了。\n[0191] Rerank的性能对比\n[0192] \n[0193] 根据用户之间同时出现的双向图按照PageRank值作了加权调整。在调整之后,可以看到对一些方法还是达到了提高性能的效果,尤其是MRR。Method 1在rerank后MRR从\n0.58提高到0.68,Method2在rerank后MRR从0.58提高到0.77。这两种方法的权重是由概率建模产生的,任何一个词是否出现以及出现频率都会对概率产生较大的影响,因而在综合co-occurrence图之后,有其他用户的回答作为稳定的基底,减小了偶然出现的变化的波动性。\n[0194] 方法在Method 3和Method 4上的优化效果不明显。原因理解为Method 3是按照最佳答案的相似度来调整帖子的贡献度,评价已经比较准确了,co-occurrence图的调整作用不大;而Method 4中长帖子的权重调整幅度偏大,拥有长、短帖子的专家在排序上分化较严重,长帖子的用户靠前,短帖子的靠后,在综合co-occurrence图的权重后,有呈现出向中间聚拢的形势。因此P@5下降,而P@10和P@15却有小幅提升,表明专家在列表中部有变密的趋势。\n[0195] Query间的性能差异\n[0196] 以上的测评都是按6个query的平均水平在做讨论。在不同的query中,差别也比较大,下面以综合性能最好的Method 2+Rerank进行讨论。\n[0197] 在图2中可以发现,query3在这6个query中的所有指标都是很低的。MRR才到达0.1。query1,query2和query6基本都能够达到70%及以上的性能,query3的全部结果却始终徘徊在0.1~0.2。query4和query5在性能上属于中间水平。\n[0198] 模型上的差异在这6个query的相对比例中没有产生大的影响。在没有加上rerank的按最佳答案的相似度分配权重的Method 3中,6个query的测评指标如图3所示:\n[0199] 和图2类似,可以看出query3始终是这6个中间性能最差的,query1,2,6表现的较好。可见,模型的差异不是导致这种结果的主要原因,而query间最大的区别在于它们的内容。\n[0200] 6个query的内容如下:\n[0201] \n[0202] query1,2,6之所以能够表现得不错,主要原因有两个:\n[0203] 所问的内容能和出现的词语比较符合。例如query2的“buy”,“macbook”,虽然query 2很短,但是要问的内容都在query中出现,而且这几个词语能够明确表达想要的内容是什么,有针对性。\n[0204] 出现的关键词语和总的帖子集中的词语有高频的重合。例如query6中的“surf”,“internet”,都是很明确说明提问方向的词语,在总的帖子集中能够因为它们的高频出现而提高该用户的专家度\n[0205] 而表现不好的query中就存在以下问题:\n[0206] 提问没有针对性。例如query4,内容不够充分同时也没有特别的关键词能够表明自己的主要需求。“slow”和“speed”容易在整个Compuer & Internet的论坛中产生歧义。\n仅根据关键词可能提问的是Computerz子集询问计算机的软硬件问题,也可能是Internet子集下询问网络拥塞的问题。因此,较难以给出精确的用户专家度。再如,query3中的“clean”一词,可以注意到query5中也有“clean”,然而一个指的是外观的清洗,另一个指的是病毒及垃圾文件的清理\n[0207] 提问的词语即使精确地表达问题的意思也属于整个文档集中的低频词。\n[0208] query3中的内容在6个query中较长,主要的关键词是“dirty”,“clean”,有针对性。之所以在每个模型中的表现都比较低的原因可能是dirty一词出现的次数很少,整个文集总共894808个词,平均每个词出现的次数为50,而dirty出现的频率仅15次。详见下表,\n[0209] \n[0210] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
法律信息
- 2021-02-23
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 201110373475.1
申请日: 2011.11.22
授权公告日: 2013.10.02
- 2013-10-02
- 2012-07-11
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201110373475.1
申请日: 2011.11.22
- 2012-06-13
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-06-23
|
2009-12-12
| | |
2
| |
2011-02-23
|
2010-10-28
| | |
3
| |
2008-12-10
|
2008-07-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |