基于统计数据的用户画像计算方法技术领域
本发明涉及大数据,特别涉及一种基于统计数据的用户画像计算方法。
背景技术
近年来,社交网络迅速发展,用户人数呈爆炸式增长。通过社交网络服务,
人们除了进行社交行为,则更多的是将社交网络当成公共的媒体平台,满足社
交需求和特定兴趣获取需求。对于用户的专业信息及特定兴趣获取需求,而当
前社交网络产品则不能很好的满足该需求,各类用户发表的信息混杂在一起,
用户需要自己去甄别其中自己感兴趣的信息。如果对社交网络特定领域中信息
走向及分布特点进行准确的研究,需要对其中的影响力用户进行深度的分析挖
掘,而短文本无法蕴含丰富的语义特征,这就使得很多在处理文本有较好性能
的算法直接用于社交网络数据的处理并不能得到很好的效果。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于统计数据的用
户画像计算方法,包括:
基于社交网络数据的统计,计算社交网络用户之间的关联强度,并基于用
户关联强度进行社区划分。
优选地,所述关联强度为社交网络中一个用户ui与其所有的关联用户所形
成连接的强度,所述计算社交网络用户之间的关联强度,进一步包括:
通过对用户发表的社交内容进行内容主题建模,训练得出用户社交内容的
主题分布,然后将此分布作为用户社交内容语言特征;
用G来表示影响力用户形成的有向图,图G中用户节点vi的邻居图包含
了vi和vi的所有一跳邻居节点,以及这些节点之间的连接;用户vi指向vj的关
联强度表示为vij;获取与用户vi以及关联用户有关的数据包括用户连接状态数
据Li和用户交互频度数据Ii,得到定义两节点间关联强度的计算公式为:
wij=Lij×Iij
其中Lij表示的是用户i和j间的连接状态,定义如下:
当vj是vi的关注者时,Lij=1,当vj是vi的关注者时,Lij=1,
Iij表示用户i和j间的交互频度,定义如下:
Iij=1+ω1Atij+ω2Covij+ω3Retij+ω4Prij
其中Atij指vj在主题内容中是否提到vi、Covij指vj是否与vi会话、Retij指
vj是否转发vi的主题、Prij指vj是否对vi评论,Atij,Covij,Retij,Prij均在是时
取1,否时取0,ω是各种交互行为相应的加权值;
所述基于用户关联强度进行社区划分,进一步包括:
在得到用户之间相互影响程度之后,通过以下过程完成特定领域影响力用
户社区的划分:每个节点的标签按相似度传播给相邻节点,在节点传播的每一
步,每个节点根据相邻节点的标签来更新自己的标签,在标签传播过程中,保
持已标注数据的标签不变,把标签传向未标注数据;最终当迭代过程结束时,
使相似节点的概率分布也趋于相似,划分到同一个类别中,完成标签传播过程:
1、为每个节点标定一个不同的社区id;
2、对于每一个节点,首先得到该节点的所有入节点以及这些入节点到该
节点的关联强度;
3、得到所有入节点到该节点关联强度最高的节点的社区id,将该节点的
社区id标记为此id,对另外的节点也进行上述的处理过程;
4、多次迭代2,3步中的处理过程。
本发明相比现有技术,具有以下优点:
本发明提出了一种基于统计数据的用户画像计算方法,通过分析特定领域
下用户主题的特征,帮助用户从海量数据中高效获取信息。
附图说明
图1是根据本发明实施例的基于统计数据的用户画像计算方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详
细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发
明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在
下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的
而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利
要求书实现本发明。
本发明的一方面提供了一种基于统计数据的用户画像计算方法。图1是根
据本发明实施例的基于统计数据的用户画像计算方法流程图。
针对用户在社交网络上对特定领域信息的需求,本发明利用社交网络数
据,准确识别特定领域影响力用户;在识别出的影响力用户群基础上,完成影
响力用户社交网络的构建及关联强度的估计,并基于用户关联强度进行社区划
分,为接下来挖掘影响力用户群内的主题分布做准备;本发明进一步利用特定
领域用户社区主题挖掘方法,分析社交网络数据特征及主题分布特征的基础上,
高效挖掘不同领域社区中热门主题;达到帮助用户从海量数据中高效获取信息
的目的。
为了能尽量完整的识别目标用户群体,本发明同时采用基于拓扑结构和基
于用户行为内容的算法,根据每个领域的相关先验信息,选择出部分种子用户
作为拓扑向外拓展的起点,然后根据种子用户,结合领域相关先验信息,得到
一个领域关键词列表;根据关键词列表搜索相关的用户状态,通过解析返回内
容,得到发表这些状态的用户,作为候选用户。根据候选用户获得这些用户的
社交网络数据,作为识别算法的数据源,来分析特定领域用户的特征。
其中数据获取方式有两种:一是对指定的页面进行抓取,这种方法直接访
问Web页面,得到原始数据,然后通过页面解析等方式对信息进行提取,获取
所需数据。另一种方式是通过开放平台提供的API获取数据。
本发明同时考虑用户的社交网络有向图结构关系和用户发表的内容信息,
将判别用户是否是该影响力用户的问题映射为一个分类的问题。以下是提取用
户特征的方法以及基于提取的用户特征构建分类器的过程。
本发明将特征分为三大类:用户属性特征、用户社交习惯特征、用户社交
内容语言特征。用户填写个人相关的一些信息过程中,系统会维持这些信息的
动态更新。可以通过开放API服务得到。影响力用户往往因其作为信息提供者
身份而在被关注人数、发布主题数量上有较高值。使用个性描述、标签两个特
征来分别反映用户个性描述部分和标签部分的情况。首先将训练集中正向样本
用户的所有个性描述及标签部分进行词频统计,得到词频高于预定阈值的的词
语集合D和T。然后,通过如下的计算公式;来得到个性描述和标签的记分值。
个性描述记分值=|Di∩D|/|D|
其中,Di指当前用户i的个性描述中出现的词。
标签记分值=|Ti∩T|/|T|
其中,Ti指当前用户i的个人标签列表。
影响力用户发表的内容往往具有较高的价值,这样会引来别人的大量评论
和转发。因此进一步统计每个主题的平均评论数和平均转发数的值,则来分析
影响力用户特征。
本发明综合考虑了转发内容和会话内容跟原始内容在主题分布上的一致
性,假定每篇文档是有多个主题形成的,同时每个主题是通过多个词语的分布
来表示的。将转发内容和会话内容间的关系添加到贝叶斯网络中。
将内容主题的生成过程描述如下:
1、随机选择一个主题分布θs。
2、判断是否是转发内容或者是会话内容。如果是转发内容或会话内容,
则将参数π标记为1,随机选择一个文档分布θc,然后,把θc的值赋给θs。如果不
是转发内容或会话内容,则随机选择一个文档分布θs;
3、在参数为θs的多项分布基础上,选择特定的词语w。
通过对用户发表的社交内容进行内容主题模型建模,本发明可以用一个主
题分布来作为用户社交语言特征的表示。使用内容主题模型对用户的社交内容
进行建模,训练得出用户社交内容的主题分布,然后将此分布作为用户社交内
容语言特征。
社交网络中,人们的交互有明显的社区性,相同社区内的用户多具有相同
兴趣或关注点并交流密切,不同社区通过关联节点进行连接。为了达到对特定
领域影响力用户的行为进行研究的目的,本发明进一步将该领域内的影响力用
户交互的社交网络重构出来,并对该社交网络图进行社区划分。
在社交网络中,用户的连接状态以及交互的频繁程度能够区分不同的强弱
连接关系,最终形成一个有加权值的社交网络。
有以下两种信息最能决定两者的关联强度:用户的连接状态:只有两个用
户是关注关系,两者在社交网络图上才会有连接形成。用户的交互频度:交互
行为都有主动方和被动方,因而也形成了社交网络图中连接关系的有向性。
用G来表示影响力用户形成的有向图,关联强度定义为社交网络中一个用
户ui与其所有的关联用户所形成连接的强度。己知用户在图G中对应的节点vi,
则vi的邻居图包含了vi和vi的所有一跳邻居节点,以及这些节点之间的连接。
用户vi指向vj的关联强度表示为vij。
获取与用户vi以及关联用户有关的数据包括用户连接状态数据Li和用户交
互频度数据Ii,则统一定义节点间关联强度的计算公式为:
wij=Lij×Iij
其中Lij表示的是用户i和j间的连接状态,构成了两个用户间连接的基础,
定义如下:
当vj是vi的关注者时,Lij=1,当vj是vi的关注者时,Lij=1,
Iij表示用户i和j间的交互频度,决定了两个用户间关联强度的强弱,定义
如下:
Iij=1+ω1Atij+ω2Covij+ω3Retij+ω4Prij
其中Atij指vj在主题内容中是否提到vi、Covij指vj是否与vi会话、Retij指
vj是否转发vi的主题、Prij指vj是否对vi评论,Atij,Covij,Retij,Prij在是时取1,
否时取0,ω是各种交互行为相应的加权值。
在得到用户之间相互影响程度之后,通过以下过程完成特定领域影响力用
户社区的划分。每个节点的标签按相似度传播给相邻节点,在节点传播的每一
步,每个节点根据相邻节点的标签来更新自己的标签。在标签传播过程中,保
持已标注数据的标签不变,把标签传向未标注数据。最终当迭代过程结束时,
相似节点的概率分布也趋于相似,划分到同一个类别中,从而完成标签传播过
程。
1、为每个节点标定一个不同的社区id。
2、对于每一个节点,首先得到该节点的所有入节点以及这些入节点到该
节点的关联强度。
3、得到所有入节点到该节点关联强度最高的节点的社区id,将该节点的
社区id标记为此id。对另外的节点也进行上述的处理过程。
4、多次迭代2,3步中的处理过程。
结合本发明对所建模文档集的先验信息来获取分层主题结构,然后针对不
同的分层主题,分别训练主题模型。训练流程如下:
1)结合对文档集的先验信息,得到主题层次结构树中间主题层的相关事件
或用户,具体地:在预定义信息平台抓取关键词的相关信息,并将关键词整理
成多个层级,每个层级赋予相应的加权值。在对某条数据进行判定是否属于某
个主题的时候,则对该条数据中存在的关键词相应的加权值做求和,加权值值
大于某个阈值则判定为属于该中间主题;按照中间层主题对数据集进行拆分,
得到各个事件或用户相关的数据;
2)根据每个中间层次主题的相关数据得到各个中间层次主题的细分主题;
3)针对每个中间层主题,计算其所有细分主题的主题重要度值,把部分无
意义的细分主题过滤掉;
4)为所有剩余的细分主题生成多种显示模式。
5)根据细分主题的关键词,到原始数据中做反向匹配,得出每个热门细分
主题相关的数据条数。
以下分别介绍了对细分主题进行重要性估计和生成细分主题显示模式的
过程。
通过以下步骤的计算,得到主题重要性的最终估计分数。
(1)给出无效主题的评价准则C,对于每一个主题k,将评价准则C进行线
性加权,并标准化为其中m为预设距离计算方法,从余弦距离、相对熵
和相关系数三种方法中选择。基于两种不同的方式来计算每个主题的相关评分。
第一种是基于计算值在所有计算值求和的加权值得出,计算如下:
C 1 k m = C k m Σ j = 1 , j ≠ k K C j m / Σ j = 1 K C j m ]]>
第二种是基于计算值的最大值和最小值得出,计算如下:
C 2 k m = ( C k m - C min m ) / ( C max m - C min m ) ]]>
在后续的步骤中,用于主题重要性评分值的计算,用于主题重要性
评分加权值的计算。
(2)在计算主题重要性之前,首先需要将通过不同距离计算公式计算得
到的与无效主题的距离整合成一个数值。对于主题k己经得出与不同计算无效
主题的距离的方法即余弦距离、相对熵和相关系数方法的评价准则C的计算分
值则最终的分值为:
S k m = ( C k C + C k L + C k R ) / 3 ]]>
将步骤1中的两个标准化以后的分数和代入上式,可以得到和
两个不同的分值。
(3)将步骤2中计算的分值参数和加权值参数进行整合。对于分值参数Sk
的整合:
S k = Φ c S 1 k m ]]>
其中,Фc是无效主题k计算所得距离的加权值。
对于加权值参数Фk的整合:
Φ k = Φ c S 2 k m ]]>
(4)得出重要性分值的最终计算公式为Sk×Фk
对计算得出的各个主题计算重要性分值,然后将重要性低的主题过滤掉,
达到主题筛选的目的。
为了让模型计算出的主题能显示更加丰富的信息,需要通过多种形式来显
示结果,这样才能更加准确的反映主题的信息。在一篇文档中,如果几个词语
相邻并且这几个词被分配到了相同的主题下面,则这几个词组合在一起有很到
的可能是一个更加有实际内涵的短语。对单个的词语进行聚合处理,得到由多
个组成的短语,并以此来作为主题的一种显示模式。通过找到主题相关的原始
内容作为主题的显示模式。首先对数据集中的所有社交内容构建了索引,然后
使用主题的关键词作为搜索关键词去原始内容集中搜索原始内容,使用预定义
数量的返回结果作为该主题的显示模式。
为了能够在可控时间内完成数据计算,本发明基于Hadoop分布式平台给
出了特定领域用户社区主题挖掘分布式架构。使用Hadoop进行模型训练是通过
将数据进行等量拆分,分发到不同的节点上,不同的节点针对每一份数据单独
进行计算,最终将各个节点的计算结果进行汇总,完成对总体数据的计算。在
每一次迭代之初将原始数据的各个数据分片分发到集群中不同的节点上,不同
节点独立的启动映射器任务对相应的数据分片进行计算,然后将模型的状态信
息迁移到同一个规约任务上,对各个分片状态汇总,完成模型整体状态的更新。
在模型参数的训练过程,记录模型主题分布的状态以及主题下关键词的分
布状态。使用两个矩阵来完成中间状态的记录:nw矩阵,记录每个词语在各个
主题上的分布情况;nd矩阵,记录每个文档在各个主题上的分布情况。在模型
训练迭代过程中,通过不断更新上述两个矩阵的状态信息,最终使模型达到收
敛。模型训练的过程为:
1)将主题个数记为T,则初始化阶段对原始数据中的所有词语随机分配一
个主题t,其中t∈{0…T-1},得到模型训练的原始数据。
2)按照数据分片的大小将原始数据切分成N等份,并将数据分片分发到集
群中不同的节点上。
3)针对每一个数据分片,在相应的节点上启动一个映射器任务。该映射器
任务首先本地加载一份全局的nw\nd矩阵,得到前一次迭代完成后模型的状态
信息。
4)在本地nw\nd状态矩阵的基础上计算本映射器任务数据块中所有词语新
的主题分布,并将对全局nw\nd矩阵的更新迁移到一个固定的规约任务中,然
后词语及其更新的主题分布迁移到另外的一个或多个规约任务中。
5)启动一个专门用于接收nw\nd矩阵更新信息的规约任务,用来集中处理
来自各个映射器任务的状态更新信息,然后对全局的nw\nd进行更新。另外的
规约任务则将词语及其更新的主题分布数据写入分布式文件系统中,为下一次
迭代做好准备。
6)重复上述2-5的过程,直到收敛。
社交网络各领域社区主题挖掘体系结构由数据采集模块、数据运算存储模
块、算法分析模块、任务管理模块、前端显示模块组成。数据采集模块通过调
用开放平台API和抓取网站网页两种方式,采集系统需要的用户相关数据,并
对数据进行解析、处理,最终将数据导入到数据存储模块。数据运算存储模块
为下层的数据采集模块提供原始数据存储服务,为上层的算法分析模块提供算
法计算结果数据存储服务,同时为前端显示模块提供显示数据存储服务。其中
分布式文件系统部分负责用户相关原始数据及算法中间结果的存储,MapReduce
部分负责数据的处理及算法运算,数据库用于存储算法的计算结果及前端显示
模块所需数据。算法分析模块实现并运行社交网络各领域社区发现模型和用户
社区主题挖掘方法,计算用户相关数据,得到数据挖掘结果。任务管理模块负
责其他各模块任务的分发和调度。前端显示模块显示算法的计算结果,将特定
领域用户的社区划分结果以及对各个社区主题挖掘的结果进行显示。
所述分布式文件系统,用于存储在社交内容采集的用户原始数据、模型训
练的中间数据以及部分算法的结果数据;存储用户信息及算法的计算结果,为
前端显示模块提供数据库功能支撑。分布式文件系统是在Linux文件系统基础上
实现的,因此存储其中的数据都是以纯文本形式存储。使用tab键作为各个字段
的分割符。对于模型训练的结果在分布式文件系统中也是以文本文件方式存储。
数据库中存储用户信息、用户连接关系、社交网络各领域社区发现模型对影响
力用户的社区划分结果及特定领域用户社区主题挖掘方法对影响力用户群主题
挖掘的结果,为前端显示模块提供数据库功能支撑。
综上所述,本发明提出了一种基于统计数据的用户画像计算方法,通过分
析特定领域下用户主题的特征,帮助用户从海量数据中高效获取信息。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以
用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多
个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码
来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发
明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本
发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围
的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围
之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或
者这种范围和边界的等同形式内的全部变化和修改例。