基于人群画像技术的用户相似度计算方法与流程

文档序号:12177137阅读:3293来源:国知局

本发明属于信息识别技术领域,特别涉及一种基于人群画像技术的用户相似度计算方法。



背景技术:

微博是现阶段最热门的社交媒体,以新浪、腾讯为代表的国内微博网站的用户规模在近几年得到飞速增长。以新浪微博为例,截止到12年底,其注册用户数已经超过5亿,而每天的活跃用户数就已经突破4620万人。随着微博行业的快速发展,和其相关的各种应用和服务正在创造越来越多的商业价值。

让用户使用个性标签是新浪和腾讯等主流网站提供的一个重要服务,用户可以使用这些标签来描述自己的身份、职业、兴趣、宗教信仰等个人属性,甚至是表达自己的某些观点。作为用户个人属性描述的重要补充,用户的标签连同个人信息页面的其它内容都能作为浏览者详细了解该用户的重要信息来源。而深入了解一个用户则对很多现实的应用有所帮助,如特殊用户搜索、好友推荐、在线广告和企业的客户关系管理等等。因此,为每个微博用户推荐一组能够准确描述用户相关属性的标签对于刻画不同用户群体的特征,或称作用户人群画像,具有重要意义。同时,基于用户标签的用户相似度计算,在好友推荐,内容推荐方面都有广泛的应用。

已有的社会标签推荐系统使用的方法并不能直接应用于微博用户标签的场景,这是因为:现有的社会标注系统大都针对网络物体的标注,如Flickr网站中的图片或者URL链接资源。这些系统都是为用户提供标签来标注物体,而非用户本身。像很多以协同过滤(collaborative filtering)[1]为基本推荐机制的推荐算法都是建立在这样一个假设之上。假设用户A和用户B之前已经对很多物体对象的标注使用了相同或相似的标签,就说明A和B对事物的认知非常相似,那么A对于一个新物体的标注则很有可能使用B对该物体用过的相同标签。但是,在对微博用户的标注中,这种假设并不成立,因为用户只会对自己标注,甚至很多用户对自己都没有使用任何标签。

社会标注更看重大多数人对某一物体对象的集体偏好来做标签推荐,而标注微博用户却要考虑如何真实地刻画被标注用户的个人偏好。显然,发掘用户的个人特性和偏好要比寻找大众的偏好更难,因为每个人都有自己独特的个性。

冷启动(cold start)问题,尤其考虑到新浪微博用户中有将近一半的人是没有任何标签的。所谓冷启动,是指在向一个用户推荐某个新出现的物体(如某件商品)时,由于对于该物体没有历史的推荐记录可以参考,使得推荐算法无法起作用。一个真实的人远比一个物体复杂,他可以使用很多个标签来分别描述自己各个方面的特性,例如教育背景、兴趣爱好,甚至是崇拜的明星等等。怎样才能找出一组多样化的标签是非常具有挑战性的工作。标签中存在的语义冗余问题。如新浪微博只允许一个用户最多使用10个标签,那么每个用户自然希望每个标签都尽可能地描述自己,对于同义词或者近义词一般来说是不会同时放入自己的标签列的。

[1]T.Hofmann.Collaborative filtering via Gaussian probabilistic latent semantic analysis.In Proc.of SIGIR,2003.



技术实现要素:

发明目的:本发明提供一种基于人群画像技术的用户相似度计算方法,利用微博用户标签来对互联网用户做人群画像;利用中文知识图谱来识别标签中的语义冗余;将信息检索中对关键词的tf-rw(词频-相关权重)打分机制应用于微博标签的挖掘,并对算法做相应改进提高标签推荐准确率;将LDA文本主题模型应用于微博用户的标签集合,从而刻画出每个微博用户的主题分布,为准确的人群画像服务;利用微博标签以及微博主题分布来计算用户相似度。从而解决上述现有技术中出现冷启动、不能多样化刻画人物、语句冗余等问题。

技术方案:为实现上述目的,本发明采用的技术方案为:

基于人群画像技术的用户相似度计算方法,包括标签推荐模块、标签主题类聚模块、用户相似度计算模块;

其中,所述标签推荐模块算法步骤包括:同质性推荐、共现性扩展和消除语义冗余;

其中,所述标签主题类聚模块用于对标签推荐模块产生的标签信息进行聚类分析;

其中,所述用户相似度计算模块用于对标签主题类聚模块产生的用户标签以及聚类分析的结果,进行用户的相似度的计算。

