发明内容
本发明为了解决现有技术中基于分类的微博过滤模型存在早期分类面不准的问题、以及基于检索的微博实时过滤模型存在无法保证最优化问题,且现有技术中也没有提供将二者有效融合的方法,为此,提供了一种基于历史微博的微博实时过滤模型。
本发明为解决上述技术问题采取的技术方案是:
一种基于历史微博的微博实时过滤模型,基于每个微博是否为相关微博的先验知识不同,用于判断每个样本时使用不同的分类面,构建如公式(5-3)表示的过滤模型框架:
h(x,m,t,q)=f((1-δ)*(wTx+b)+δ*g(m,t,q)) (5-3)
其中,微博m是否为相关微博的先验基于当前微博的发布时间t及查询q获得,在公式(5-3)中记为g(m,t,q),用于表示当前样本是否为相关微博的先验知识;δ用来控制g(m,t,q)对分类面影响的大小,
wTx+b=0表示当前的分类面,g(m,t,q)用来动态调整分类面得到新的分类面wTx+b+g(m,t,q)=0,移动的方向由g(m,t,q)的符号决定,移动的距离由g(m,t,q)的绝对值决定,g(m,t,q)对分类面的影响程度由参数δ控制。
利用历史微博的排序信息和时间近邻性来估计g(m,t,q),
g(m,q,t)=sim(m,q)-γ(t) (5-5)
公式(5-5)中的γ(t)表示t时刻检索模型的阈值,是一个随时间变化的变量;
其中,q为查询,m为待判断的微博,sim(q,m)为查询q与微博m的相关度得分,γ为一个阈值,用于与sim(q,m)比较;如果查询q与微博m的相关度得分大于该阈值,则微博m被认为是与查询q相关的。
g(m,t,q)的详细估计过程为:
考虑历史微博中与查询相关的微博的整体信息,通过排序信息来确定阈值γ;假设相关微博与查询的相关度得分高于不相关微博的得分,已知当前时刻之前有n个相关微博,则理想的γ(t)就是排序在第n位微博的得分,即:
γ(t)=sim_kth(NRM(t)) (5-6)
其中NRM(t)是t时刻的相关微博数量,sim_kth(·)是t时刻历史微博中排在第n位的微博与查询的相关度得分;
假定相关微博出现的可能性符合指数分布,即:
其中,tm是相关微博m的发布时间(以秒计),t是当前时间(以秒计),λ和φ是待估计的参数;φ用于控制时间近邻的影响范围,λ用于控制时间近邻的影响程度;公式(5-7)显示,ΔNRM大于1且随时间流逝而逐渐变小;
在时间点t上,NRM(t)表示所有已知的相关微博的数量,即:
其中,R是通过反馈获得的相关微博的集合,NRM0是初始相关微博数量,其值为常数,将通过实验确定;
根据公式(5-7)和(5-8),定义时刻t的阈值为:
利用公式(5-9),则微博m的先验可以估计为:
具体应用时对(5-3)表示的过滤模型框架根据选定的分类模型和检索模型进行参数的求解,以逻辑回归模型为过滤器中的分类模型,以语言模型作为利用微博历史信息获得当前微博先验知识的检索模型,具体过程为:
1)、确定基于逻辑回归的分类模型
选择逻辑回归模型作为公式(5-3)中的分类模型,逻辑回归模型被描述为一个线性模型,其定义如下:
其中,x为微博的特征向量;在微博过滤中,以微博中的词作为特征;w为特征的权重,b为偏置(bias);
2)、以语言模型作为检索模型,估计公式(5-3)中查询与微博相关度的先验知识,在微博过滤环境下,应用典型的语言模型,查询和微博分别被建模为查询语言模型θq和微博语言模型θm;在Zhai的风险最小化模型下,应用KL(Kullback-Leibler)距离度量查询语言模型θq和文档语言模型θm的相似度,应用KL距离计算公式(5-3)中查询与微博的相关性sim(q,m),将sim(q,m)定义为:
其中,V是整个词汇表,w是V中的词项,P(w|θq)与P(w|θm)分别是w在查询语言模型θq和文档语言模型θm中的分布;
P(w|θm)采用最大似然估计,并使用平滑技术解决数据稀疏问题;使用JM(Jelinek-Mercer)平滑方法来平滑微博语言模型:
p(w|θm)=(1-λ)p(w|m)+λp(w|C) (5-13)
其中p(w|m)是w在微博m中出现的概率,p(w|C)是w在文档集合上出现的概率;
θq为查询语言模型,代表的是用户的兴趣;P(w|θq)的估计采用原始查询的最大似然估计与查询扩展模型θqe结合,其形式为:
P(w|θq)=(1-λ)Pml(w|q)+λP(w|θqe) (5-14)
使用相关模型估计θqe:
其中R表示相关微博,采用伪相关反馈获得;
3)、过滤模型的参数估计
将公式(5-10)、(5-11)和(5-12)代入公式(5-3),则基于历史微博的微博实时过滤模型框架表示为公式(5-16)的形式,其中,分类模型由逻辑回归实现,检索模型由语言模型实现:
其中,δ用来控制语言模型的影响大小,x是微博m的特征向量,w是x的权重,b是偏置,KL(θm,θq)是微博和查询语言模型的KL距离,γ(t)的定义如公式(5-9)所示;
对于参数w和b采用如下策略估计:
首先,定义损失函数为:
其中:
cost(hw,b,γ,δ(x,θm,θq),y)=-ylog(hw,b,γ,δ(x,θm,θq))-(1-y)log(1-hw,b,γ,δ(x,θm,θq)) (5-18)
在参数训练的时候,使用梯度下降法来最小化损失函数L(w,b)以估计参数w和b;对 于每一个训练样例(x(i),y(i)),w和b将按照下面的公式更新:
本发明的技术构思为:
研究中我们注意到,不论是基于检索模型的微博过滤方法还是基于分类模型的微博过滤方法,都仅仅关注了微博自身的信息,而忽略了历史微博的信息。这里的“历史微博”是指在当前时刻之前发布的微博。历史微博之间存在两种重要的信息:与查询相关的历史微博之间的排序信息及时间近邻性。这两种重要的信息为微博的过滤提供了先验知识:对于基于检索模型的过滤方法而言,历史微博的排序信息有助于在实时过滤环境下快速的确定合理的阈值;对于基于分类模型的过滤方法而言,时间近邻性有助于更准确的确定相关微博,从而有利于分类面的动态调整,缓解分类面不准确的问题。
利用历史微博的排序信息和时间近邻性,本发明提出了基于历史微博的微博实时过滤模型的框架,利用历史微博信息融合检索模型和分类模型。具体地,该框架将历史微博中的排序信息及时间近邻性应用在检索模型中构建先验知识,并利用先验知识动态调整分类模型的分类面。进一步,本发明以语言模型和逻辑回归模型为例,实现了该框架的一个实例,并给出了具体的参数估计方法。
由于每个微博是否为相关微博的先验知识不同,因此本发明提出的通过历史微博构造的先验知识来调整分类面的方法使得过滤器用于判断每个样本时所使用的分类面是不同的,这是本发明模型与传统基于分类模型的微博过滤模型最大的不同。
基于历史微博的微博实时过滤模型在TREC 2012微博过滤数据集上进行了实验。实验结果表明,本发明所提出的微博实时过滤模型的性能优于多个先进的微博过滤模型及TREC 2012微博过滤评测中最好的方法。
基于本发明开发的简化版本在TREC微博过滤评测中获得了第一名。TREC评测由美国国家标准局和美国国防部高等计划研究局主办。TREC是最重要的国际信息检索评测会议。超过40家单位参加了本次评测。参加评测的有卡耐基梅隆大学(CMU),伊利诺伊大学,厄巴纳-尚佩恩(UIUC)、爱丁堡大学、IBM研究院、北京大学和中科院计算等国内外知名大学和研究机构。
具体实施方式一:如图1至8所示,本实施方式针对所述的基于历史微博的微博实时过滤模型进行详尽描述:
1.1本实施方式针对所述的基于历史微博的微博实时过滤模型利用历史微博的排序信息和时间近邻性,提出了基于历史微博的微博实时过滤模型的框架,利用历史微博信息融合检索模型和分类模型。具体地,该框架将历史微博中的排序信息及时间近邻性应用在检索模型中构建先验知识,并利用先验知识动态调整分类模型的分类面。进一步,以语言模型和逻辑回归模型为例,实现了该框架的一个实例,并给出了具体的参数估计方法。
余下部分是针对1.1方案的实现的具体描述:1.2节分析了微博过滤任务及历史微博特性;1.3节提出了基于历史微博的微博实时过滤模型框架及其实例;1.4节给出了在TREC 2012微博过滤数据集上的实验结果和分析;
1.2微博实时过滤任务及历史微博分析
本发明给出了微博实时过滤任务,并分析了历史微博中含有的两种信息:排序信息与时间近邻性。
1.2.1微博实时过滤任务
与以往的信息检索任务不同,在微博检索中,在用户发出查询后的瞬间,又有大量的新微博到来,这其中也可能包含与用户检索需求相关的微博,因此,在利用传统的检索技术对用户提交查询之前发布的微博进行检索之外,还应该能够将用户提交查询之后发布的微博中与用户查询相关的微博展示给用户。即一个满足用户信息需求的微博系统,不仅能够对历史微博数据进行检索,还应具有对查询提交后到来的微博一一判断其与查询的相关性的能力。
图1展示了微博过滤的流程。
如图1所示,微博集合是一个随着时间的推移由持续的微博流构成的集合。以用户提交查询的时刻作为分界,微博可以分为两部分,一部分是在查询提交时间之前的微博集合,可以将其视为一个静态的微博集合;另一部分是查询提出时间之后发布的 微博流,这部分微博是随时间不断动态增长的微博的集合。微博过滤的任务是逐一判定当前微博是否是与用户查询相关的微博。
对于当前时刻的微博而言,在它之前发表的微博,本发明将其称之为历史微博。以往研究在判定当前微博是否是相关微博时,忽视了历史微博的重要信息。
当过滤系统将当前时刻的微博判为相关微博后,这条微博会展示给用户。如果用户点击了展示给用户的微博,则过滤系统获得用户的反馈信息,将这条微博作为真正与用户需求相关的微博。如果用户没有点击这条微博,则这条微博将被判为不相关微博。由于过滤系统不会将不相关微博展示给用户,因此也不会获得任何用户的反馈信息。这意味着只有过滤系统判为相关的微博可以获得用户的反馈信息,这种反馈的方式称为单边反馈。
上述微博过滤的过程可以描述如下:设L是过滤器,D是样本空间X=Rd上的一个分布,xi是一个样本,反馈T返回xi的标签yi,假设函数为h(·):Rd→{-1,1}。给定一个样本xi,过滤器L通过h(xi)预测给定样本的标签。根据反馈T更新假设函数h(·)。则对一个样本的更新过程如下:
●样本xi来自于分布D。
●L用h(xi)预测每个xi的标签。
●如果h(xi)=1,那么T返回xi的标签yi,L可以使用(xi,yi)更新它的假设函数h(·)。
●如果h(xi)=-1,则过滤器L不能获得xi的标签yi。
从形式上看,上述过程更像是一个分类任务。一些方法将微博过滤看作一个文本分类问题,利用从特征空间中学习到一个分类平面,将微博分为相关微博和不相关微博。然而,这类方法在微博过滤任务中的性能并不理想。根据TREC 2012微博过滤任务的评测结果,基于传统文本分类的方法,例如逻辑回归、在线SVM等都没有取得好的过滤效果。
影响基于分类模型的微博过滤方法的主要原因在于,在线学习的过程中,分类面的准确度是逐渐提升的,早期不准确的分类面降低了过滤器的性能。在微博过滤的早期阶段,提供给过滤系统的只有少量的训练数据(过滤的初始阶段,系统只提供查询和一条并不保证相关度很高的微博)。此时,过少的训练数据使分类器无法进行有效学习,这导致了初期分类面的误差较大。另一方面,由于单边反馈问题,被分类面划分到不相关一侧的样本无法获取标签,更使得可用的训练数据大幅度减少,从而系统较难快速的获得一个较为有效的分类面。
此外,由于只有判为正例的样本才能得到反馈,错误驱动的分类器在这种单边反馈条件下会一直向正例的方向移动。虽然有研究利用间隔(margin)信息将分类面反例一侧的样本故意判为正例,以获取更多样本的标签,但故意判错会造成性能上的损失。Karimi等尝试着通过构建更多的训练样本来学习更准确的分类面,Liang等尝试通过合并两个分类模型来获得更好的决策。然而,实验结果表明这些提高分类面准确度的方法并没有使微博过滤的性能取得明显提升。如何在微博实时过滤任务中提高分类面的准确度还有待于进一步探索。
本发明认为,上述方法只关注了如何利用当前微博的信息,而忽视了历史微博的两个重要信息:排序信息和时间近邻性。下文将对历史微博的这两个信息做出分析。
1.2.2历史微博的排序信息
微博过滤任务的目标是获得查询发出后新产生的微博流中与给定用户查询相关的文档,本发明称之为查询相关性。微博过滤任务与传统的过滤任务的一个显著区别在于微博过滤是一个与特定查询相关的在线过滤任务,查询相关性使这个任务既具有在线过滤的特点,也符合检索任务的特点。
研究者们注意到了微博过滤的查询相关性,并将这种查询相关性应用在微博过滤中。比如,在大多数基于检索模型的微博过滤方法中,查询相关性用微博与查询的相关度得分表示,该得分被作为与过滤阈值比较的依据,相关度得分越低,该微博被过滤掉的可能性越大。在应用分类模型的微博过滤中,微博与查询的相关性常被作为分类模型的一个重要特征[84]。然而,上述这些方法在微博过滤中并没有获得令人满意的性能,其中一个主要的原因在于这些方法对查询相关性的利用还局限在只考虑单个微博与查询的相关性的基础上,这意味着至少两方面的信息被忽略:第一,每个微博的信息仅被利用了一次,相关微博没有为过滤器的学习贡献更多的信息;第二,微博被当做独立的个体看待,没有考虑整体上的相关性排序,即在排序中位置越靠前越可能是相关微博这一重要信息被忽略。
1.2.3历史微博的时间近邻性
前面几章的研究显示,相关微博具有显著的时间特性。在微博过滤中,时间特性表现为相关微博的近邻性,即与查询相关的微博在时间上的分布是不均匀的,在时间上呈现近邻性。图2以TREC 2012微博过滤的三个查询29、30和37为例描述了检索到的文档和相关文档在时间上的分布,时间以天为单位,0为微博集合中最新的微博的时间,主题号标注在时间轴的右侧,绿色大点为相关文档,绿色小点为不相关文档,红点为高度相关的文档,柱形图展示了相关文档的数目。
从图2中可以看出,不相关微博在时间轴上分布得相对均匀,而相关微博则相对集中。微博过滤是从图中左侧开始,逐个微博判断其相关性一直到达右侧结束。注意到在一些时间段上并没有相关微博存在。对于这样的时间段,最理想的过滤策略是将所有的微博判为不相关微博,而对于只有少量相关微博的时间段,则可以考虑将阈值或者分类面向正例一侧移动,以保证不会将太多的微博判为相关微博从而引起损失。要实现这一策略的关键问题在于如何估计相关微博在时间上的分布。
尽管本发明第四章的方法可以估计相关微博在时间上的分布,但这个方法无法直接应用到微博过滤中。这是因为,在微博检索中,由于全部待检索文档集合是静态的,全部的微博都是已知的,因此可以利用这些全局信息来估计相关微博在时间上的分布。而在微博过滤中,由于微博文档集合是动态增长的,当前时间点之后发布的微博集合对于当前时间点是不可见的。因此,过滤系统无法在整个微博集合上估计这个时间分布。
尽管微博过滤无法获知微博的整体,但微博过滤的一个优势是部分相关微博是已知的。第三章的文档时间近邻性表明,相关微博附近存在着较多的相关微博,第四章对时间近邻性的进一步分析表明:相关微博具有时间影响力。当一个相关微博在tm时刻出现时,在tm附近还会有更大的可能性出现其他相关微博,并且随着时间的推移,相关微博出现的可能性将逐渐降低。这个重要的时间特性被微博过滤模型所忽视。
根据以上的分析,本章根据历史微博的排序信息和时间近邻性来估计微博与查询是否相关的先验知识,并利用这个先验知识调整分类模型的分类面,提出一个基于历史微博的微博过滤模型。
1.3基于历史微博的微博过滤模型
1.3.1基于历史微博的微博过滤模型的总体框架
在基于分类方法的微博过滤中,分类模型通过在特征空间中学习到的一个超平面来区分相关微博和不相关微博。一个典型的线性分类模型可以表示为:
h(x)=wTx+b (5-1)
其中h(·)是分类模型的假设函数,x是特征向量,w是x的权重向量,b是一个偏置(bias)。为了容纳一些其他形式的线性模型(例如逻辑回归),假设函数h(·)可以泛化地表示为:
h(x)=f(wTx+b) (5-2)
其中f(·)表示一个函数,wTx+b=0描述了当前的分类面。
在机器学习中,分类模型的优点在于,当训练数据时充足时可以学习到一个优化的分类面。但在微博过滤这个在线学习任务中,如1.2的分析,基于分类的方法很难快速地学习到一个准确的分类面。
在公式(5-2)所定义的分类模型中,现有的学习方法用t-1时刻学习到的分类面来判断t时刻的微博是否是相关微博。由于在过滤的初始阶段并没有足够多的训练数据供分类模型学习,因此,在较长一段时间内,分类模型无法获得一个较准确的分类面来过滤当前微博。另一方面,由于微博过滤的单边反馈问题,被误判的相关微博无法获得用户反馈,这更加大了分类模型学习的难度。
1.2节分析的排序信息和时间近邻性从一定程度上反映了微博与查询是否相关的先验。为使分类面更准确,本发明提出利用这种先验知识来调整分类面。
设样本m是否为相关微博的先验知识为g(·),当前的分类面是wTx+b=0。当g(·)>0时,表明样本m与查询的相关度较高且周围的相关微博较多,此时应该将分类面向反例方向移动,从而使该样本更倾向于被判为正例;当g(·)<0时,表明由于查询相关性,这个样本更可能是不相关微博的样本,因此调整分类面,使其向正例方向移动,从而使该样本更倾向于被判为反例。在判断m是否为相关微博之前,首先根据先验知识g(·)动态的调整分类面,获得新的分类面wTx+b+g(·)=0,利用这个新的分类面来判定m是否与查询q相关。
与传统的分类模型不同,由于每个微博是否为相关微博的先验知识不同,因此本发明所提出的过滤器用于判断每个样本时所使用的分类面是不同的。
上述思想可以用公式(5-3)表示为:
h(x,m,t,q)=f((1-δ)*(wTx+b)+δ*g(m,t,q)) (5-3)
其中,微博m是否为相关微博的先验基于当前微博的发布时间t及查询q获得,在公式(5-3)中记为g(m,t,q),其估计方法将在1.3.2节详细描述。δ用来控制g(m,t,q)对分类面影响的大小。为了后面的讨论更简洁,将忽略此参数,该参数的影响将在1.4.2.2节做进一步的分析。
wTx+b=0表示当前的分类面,g(m,t,q)用来动态调整分类面得到新的分类面wTx+b+g(m,t,q)=0。移动的方向由g(m,t,q)的符号决定,移动的距离由g(m,t,q)的绝对值决定,g(m,t,q)对分类面的影响程度由参数δ控制。由于先验知识将基于历史微博信息构建,本发明将公式(5-3)确定的模型称为基于历史微博的微博实时过滤模型。
图3展示了基于历史微博的实时过滤模型的基本思想。其中圆圈表示正例,菱形表示反例,图形的大小表示了|g(m,t,q)|。对于正例,图形越大表示相似度越高;对于反例,图形越大表示相似度越低。虚线表示当前由wTx+b=0确定的分类面,实线表示经过g(m,t,q)修正的分类面wTx+b+g(m,t,q)=0。
图3(a)表示已知全部过滤数据下的一个有效的分类面。图3(b)是在少量样本下学习到的分类面。通过与图3(a)对比,可以看出5-3(b)是一个并不十分有效的分类面,靠近分类面的样本不确定性较大,容易发生误判。图3(c)、3(d)显示了两个误判的例子。
在图3(c)中,红色的样本具有较高的先验为正例,它接近当前分类面,位于反例的一侧,如果不对分类面进行修正,应用当前分类面分类该样本,则它会被判为反例。其后果是系统在单边反馈的方式下无法获得该样本的反馈信息。此时,当前分类面不会变化。而通过g(m,t,q)调整分类面之后,可以正确地做出决策。如果通过先验知识发现,该样本可能为一个正例样本,则微博过滤模型将向反例方向平移分类面,从而增加该样本被判为正例的机会。
在图3(d)中,红色样本是一个具有较低相关度得分的不相关微博,它接近分类面但位于正例一侧,如果应用当前分类面分类该样本,则它会被判为正例。在微博过滤中,被判为正例的样本将展示给用户。当该样本展示给用户的时候,用户的反馈标记该样本为不相关微博,即过滤系统发生了误判。此时,分类器对该样本进行学习,分类面将向正例方向移动以增加该样本被判为反例的机会。对于这类误判的样本,分类面将始终向正例方向移动。但是,如果首先应用g(m,t,q)进行判断,发现该样本可能为一个反例样本,则可以使在线微博过滤模型向正例方向平移分类面,从而增加该样本被判为反例的机会。通过应用先验知识的方式,可以实现g(m,t,q)对分类面的调整,从而做出更准确的决策。
1.3.2基于历史微博的相关度先验估计
在公式(5-3)的微博过滤模型中,g(m,t,q)用于表示当前样本是否为相关微博的先验知识。本发明利用历史微博的排序信息和时间近邻性,借鉴基于检索模型的微博过滤方法估计g(m,t,q)。图4展示了微博过滤中基于检索模型的微博实时过滤方法:
基于检索模型的方法中,首先利用检索模型计算微博与查询的相关度得分,并根据相关度得分排序微博,然后选取一个阈值,将大于阈值的微博判为相关微博。在基于检索模型的微博过滤中,一条微博与查询的相关性判定可以形式化地表示为:
其中,q为查询,m为待判断的微博,sim(q,m)为查询q与微博m的相关度得分,γ为一 个阈值,用于与sim(q,m)比较。如果查询q与微博m的相关度得分大于该阈值,则微博m被认为是与查询q相关的。
借鉴基于检索模型的微博过滤模型,将相关微博的先验估计为:
g(m,q,t)=sim(m,q)-γ(t) (5-5)
与以往基于检索模型的微博过滤方法阈值γ主要根据用户反馈调整的方法不同,公式(5-5)中的γ(t)表示t时刻检索模型的阈值,是一个随时间变化的变量。
在以往基于检索模型的微博过滤方法中,阈值γ的确定忽略了历史微博的排序信息和时间近邻性,即没有考虑历史微博中与查询相关的微博的整体信息。本发明认为,在微博过滤中,微博是随时间源源不断到来的,相关微博不断增加,通过排序信息更容易确定阈值。
假设相关微博与查询的相关度得分高于不相关微博的得分,已知当前时刻之前有n个相关微博,则理想的γ(t)就是排序在第n位微博的得分。即:
γ(t)=sim_kth(NRM(t)) (5-6)
其中NRM(t)是t时刻的相关微博数量,sim_kth(·)是t时刻历史微博中排在第n位的微博与查询的相关度得分。
对于公式(5-6),预测NRM(t)是一个关键性问题。如果所有的微博都可以获得反馈信息,则当一个相关微博出现时,当前的NRM(t)设为上一时刻的值加1即可。然而在微博实时过滤环境下,只有展现给用户的微博才能够获得反馈信息。也就是说,如果一个相关微博被过滤器误判为不相关,则过滤器无法获知用户的反馈信息。这意味着,过滤器无法准确地获知究竟有多少微博是相关微博。
微博检索的研究表明,相关微博在时间上具有近邻性,这一特性有助于提高微博检索的性能[2,6,10]。然而,这些基于时间的微博检索方法无法直接应用到微博过滤中。因为微博的过滤是实时的,需要对微博进行一一判定,当前时刻之后发布的微博是未知的。因此,无法在整个微博集合上估计相关微博的时间分布。
相关微博的近邻性表示在一个相关微博附近存在着较多的相关微博。这意味着当一个相关微博在tm时刻出现时,则在tm附近还会有更大的可能性出现其他相关微博。也就是说NRM(t)不应该简单地增加1,距离tm越近,下一时刻的NRM(t)应该增加的越多,并且随着时间的推移,相关微博出现的可能性将逐渐降低。本发明假定这种相关微博出现的可能性符合指数分布[6],即:
其中,tm是相关微博m的发布时间(以秒计),t是当前时间(以秒计),λ和φ是待估计的 参数。φ用于控制时间近邻的影响范围,λ用于控制时间近邻的影响程度。公式(5-7)显示,ΔNRM大于1且随时间流逝而逐渐变小。
在时间点t上,NRM(t)表示所有已知的相关微博的数量,即:
其中,R是通过反馈获得的相关微博的集合,NRM0是初始相关微博数量,其值为常数,将通过实验确定。
根据公式(5-7)和(5-8),定义时刻t的阈值为:
利用公式(5-9),则微博m的先验可以估计为:
1.3.3基于历史微博的微博过滤模型的实例
本发明以逻辑回归模型为过滤器中的分类模型,以语言模型作为利用微博历史信息获得当前微博先验知识的检索模型,给出一个1.3.2节描述的微博过滤模型框架的实例。
1.3.3.1基于逻辑回归的分类模型
以往研究表明,逻辑回归(Logistic Regression,LR)模型是性能表现最好的在线学习模型之一,与同样性能较佳的SVM模型相比,LR的时间和空间复杂度明显低于SVM。鉴于以上因素,为适应微博在线过滤任务对参数更新算法的要求,本发明选择逻辑回归模型作为公式(5-3)中的分类模型。
逻辑回归模型可以被描述为一个线性模型[101],其定义如下:
其中,x为微博的特征向量。在微博过滤中,以微博中的词作为特征。w为特征的权重,b为偏置(bias)。
1.3.3.2基于语言模型的先验知识
本发明以语言模型作为检索模型,估计公式(5-3)中查询与微博相关度的先验知识。在微博过滤环境下,应用典型的语言模型,查询和微博分别被建模为查询语言模型θq和微博语言模型θm。在Zhai的风险最小化模型下,应用KL(Kullback-Leibler)距离度量查询语 言模型θq和文档语言模型θm的相似度[19],本发明应用KL距离计算公式(5-3)中查询与微博的相关性sim(q,m),将sim(q,m)定义为:
其中,V是整个词汇表,w是V中的词项,P(w|θq)与P(w|θm)分别是w在查询语言模型θq和文档语言模型θm中的分布。
P(w|θm)通常采用最大似然估计,使用平滑技术解决数据稀疏问题。本发明使用JM(Jelinek-Mercer)平滑方法[97]来平滑微博语言模型:
p(w|θm)=(1-λ)p(w|m)+λp(w|C) (5-13)
其中p(w|m)是w在微博m中出现的概率,p(w|C)是w在文档集合上出现的概率。
θq为查询语言模型,代表的是用户的兴趣。为了解决微博中用户查询短的问题,P(w|θq)的估计通常采用原始查询的最大似然估计与查询扩展模型结合[20],一般的形式为:
P(w|θq)=(1-λ)Pml(w|q)+λP(w|θqe) (5-14)
对于θqe,本发明使用相关模型[33]估计。在相关模型中,查询词的生成看作是从一个相关模型中抽样出来的:
其中R表示相关微博,采用伪相关反馈获得。
1.3.3.3过滤模型的参数估计
将公式(5-10)、(5-11)和(5-12)代入公式(5-3),则基于历史微博的微博过滤模型框架的一个实例可以表示为公式(5-16)的形式,其中,分类模型由逻辑回归实现,检索模型由语言模型实现:
其中,δ用来控制语言模型的影响大小,x是微博m的特征向量,w是x的权重,b是偏置,KL(θm,θq)是微博和查询语言模型的KL距离,γ(t)的定义如公式(5-9)所示。
对于参数w和b,采用如下策略估计。首先,定义损失函数为:
其中:
cost(hw,b,γ,δ(x,θm,θq),y)=-ylog(hw,b,γ,δ(x,θm,θq))-(1-y)log(1-hw,b,γ,δ(x,θm,θq)) (5-18)
在参数训练的时候,使用梯度下降法来最小化损失函数L(w,b)以估计参数w和b。对于每一个训练样例(x(i),y(i)),w和b将按照下面的公式更新:
1.4实验与分析
1.4.1实验设置
1.4.1.1实验数据
本发明在TREC 2012微博过滤任务的数据集上验证了基于历史微博的微博实时过滤模型的性能。TREC 2012微博过滤数据集使用了TREC 2011微博检索的数据集。该数据集的组成及预处理参见2.4节。
TREC 2012微博实时过滤任务的训练数据集合由10个查询(1,6,11,16,21,26,31,36,41,46)组成,其余38个查询作为测试数据[1]。每个查询由查询词、查询开始时间、查询结束时间组成。开始时间标记了第一个已知相关微博的发布时间,结束时间标记了最后一个已知相关微博的发布时间。
根据微博过滤任务的设置,对于每一个查询,数据集被分为独立的三个部分:查询开始时间之前发布的微博、查询开始时间与查询结束时间之间发布的微博,查询结束时间之后发布的微博。其中,在查询开始时间之前发布的微博被用作静态历史微博数据,本发明用其进行查询扩展和平滑语言模型,并使用静态历史微博和第一条相关微博来初始化过滤模型。根据TREC微博过滤评测的设置,查询开始时间与查询结束时间之间的微博被用作过滤数据集,查询结束时间之后的微博被忽略。
1.4.1.2基线方法和模型训练
实验中,将本发明提出的基于历史微博的微博实时过滤模型标注为HMFM(HistoryMicroblog-based real-time Filtering Model)。作为对比,实验选取基于语言模型的方法和基于逻辑回归模型的方法作为基本的基线方法,分别标注为LM和LR,即当公式(5-16)中δ=0时的结果用LR标注,当δ=1时的结果标注为LM。同时选择了以下五个先进的基于分类或基于检索的微博过滤模型作为基线方法。
(1)Rocchio。Rocchio表示应用经典的Rocchio方法实现微博过滤任务的结果。
(2)SVM。SVM表示应用SVM方法实现微博过滤任务的结果。
(3)TSFM。TSFM尝试着串行组合了基于分类的SVM和基于检索模型的LM方法。在该方法中,过滤器保留了经分类模型SVM判定为相关的且经检索模型LM判断为相关的那些微博作为过滤系统的相关微博。
(4)SVMQE。Karimi等人通过语言模型来增加正例的数目的方式,来训练SVM模型。对于每一个查询,他们使用语言模型检索到的微博排序列表的前n个微博作为相关微博,并且利用这些相关微博来训练一个基于SVM的过滤器。
(5)HMFM_F。HMFM_F是本发明所提HMFM方法中的利用历史微博信息构建的先验g(m,t,q)当做一个特征。
(6)RSBF。RSBF作为本章的强基线方法,是TREC 2012微博过滤评测中,在评价指标T11SU上获得了最高得分的模型。该模型是本人所在研究小组在评测时所使用的过滤模型。RSBF在语言模型框架下,实现了基于微博内容和链接网页的微博过滤模型,最终的过滤结果为经基于内容的过滤器判为相关的微博和基于URL的过滤器判为相关的结果的交集。RSBF本质上是本发明所提过滤模型的一个简化版本。
实验中各个参数设置如表1所示。其中,语言模型的平滑系数、查询扩展的反馈文档数和反馈词数参考文献设置,逻辑回归模型的学习速率依据现有技术设置。基于历史微博的过滤模型的各个参数基于训练数据训练获得。
表1实验参数设置
1.4.1.3评价指标
TREC 2012微博过滤任务使用T11SU和F0.5作为主要评价指标,使用precision和recall作为参考评价指标。
T11SU是一个TREC过滤评测的常用指标,它的取值主要由一个线性效用函数(linear utility function)T11U决定。对于T11U,如果过滤系统将一个相关微博展示给用户将获得2倍的奖励,将一个不相关微博展示给用户将获得1倍的惩罚,T11U的计算如(5-21)所示[1]:
T11U=2*TP-FP (5-21)
其中,TP是将相关微博判为相关微博的数目,FP是将不相关微博判为相关微博的数目。
为了不同的查询之间可以更好地进行比较,TREC对T11U使用最大-最小归一化函数进行归一化,将归一化的结果用T11SU表示:
其中MaxU是理论上T11U的最大值,MinU根据TREC评测中的要求被设置为-0.5:
MaxU=2*totalrelevant (5-23)
MinNU=-0.5 (5-24)
NormU=T11U/MaxU (5-25)
归一化将T11SU的取值设定在0与1之间。如果过滤系统将所有的样本都判为反例,则T11SU等于1/3。这意味系统过滤掉了所有微博,即不向用户展示任何新发布的微博。此时,过滤系统既没有提高用户的效率也没有浪费用户的时间,故将T11SU=1/3称为“zeroeffort”基线值。
F0.5是基于Fβ评价指标定义的,Fβ是一个衡量精确率和召回率的函数,其定义如下:
其中,参数β用于衡量公式中每个部分的权重。显然,当β=0.5时,Fβ更关注精确率。
1.4.2实验结果及分析
1.4.2.1实验结果
表2报告了测试数据上本发明方法和基线方法的实验结果,表中HMFM表示本发明提出的基于历史微博的实时过滤模型。表2表明,在过滤的早期阶段,过少的训练数据影响了基线方法LR和LM的性能。尽管对于SVMQE来说,其性能通过利用检索模型的结果增加训练数据的方法获得了一定的提升,而TSFM通过组合SVM和LM的结果性能较基本的LM和LR方法也有了一定的提升,将历史微博构建的先验作为特征为带来更大的提升,主要是这些组合检索模型和分类模型的方法本质上并没有解决早期分类面不准确的问题,因此其性能的改善并不明显。
与TSFM和SVMQE不同,本发明提出的HMFM通过使用历史微博提供的先验知识纠正分类面。实验结果表明,本发明提出的HMFM显著优于两个基线方法LR和LM,且优于TREC2012微博过滤在T11SU指标上取得第一的方法RSBF。但是,与RSBF相比,HMFM具有更多的优势:在RSBF中,过滤器需要利用微博所包含的URL链接所指向的网页信息(系统开销比较大),而HMFM不需要这些额外的外部资源。为了进一步对比,在HMFM采用同样的方式引入了URL信息,用HMFM+URL表示。实验结果表明,在使用同样信息的情况下,HMFM在主要评价指标上显著优于RSBF。
注:显著性检验采用T校验(pair T-test)。*表示显著优于LR(p<0.01),+表示显著优于LM(p<0.05),$表示显著优于RSBF(p<0.07),#表示显著优于RSBF(p<0.05)。
1.4.2.2参数的影响
图5展示了参数δ对基于历史微博的微博实时过滤模型模型的影响。当δ=0时,基于历史微博的微博实时过滤模型退化为LR模型,当δ=1时,基于历史微博的微博实时过滤模型退化为LM模型。随着δ的增加,HIMFM的T11SU、F0.5及precision持续上升并且逐步趋于稳定,但是recall开始下降。当δ>0.3时,δ的变化对HMMFM的影响开始变小。
图6展示了NRM0对基于历史微博的微博实时过滤模型的影响。NRM0是NRM的初始值,即过滤任务刚开始时可能存在的相关微博数量。它的值越高,意味着我们假设在过滤开始时有越多的相关微博。而事实上,在过滤早期相关微博的数目并不多。因此,太高的NRM0值将导致性能的下降。
图7描述了基于历史微博的微博实时过滤模型性能随时间的影响范围φ的变化。通过图7可以看出,φ的取值对性能的影响先升后降。当φ=105时,模型获得了最高的T11SU和F0.5值。本质上φ决定了被相关微博影响的时间近邻的范围,φ=105的影响范围总体上与所呈现出来的微博近邻性在时间上的分布是一致的。φ过小使得相关微博的影响范围太小,时间特性发挥的作用比较小,因此性能较低。φ过大导致时间影响涉及的范围过大,削弱了近邻微博之间的相互影响,因此当采用过大φ时,过滤性能会明显下降。
图8展示了λ对基于历史微博的微博实时过滤模型性能的影响。λ值决定了相关微博对NRM的影响强度,λ越高,T11SU下降越明显。
1.4.3讨论
微博实时过滤任务是一个复杂且富有挑战的任务。除了1.1提出的问题外,微博实时过滤还具有不平衡数据及单边反馈的问题。本发明提出的基于历史微博的微博实时过滤模型从一定程度上有助于上述问题的解决。
不平衡数据问题。在微博过滤中,相关微博和不相关微博的比例是1:30000,由于实验数据仅是Twitter数据的抽样,真实情况下,这个比例将更高。严重的不平衡数据对分类模型的影响极大。尤其在过滤的早期阶段,当分类模型还没有学到一个准确的分类面之前,不平衡数据对分类模型的影响更大。一些研究利用提前过滤掉一些微博的方法避免不平衡数据的问题,比如文献[83]将不含有任何查询词的微博提前过滤掉以解决不平衡数据问题。而在本发明的方法里,利用基于历史微博信息构建的先验知识,过滤掉了大量与查询具有较低相关度得分的不相关微博模型,从一定程度上缓解了不平衡数据问题。
单边反馈问题。在微博实时过滤中,用户的反馈是单边反馈,这意味着只有被过滤系统判为相关的微博才能获得用户的反馈信息。单边反馈严重的削弱了经典的在线过滤器的性能。D.Sculley的研究展示,对于采用错误驱动的分类模型,一旦分类面向着正例方向移动,就不会再移回[103]。只有分类模型学习到位于反例一侧的训练用例,超平面才会向反例方向移动[103]。然而,在本发明的方法中,如果具有较高相关度得分但位于反例一侧的微博,由于先验知识的作用,它将被给予较高的概率参与模型的学习,如图3(c)所示。因此,本发明的过滤模型从一定程度上缓解了单边反馈的问题。
本发明研究的主要内容是微博实时过滤任务,利用历史微博的排序信息和时间近邻性构建微博与查询的相关度先验知识,并通过这个先验来动态地修正分类面,据此提出了基于历史微博的微博实时过滤模型。该模型本质上是利用历史信息将分类模型和检索模型融合在一起。尽管本章的模型以逻辑回归和语言模型为例给出了实例,但理论上,本章提出的基 于历史微博的微博实时过滤模型框架也可以应用其他分类模型和检索模型实现。
本发明提出的实例在TREC 2012年的微博过滤数据上进行了验证。实验结果表明,该实例的性能优于基于语言模型和基于逻辑回归模型的过滤模型,同时也优于多个其他先进的微博实时过滤模型。
与其他过滤任务(例如垃圾邮件过滤)相比,微博过滤任务是一个与查询相关的过滤问题。因此,将历史微博中所包含的检索模型信息融入到分类模型中获得了一定的收益。如何从历史微博中挖掘出更多有用的信息,如何将检索模型和分类模型更好地融合仍然是一个开放的问题,有待于进一步探索。
针对本发明进行如下阐述:
时间是微博信息的一个重要维度。本发明利用微博的时间特性,分析了词语时间分布、查询的时间分布、文档的时间分布,探究了如何利用时间来解决微博检索和微博过滤中的查询建模、文档建模、相关度计算和实时过滤问题。
本发明针对微博实时过滤条件下如何有效融合检索模型和分类模型的问题,提出了基于历史微博的微博实时过滤模型。具体地,该模型将历史微博的排序信息以及时间近邻性应用在检索模型中构建先验知识,并利用先验知识动态调整分类模型的分类面,建立了融合检索模型和分类模型的微博过滤模型框架。进一步,本发明使用语言模型和逻辑回归模型实现了该框架的一个实例,给出了具体参数的估计方法。在TREC 2012微博过滤数据集上的实验表明,基于历史微博的微博实时过滤模型的性能优于多个先进的微博过滤模型及TREC 2012微博过滤评测中最好结果。这表明,历史微博能够提供有效先验信息,将检索和分类融合在一起。