进一步,所述同质性推荐的具体算法步骤包括:

步骤(A),从目标用户u的互粉好友群体中选出最频繁使用的标签tag作为目标用户u的候选标签;

步骤(B),通过评分函数score(tag)对候选的标签tag进行排序,评分函数score(tag)是候选的标签tag的分值,利用tf-rw词频打分机制来计算评分函数score(tag),score(tag)=tf(tag)×rw(tag),tf(tag)和rw(tag)的计算公式如公式(1)和(2)所示

其中,在公式(1)中,Ngb(u)表示目标用户u的微博互粉对象集合,n(Ngb(u),tag)是集合Ngb(u)中的用户使用了标签tag的人次,而(Ngb(u))则表示目标用户u的微博互粉对象Ngb(u)使用的全体标签集合;

公式(2)中,N是所有微博用户总数,n(tag)是所有微博用户中使用了标签tag的人数。

进一步,所述步骤(A)前增加标签传播算法对候选的标签t的计算,其具体步骤包括:

步骤(A1),对于目标用户u的微博互粉好友中没有标签的用户v,使用的tf-rw方法利用用户v的互粉好友的最频繁使用的标签来生成用户v的标签集合;

步骤(A2),生成目标用户u的ego网络,该ego网络的所有结点为目标用户u和他所有互粉好友,互粉关系编为所有节点之间的连接边,后续的标签传播都局限在该ego网络中。

进一步,所述共现性扩展用于利用标签之间的共现关系来扩充推荐给微博用户的候选标签,使得最终推荐给用户的标签有足够的多样性,多方面刻画用户的属性。

进一步,所述共现性扩展的具体操作步骤包括:

步骤(C),对候选集合C中每一个候选的标签tag,对其进行共现标签挖掘,然后选出与tag共现关系最强的前k个标签,作为扩展标签。该标签tag为扩展标签的父标签,共现关系的计算公式score(tag,tag’)如公式(3)所示:

score(tag,tag′)=tf(tag)×rw(tag,tag′) (3)

步骤(D),用C′来表示共现性扩展结束后得到的候选推荐标签集合,那么C′-C则代表了这一步中新扩展出来的标签,由于C′是通过两种方式推荐排序机制得到的,因此需要对C′中的标签进行统一重新排序,重新排序的核心思路就是要保证C′-C中的新增标签的排序评分和之前一步得到的C集合中的标签既有竞争力,又小于其父标签的排序评分,新的排序评分函数newScore(tag)如公式(5)所示:

其中,p(tag)是tag的父标签,即该tag是由p(tag)通过共现性扩展方法扩展而来;λ∈(0,1)是一个惩罚因子,Z则是标准化因子,一般设为在tag的共现标签中的得分最大值。

进一步,所述消除语义冗余用于鉴别标签列表中的同义标签或近义标签,消除候选标签组中存在的同义标签或近义标签,消除冗余。

进一步,所述消除语义冗余的具体操作为:从在线百科网站上获取的语义实体数据构建中文知识图谱,通过将候选标签组中的所有标签映射到图谱网络中,度量出两个标签之间的语义距离,该距离为两词之间的相似程度,邮箱此诚不判断是否为近义词或同义词,删除该近义词或同义词,删除后的候选标签组为用户预估标签。

进一步,所述语义距离具体计算方式如下,用u和v来表示两个在语义网络中的标签,图谱网络是一个有向网络,用In(u)和In(v)来分别表示指向标签u和标签v的结点,而用Out(u)和Out(v)来分别表示标签u和标签v指向的结点。每个标签的权值weight(u)计算如公式(6)所示:

这里的N是整个语义网络的结点总数。那么两个标签的相似度利用带权值的Jaccard相似度系数计算,公式如(7)所示:

进一步,所述标签主题类聚模块将标签推荐模块中产生的用户预估标签进行聚类分析,每一个类可以代表一个主题或一个用户群体,从而判断出每位用户所属的类,得到的标签主体分布。

进一步,所述标签主题类聚模块的聚类方法为利用LDA工具对用户预估标签的主题分布进行聚类分析。

进一步,所述用户相似度计算通过利用cosine距离或者Kullback-Leibler距离或者Jensen-Shannon距离来计算两个用户的用户标签和标签主题分布的相似度,利用Noisy-Or模型综合两个用户相似度,得到最终的两个用户的相似度。

有益效果:与现有技术相比,本发明具有以下优点:

1、采用同质性推荐方法,将他的互粉好友最常使用而且信息量丰富的标签推荐给他,解决了冷启动问题,尤其考虑到新浪微博用户中有将近一半的人是没有任何标签的;

2、采用了共线性扩展方法利用标签之间的共现关系来扩充推荐给微博用户的候选标签,从而使得最终推荐给用户的标签有足够的多样性,解决了多样化刻画用户多方面的属性;

3、从在线百科网站上爬取的数据构建了一个中文语义网络。通过将微博标签映射到语义网中的实体,能够度量两个标签之间的语义距离,即相似程度,将相似标签删除,解决了推荐的标签中存在的语义冗余问题。

附图说明

图1是本发明的模块示意图。

具体实施方式

基于人群画像技术的用户相似度计算方法,包括标签推荐模块、标签主题类聚模块、用户相似度计算模块;其中,所述标签推荐模块算法步骤包括:同质性推荐、共现性扩展和消除语义冗余;其中,所述标签主题类聚模块用于对标签推荐模块产生的标签信息进行聚类分析;其中,所述用户相似度计算模块用于对标签主题类聚模块产生的用户标签以及聚类分析的结果,进行用户的相似度的计算。

前述同质性推荐的具体算法步骤包括:

步骤(A),从目标用户u的互粉好友群体中选出最频繁使用的标签tag作为目标用户u的候选标签;

步骤(B),通过评分函数score(tag)对候选的标签tag进行排序,评分函数score(tag)是候选的标签tag的分值,利用tf-rw词频打分机制来计算评分函数score(tag),score(tag)=tf(tag)×rw(tag),tf(tag)和rw(tag)的计算公式如公式(1)和(2)所示

其中,在公式(1)中,Ngb(u)表示目标用户u的微博互粉对象集合,n(Ngb(u),tag)是集合Ngb(u)中的用户使用了标签tag的人次,而(Ngb(u))则表示目标用户u的微博互粉对象Ngb(u)使用的全体标签集合;

公式(2)中,N是所有微博用户总数,n(tag)是所有微博用户中使用了标签tag的人数。

前述步骤(A)前增加标签传播算法对候选的标签t的计算,其具体步骤包括:

步骤(A1),对于目标用户u的微博互粉好友中没有标签的用户v,使用的tf-rw方法利用用户v的互粉好友的最频繁使用的标签来生成用户v的标签集合;

步骤(A2),生成目标用户u的ego网络,该ego网络的所有结点为目标用户u和他所有互粉好友,互粉关系编为所有节点之间的连接边,后续的标签传播都局限在该ego网络中。

前述共现性扩展用于利用标签之间的共现关系来扩充推荐给微博用户的候选标签,使得最终推荐给用户的标签有足够的多样性,多方面刻画用户的属性。

进一步,所述共现性扩展的具体操作步骤包括:

步骤(C),对候选集合C中每一个候选的标签tag,对其进行共现标签挖掘,然后选出与tag共现关系最强的前k个标签,作为扩展标签。该标签tag为扩展标签的父标签,共现关系的计算公式score(tag,tag’)如公式(3)所示:

score(tag,tag′)=tf(tag)×rw(tag,tag′) (3)

步骤(D),用C′来表示共现性扩展结束后得到的候选推荐标签集合,那么C′-C则代表了这一步中新扩展出来的标签,由于C′是通过两种方式推荐排序机制得到的,因此需要对C′中的标签进行统一重新排序,重新排序的核心思路就是要保证C′-C中的新增标签的排序评分和之前一步得到的C集合中的标签既有竞争力,又小于其父标签的排序评分,新的排序评分函数newScore(tag)如公式(5)所示:

其中,p(tag)是tag的父标签,即该tag是由p(tag)通过共现性扩展方法扩展而来;λ∈(0,1)是一个惩罚因子,Z则是标准化因子,一般设为在tag的共现标签中的score(tag,tag’)最大值。

前述消除语义冗余用于鉴别标签列表中的同义标签或近义标签,消除候选标签组中存在的同义标签或近义标签,消除冗余。

前述消除语义冗余的具体操作为:从在线百科网站上获取的语义实体数据构建中文知识图谱,通过将候选标签组中的所有标签映射到图谱网络中,度量出两个标签之间的语义距离,该距离为两词之间的相似程度,邮箱此诚不判断是否为近义词或同义词,删除该近义词或同义词,删除后的候选标签组为用户预估标签。

前述语义距离具体计算方式如下,用u和v来表示两个在语义网络中的标签,图谱网络是一个有向网络,用In(u)和In(v)来分别表示指向标签u和标签v的结点,而用Out(u)和Out(v)来分别表示标签u和标签v指向的结点。每个标签的权值weight(u)计算如公式(6)所示:

这里的N是整个语义网络的结点总数。那么两个标签的相似度利用带权值的Jaccard相似度系数计算,公式如(7)所示:

前述标签主题类聚模块将标签推荐模块中产生的用户预估标签进行聚类分析,每一个类可以代表一个主题或一个用户群体,从而判断出每位用户所属的类,得到的标签主体分布。

前述标签主题类聚模块的聚类方法为利用LDA工具对用户预估标签的主题分布进行聚类分析。

前述用户相似度计算通过利用cosine距离或者Kullback-Leibler距离或者Jensen-Shannon距离来计算两个用户的用户标签和标签主题分布的相似度,利用Noisy-Or模型综合两个用户相似度,得到最终的两个用户的相似度。

下面结合实施例对本发明作更进一步的说明。

如图1所示,针对上述背景技术中提及的技术难题和研究目的,本技术在以往相关研究技术的基础上,融入全新的算法思想,并借助海量的互联网语义实体信息(中文知识图谱)实现了准确的微博用户人群画像技术。本技术涵盖的技术内容主要分为微博用户的标签推荐和标签主题聚类两大模块,其中标签推荐模块中涉及的推荐算法又涵盖三个主要的工作步骤。算法的每一步正好应对了上述每一个挑战中的难题。同时基于标签推荐的结果,我们实现了用户相似度计算的模块。

模块一:标签推荐:涉及的标签推荐算法三个步骤简述如下:

同质性推荐:这一步是为了解决冷启动问题。核心思想是对于一个微博用户,将他的微博好友最常使用的标签推荐给他。在对候选标签进行筛选排序时,可以使用frequency(使用频率最多的标签)、tf-idf(词频-倒文档频率)和tf-rw三种打分机制。经过实证研究,优选地采用tf-rw打分机制,该机制同样基于tf-idf思想,能够更进一步地去除那些过于被全体用户广泛使用的标签,而保留那些对目标用户具有个性刻画能力的标签。除了这几种标签打分机制外,同时我们还实现了一种局部的多标签传播算法来为目标用户生成推荐的标签。

共现性扩展:本模块还利用标签之间的共现关系来扩充推荐给微博用户的候选标签,从而使得最终推荐给用户的标签有足够的多样性,尽可能地刻画用户多方面的属性。

消除语义冗余:为了消除候选标签组中存在的语义冗余,从在线百科网站上爬取的语义实体数据构建了一个庞大的中文知识图谱(Chinese knowledge base)。通过将微博标签映射到图谱网络中的实体,度量出两个标签之间的语义距离,即相似程度。最后,系统利用这种语义相似度来鉴别推荐标签列表中的同义标签或近义标签。

模块二:标签主题聚类:本模块将上一模块产生的微博用户标签用LDA工具进行聚类分析,每一个类可以代表一个主题或一个用户群体,从而判断出每位用户所属的类(人群)。特别要指出的是,在本说明书中描述的微博好友指代一个微博用户的“粉丝”、“关注”和“互粉对象”三种好友关系,一般在算法中优选地使用“互粉对象”作为微博好友。

模块三:用户相似度计算:本模块利用上面模块产生的用户标签以及LDA聚类分析的结果,来计算用户的相似度

模块一:标签推荐:

1、基于同质性的标签推荐

同质性是指具体相同或相似属性的人之间相比其他人更容易产生社会交往行为,如成为好友、主题跟随行为等等。同质性已经被看作是各类社交媒体中的一种广泛存在的现象,甚至在如Twitter用户组成的社会网络中。例如,互相关注的Twitter用户中表现出更多相似的兴趣爱好、地理位置或者是影响力等等。实验证明,在微博社会网络中,具有亲密社会关系(微博好友)的用户之间使用的标签具有很大程度的相似性。这个结果为基于同质性的标签打分机制提供了事实依据,即从用户的好友群体中按照某种排序机制选出最频繁使用的标签来推荐给目标用户u的候选标签组。这一步产生的候选标签集合标记为C,它将作为下一个推荐步骤的输入。在此需要一个评分函数s(t)来对候选的标签t进行排序,同时也要保证选出的标签具有一定的描述性,即不能是被大多数用户过于广泛使用的标签。

a)标签打分机制:利用tf-rw打分机制来计算s(t)的分值,即s(t)=tf(t)×rw(t)。tf(t)和rw(t)的具体计算参考以下公式1和2,其核心思想与文档关键词检索使用的tf-idf思想一致。公式1中,Ngb(u)表示u的邻居(即微博互粉对象)集合,r(t)是集合Ngb(u)中的用户使用了标签t的人次,而T(Ngb(u))则表示Ngb(u)人群使用的全体标签集合。公式2中,n(t)是全体用户中使用了标签t的人数,N则是全体用户数。

b)局部多标签传播:步骤B除了上述的tf-rw打分机制来对排序出要推荐给目标用户的候选标签,我们还提出一种基于经典标签传播算法(简称LPA)的算法来生成候选标签组。该算法基本过程为,对于一个目标用户u首先生成他的ego网络,该网络的所有结点为u和他所有互粉好友,边即是这些点之间存在的互粉关系边,后续的标签传播都局限在该ego网络中。首先,对于u的互粉好友中没有标签的用户v,使用上述的tf-rw方法来生成v的标签组,然后再对u应用tf-rw方法生成其推荐的标签组,这个过程为一次传播迭代。由于每次迭代都可能改变ego网络中的部分结点(那些没有初始标签的用户)的标签,因此该算法可以多次迭代,直到为u生成的候选标签组不再改变,即收敛。已经有前人的研究成果证明该算法是能在有限迭代次数内收敛的。考虑到我们提出的改进LPA算法只局限于目标用户的ego网络,并能产生多个标签,因此称为局部多标签传播算法。

2.基于共现性扩展的标签推荐

对于C中每一个标签t,对其进行共现性标签的关联挖掘,然后选出与t共现关系最强的前q个标签,标记为ti。这里,用st(ti)分值表示与标签t有共现关联的标签tj的共现性强度,具体计算公式仍然参考公式2。在与t有共现性关联的所有标签中,选取st(ti)分值排在前q位的ti加入t的扩展列表中。这里t被称作ti的父标签,用p(ti)表示。如果扩展出来的标签ti已经存在于C中则可以直接忽略。经过这一步扩展,最多可以增加k×q个标签到C中。如果用C′来表示这一步工作结束后得到的候选推荐标签集合,那么C′-C则代表了这一步中新扩展出来的标签。有了C′以后,还需要对C′中的每一个标签重新排序,因为它包含由两种推荐排序机制得到的标签。重新排序的核心思路就是要保证C′-C中的新增标签的排序评分和之前一步得到的C集合中的标签既有竞争力,又小于其父标签的的排序评分。因此,需要对每一个ti∈C′定义一个新的排序评分函数s^(ti)。

3、消除标签的语义冗余

本步骤简言之,首先是利用从在线的中文百科网站获取的词条和词条链接信息构造出一个中文知识图谱(也包含不少英文词条),该图谱又可以看作是一个语义网络,网络中每一个结点代表一个词条描述的语义实体,正好对应一个标签,而每一条边则代表词条之间的超链接关系。因此,一个词条对应结点的邻居群体能够在很大程度上反映出该词条的语义内容。结合该语义网络的拓扑结构,本技术涵盖一种精确度量两个标签(结点)之间语义距离的计算方法,从而判别出两个标签在语义上是否足够接近,是则将其中一个移除推荐的候选标签列表。

模块二:标签主题聚类:经过上述步骤推荐出的标签既然能够准确、丰富地刻画微博用户的各种属性特征,那么对所有用户的标签集合进行主题分析后则能判断出该微博用户的用户群体分布。我们在此所用的具体算法为利用LDA工具对标签集合中的主题分布进行聚类分析,为每个微博用户生产一个对应的主题分布向量[v1,v2,…vk]。其中,k是主题总数,向量的每一维0<=vi<=1,代表用户属于主题i的概率。利用用户的主题分布向量,既判断用户所属的人群或兴趣爱好等特征,也可以量化地计算出任意用户之间的差异性距离,从而完成人群画像的目标。

模块三:用户相似度计算:经过前两个步骤,我们可以得到为用户推荐的标签集合以及用户的主题分布,然后我们可以使用cosine距离,Kullback-Leibler距离或者Jensen-Shannon距离来分别计算基于标签集合的和基于主题分布的用户之间的距离,然后对两个距离采取noisy-or模型计算最后的相似度值,得到最终的用户相似度。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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