一种移动社交网络中的社交活动推荐算法技术领域
本发明属于数据挖掘与用户行为分析技术领域,特别涉及一种移动社交网络中的
社交活动推荐算法。
背景技术
移动社交网络是由多个具有相似兴趣或共同点的用户通过移动电话或平板电脑
等移动终端互连的社交网络,其兼有社会网络的社会性和移动通信网络的移动性,是一个
涉及用户社会关系的移动通信系统。但是这些社交网络系统主要局限于用户个体及其共同
点,如共同的兴趣、相同的好友等,不能使人们攫取现实的社交活动信息和社交资源。于是,
“基于主题活动的移动社交网络”的概念被提出。基于主题活动的移动社交网络以移动设备
为基础,且通过日常社交生活中的不同主题活动连接人们,如“音乐会”、“足球赛”、“聚餐”
等具体的主题社交活动。
因此准确判别人群特点和社交活动属性对于移动社交网络个性化内容推荐服务
具有重大意义,根据人群和社交活动的划分结果,可准确向目标用户推荐其感兴趣的社交
活动或者发掘目标用户潜在的社交活动兴趣点。
移动社交网络中现有的社交活动推荐方法可以分为基于内容的活动推荐方法和
基于协同过滤的活动推荐方法两大类型。
基于内容推荐根据用户的基本信息,如用户的兴趣爱好、地理位置信息、教育背景
等以及用户过去喜欢的项目,向用户推荐与基本信息及过去喜欢的项目相似的项目。该方
法是建立在项目的内容信息上做出推荐的,故其推荐的结果存在较大的局限性,其只能推
荐与用户已有信息类似的项目。
协同过滤的技术在数据挖掘领域已经有广泛的应用。该方法的基本思想是利用和
当前用户有相同兴趣爱好的其他用户对候选推荐项目的评分而判断该项目对当前用户的
价值,并作为推荐的评判标准。该方法虽然不依赖事物的内容,但需要依赖于用户对事物的
评分,并且会遇到“冷启动”等初始化问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种根据兴趣标签相似度、地理位
置偏好度和好友相似度等多个维度计算移动社交网络中用户对社交活动的基于内容推荐
算法的用户偏好,并根据用户偏好进一步计算出基于协同过滤的偏好,并且将两者相结合
进行权重分配;解决了基于内容的推荐造成的推荐结果机械化的局限,使得推荐的社交活
动更具有针对性和准确性的移动社交网络中的社交活动推荐算法。
本发明的目的是通过以下技术方案来实现的:一种移动社交网络中的社交活动推
荐算法,包括以下步骤:
S1、导入用户兴趣标签日志文件和社交活动标签日志文件,计算任意用户和任意
社交活动之间的标签相似度;
S2、导入用户地理位置日志文件和社交活动地理位置日志文件,获取用户当前地
理位置,计算任意用户和任意社交活动之间的地理位置偏好度;
S3、导入用户的好友列表日志文件和社交活动参与人员日志文件,计算任意用户
和任意社交活动之间的好友相似度;
S4、根据标签相似度、地理位置偏好度和好友相似度计算任意用户对任意社交活
动的用户偏好;
S5、根据用户兴趣标签日志文件和用户过往活动记录日志文件,计算任意一个用
户与其任意一个好友之间的相似度;
S6、根据该用户与其任意一个好友的相似度,以及该好友对任意社交活动的用户
偏好,计算任意用户对任意社交活动之间的基于协同过滤的偏好;
S7、根据任意用户对任意社交活动的用户偏好和基于协同过滤的偏好计算该用户
对社交活动的偏好评分;
S8、选定目标用户,根据目标用户对所有社交活动的偏好评分向目标用户推荐社
交活动。
进一步地,所述步骤S1具体实现方法为:用户兴趣标签日志文件由用户ID和兴趣
标签序号列表组成;设移动社交网络中的兴趣标签共分为k类,每类兴趣标签下有maxk个兴
趣标签,用户和社交活动共享一套兴趣标签集合;社交活动的标签日志文件由社交活动ID
和活动的标签序列号列表组成;任意一个用户u和任意一个社交活动e的标签相似度表示为
该用户的兴趣标签向量和该社交活动的标签向量的余弦相似性指标;其具体计算方法包括
以下子步骤:
S11、导入任意一个社交活动e的标签序号列表,确定其活动类别k;同时形成社交
活动e的标签向量为向量中各项赋值:对于标签i,若该社
交活动具有该标签,则赋值Le(i),i∈maxk为1,否则赋值为0;
S12、根据步骤S11中的活动类别k,导入任意一个用户u在该类别下的兴趣标签序
号列表,形成用户u兴趣标签向量为向量中各项赋
值:对于标签i,若该用户具有该兴趣标签,则赋值Lu,k(i),i∈maxk为1,否则赋值为0;
S13、用户u和社交活动e的标签相似度:将和计算点积,并除以和的2-
范数的乘积,得到和的余弦相似度,该余弦相似度即为用户u和社交活动e的标签相似
度simL(u,e):
进一步地,所述步骤S2具体实现方法为:用户地理位置日志文件由用户ID和用户
活动的经纬度组成,用户当前地理位置为移动设备GPS定位所确定的经纬度;社交活动地理
位置日志文件由社交活动ID和该活动的经纬度组成;设用户与社交活动的地理距离由d个
距离段完全覆盖;任意一个用户u对任意一个社交活动e的地理位置偏好度采用用户u在与
社交活动e相距的地理距离下参与该社交活动的归一化概率来表示;其具体计算方法包括
以下子步骤:
S21、获取任意一个用户u当前的经度lonu和纬度latu;导入任意一个社交活动e的
经度lone和纬度lone,计算任意一个用户和任意一个社交活动之间的距离d(u,e):
d(u,e)=R×Δσ
式中,R为地球半径;Δσ为两坐标的圆心角,其计算方法问:
Δσ=arccos(sin(latu)sin(late)+cos(latu)cos(late)cos(difflon))
式中,difflat=|latu-late|,difflon=|lonu-lone|;
S22、根据用户u的地理位置日志文件和导入的用户u的过往活动记录日志,确定用
户u过往在各个距离段参与社交活动的概率:设用户u共参加过N次社交活动,其中有Ni次活
动报名参与时与社交活动的地理距离处于距离段dj内,则用户u在距离段dj内参与社交活动
的统计概率qu(dj)=Ni/N,同时形成用户u在距离社交活动不同的地理距离的情况下参加社
交活动的概率分布Qu=[qu(d1),qu(d2),…,qu(dj),…],dj∈d;
S23、查看距离值d(u,e)在概率分布Qu中落入某距离段de的概率,即为该用户与该
社交活动之间的地理位置偏好度simD(u,e):
simD(u,e)=qu(de),de∈d (2)
de为用户u与社交活动e之间的地理距离。
进一步地,所述步骤S3具体实现方法为:用户好友列表日志文件由用户ID和好友
的用户ID列表组成,社交活动的参与人员日志文件由已报名参加该活动的用户ID列表组
成;令任意一个用户u的好友集合为Sfriend(u),令任意一个社交活动e已报名参加活动的用
户集合为Sparticipator(e),则用户u和社交活动e的好友相似度表示为集合Sfriend(u)和集合
Sparticipator(e)的Jaccard相似度:
进一步地,所述步骤S4具体实现方法为:用户u对社交活动e的用户偏好值Prefuser
(u,e)计算方法为:
式中,α,γ,表示权重,取值范围为[0,1];和分别为simL(u,e)、
simD(u,e)和simF(u,e)的均值,具体计算方法为:
其中,U表示用户集合,E表示社交活动集合,|U|表示用户数量,|E|表示社交活动
数量。
进一步地,所述步骤S5具体实现方法为:用户兴趣标签日志由用户ID与兴趣标签
序号列表组成,用户过往活动记录日志文件由用户ID和过往参加过的社交活动的ID组成;
设用户兴趣由标签集合K完全覆盖,K中包含k个标签;则任意一个用户u和其任意一个好友v
之间的相似度表示为该用户的加权兴趣标签向量和该好友的加权兴趣标签向量的余弦相
似性指标;其具体计算方法包括以下子步骤:
S51、导入用户u过往活动记录日志,形成向量其中cu,i,1≤i≤
k为用户u过往参加过具有第i个标签的社交活动的次数;构造u的兴趣标签向量
若u具有K中的某一标签r,1≤r≤k,则令lu,r=1+cu,r,否则令lu,r=0;
S52、计算用户u和其任意一个好友v的兴趣标签向量的余弦距离,即将两者的兴趣
标签向量和的点积再除以和各自2-范数的乘积,即为两者之间的相似度:
式中lu,i和lv,i分表表示用户u及其好友用户v拥有兴趣标签i的加权值;
表示用户u的好友v的兴趣标签向量;和分表表示两个向量
的2-范数。
进一步地,所述步骤S6包括以下子步骤:
S61、计算任意一个用户u与其所有好友之间的好友相似度,形成该用户的好友相
似度向量其中simfriend
(u,fx)为用户u与其好友fx的好友相似度;fx∈F,F为用户u的所有好友构成的集合,n为用户
u好友的个数;
S62、计算该用户的所有好友分别与任意一个社交活动e的用户偏好值,并形成该
用户的好友-社交活动偏好值向量
其中
Prefuser(fx,e)为用户u的好友fx对社交活动e的用户偏好值;
S63、计算该用户的好友相似度向量与好友-社交活动偏好值向量的点积,并
除以好友相似度向量的1-范数,即为该用户对该社交活动的基于协同过滤的偏好值:
进一步地,所述步骤S7具体实现方法为:用户u对社交活动e的用户偏好值Pref(u,
e)为u对e的用户偏好Prefuser(u,e)和基于协同过滤的偏好PrefCF(u,e)的一定权重的方差
之和的平方根:
式中η和λ表示权重,取值范围为[0,1];和分别为Prefuser(u,e)和
PrefCF(u,e)的均值,计算方法为:
其中,U表示用户集合,E表示社交活动集合,|U|表示用户数量,|E|表示社交活动
数量。
进一步地,所述步骤S8具体实现方法为:选定目标用户,将目标用户对其他各个社
交活动的偏好评分进行计算并按照由大到小的规律进行排序,形成由大到小的偏好评分序
列,选取序列中前5%~10%的社交活动作为推荐的社交活动,将其推荐给目标用户。
本发明的有益效果是:
1、本发明解决了移动社交网络中现有社交活动推荐算法的推荐结果无法令用户
满意的问题,根据兴趣标签相似度、地理位置偏好度和好友相似度等多个维度计算移动社
交网络中用户对社交活动的基于内容推荐算法的用户偏好,并根据用户偏好进一步计算出
基于协同过滤的偏好,并且将两者相结合进行权重分配;既解决了基于内容的推荐造成的
推荐结果机械化的局限,极大地扩展了推荐结果的范围,又避免了传统基于协同过滤偏好
的推荐中出现的“冷启动”的初始化问题;
2、本发明在计算用户与其好友的兴趣标签相似度时,根据用户的实际情况为各个
兴趣标签赋权重,使推荐的社交活动更符合用户的实际兴趣;从而可准确向目标用户推荐
与之在兴趣、空间、人群等方面契合的社交活动,可应用于社交活动推荐系统,向目标用户
推送个性化的社交活动推荐内容,使得推荐的社交活动更具有针对性和准确性,为用户提
供更好的社交活动选择。
附图说明
图1为本发明的社交活动推荐算法流程图。
具体实施方式
下面结合附图进一步说明本发明的技术方案。
对本申请中出现的词语进行如下定义:
1、用户与社交活动的标签相似度:即用户的兴趣标签集合和社交活动的属性标签
集合之间的相似度。
2、地理位置偏好度:即用户当前位置和社交活动的举行地在某一距离的情况下,
该用户愿意参加该社交活动的归一化概率值。
3、用户与社交活动的好友相似度:即用户的好友集合和社交活动当前已报名参加
人员集合之间的相似度。
4、用户偏好值:即用户对某社交活动的基于内容的推荐算法得出的偏好值。
5、用户和好友的相似度:用户的兴趣标签集合和其某一好友的兴趣标签集合的相
似度。
6、好友-社交活动偏好值:即某用户的好友与社交活动的用户偏好值。
本发明提供了一种移动社交网络中的社交活动推荐算法。通常用户希望获取符合
自己兴趣的新事物,同时又希望向具有共同兴趣爱好的好友请求关于某事物的推荐,基于
该思想,对移动社交网络中的社交活动进行两个层次的挖掘,一是根据用户自身的兴趣爱
好和特征对社交活动进行挖掘;二是利用移动社交网络中的社会关系,发掘好友与社交活
动的关系,为用户挖掘潜在的兴趣点和社交活动。
如图1所示,一种移动社交网络中的社交活动推荐算法,其特征在于,包括以下步
骤:
S1、导入用户兴趣标签日志文件和社交活动标签日志文件,计算任意用户和任意
社交活动之间的标签相似度;其具体实现方法为:用户兴趣标签日志文件由用户ID和兴趣
标签序号列表组成;设移动社交网络中的兴趣标签共分为k类,每类兴趣标签下有maxk个兴
趣标签,用户和社交活动共享一套兴趣标签集合;社交活动的标签日志文件由社交活动ID
和活动的标签序列号列表组成;任意一个用户u和任意一个社交活动e的标签相似度表示为
该用户的兴趣标签向量和该社交活动的标签向量的余弦相似性指标;其具体计算方法包括
以下子步骤:
S11、导入任意一个社交活动e的标签序号列表,确定其活动类别k;同时形成社交
活动e的标签向量为向量中各项赋值:对于标签i,若该社
交活动具有该标签,则赋值Le(i),i∈maxk为1,否则赋值为0;
S12、根据步骤S11中的活动类别k,导入任意一个用户u在该类别下的兴趣标签序
号列表,形成用户u兴趣标签向量为向量中各项赋
值:对于标签i,若该用户具有该兴趣标签,则赋值Lu,k(i),i∈maxk为1,否则赋值为0;
S13、用户u和社交活动e的标签相似度:将和计算点积,并除以和的2-
范数的乘积,得到和的余弦相似度,该余弦相似度即为用户u和社交活动e的标签相似
度simL(u,e):
S2、导入用户地理位置日志文件和社交活动地理位置日志文件,获取用户当前地
理位置,计算任意用户和任意社交活动之间的地理位置偏好度;其具体实现方法为:用户地
理位置日志文件由用户ID和用户活动的经纬度组成,用户当前地理位置为移动设备GPS定
位所确定的经纬度;社交活动地理位置日志文件由社交活动ID和该活动的经纬度组成;设
用户与社交活动的地理距离由d个距离段完全覆盖;任意一个用户u对任意一个社交活动e
的地理位置偏好度采用用户u在与社交活动e相距的地理距离下参与该社交活动的归一化
概率来表示;其具体计算方法包括以下子步骤:
S21、获取任意一个用户u当前的经度lonu和纬度latu;导入任意一个社交活动e的
经度lone和纬度lone,计算任意一个用户和任意一个社交活动之间的距离d(u,e):
d(u,e)=R×Δσ
式中,R为地球半径;Δσ为两坐标的圆心角,其计算方法问:
Δσ=arccos(sin(latu)sin(late)+cos(latu)cos(late)cos(difflon))
式中,difflat=|latu-late|,difflon=|lonu-lone|;
S22、根据用户u的地理位置日志文件和导入的用户u的过往活动记录日志,确定用
户u过往在各个距离段参与社交活动的概率:设用户u共参加过N次社交活动,其中有Ni次活
动报名参与时与社交活动的地理距离处于距离段dj内,则用户u在距离段dj内参与社交活动
的统计概率qu(dj)=Ni/N,同时形成用户u在距离社交活动不同的地理距离的情况下参加社
交活动的概率分布Qu=[qu(d1),qu(d2),…,qu(dj),…],dj∈d;
S23、查看距离值d(u,e)在概率分布Qu中落入某距离段de的概率,即为该用户与该
社交活动之间的地理位置偏好度simD(u,e):
simD(u,e)=qu(de),de∈d (2)
de为用户u与社交活动e之间的地理距离。
S3、导入用户的好友列表日志文件和社交活动参与人员日志文件,计算任意用户
和任意社交活动之间的好友相似度;其具体实现方法为:用户好友列表日志文件由用户ID
和好友的用户ID列表组成,社交活动的参与人员日志文件由已报名参加该活动的用户ID列
表组成;令任意一个用户u的好友集合为Sfriend(u),令任意一个社交活动e已报名参加活动
的用户集合为Sparticipator(e),则用户u和社交活动e的好友相似度表示为集合Sfriend(u)和集
合Sparticipator(e)的Jaccard相似度:
S4、根据标签相似度、地理位置偏好度和好友相似度计算任意用户对任意社交活
动的用户偏好;具体实现方法为:用户u对社交活动e的用户偏好值Prefuser(u,e)计算方法
为:
式中,α,γ,表示权重,取值范围为[0,1],默认情况都设置为1/3,还可根据具体
使用情况对权重进行调整;和分别为simL(u,e)、simD(u,e)和simF(u,e)的
均值,具体计算方法为:
其中,U表示用户集合,E表示社交活动集合,|U|表示用户数量,|E|表示社交活动
数量。
S5、根据用户兴趣标签日志文件和用户过往活动记录日志文件,计算任意一个用
户与其任意一个好友之间的相似度;具体实现方法为:用户兴趣标签日志由用户ID与兴趣
标签序号列表组成,用户过往活动记录日志文件由用户ID和过往参加过的社交活动的ID组
成;设用户兴趣由标签集合K完全覆盖,K中包含k个标签;则任意一个用户u和其任意一个好
友v之间的相似度表示为该用户的加权兴趣标签向量和该好友的加权兴趣标签向量的余弦
相似性指标;其具体计算方法包括以下子步骤:
S51、导入用户u过往活动记录日志,形成向量其中cu,i,1≤i
≤k为用户u过往参加过具有第i个标签的社交活动的次数;构造u的兴趣标签向量
若u具有K中的某一标签r,1≤r≤k,则令lu,r=1+cu,r,否则令lu,r=0;
S52、计算用户u和其任意一个好友v的兴趣标签向量的余弦距离,即将两者的兴趣
标签向量和的点积再除以和各自2-范数的乘积,即为两者之间的相似度:
式中lu,i和lv,i分表表示用户u及其好友用户v拥有兴趣标签i的加权值;
表示用户u的好友v的兴趣标签向量;和分表表示两个向量的2-范
数。
S6、根据该用户与其任意一个好友的相似度,以及该好友对任意社交活动的用户
偏好,计算任意用户对任意社交活动之间的基于协同过滤的偏好;包括以下子步骤:
S61、计算任意一个用户u与其所有好友之间的好友相似度,形成该用户的好友相
似度向量其中simfriend
(u,fx)为用户u与其好友fx的好友相似度;fx∈F,F为用户u的所有好友构成的集合,n为用户
u好友的个数;
S62、计算该用户的所有好友分别与任意一个社交活动e的用户偏好值,并形成该
用户的好友-社交活动偏好值向量
其中
Prefuser(fx,e)为用户u的好友fx对社交活动e的用户偏好值;
S63、计算该用户的好友相似度向量与好友-社交活动偏好值向量的点积,并
除以好友相似度向量的1-范数,即为该用户对该社交活动的基于协同过滤的偏好值:
S7、根据任意用户对任意社交活动的用户偏好和基于协同过滤的偏好计算该用户
对社交活动的偏好评分;具体实现方法为:用户u对社交活动e的用户偏好值Pref(u,e)为u
对e的用户偏好Prefuser(u,e)和基于协同过滤的偏好PrefCF(u,e)的一定权重的方差之和的
平方根:
式中η和λ表示权重,取值范围为[0,1],默认情况都设置为1/2,可根据具体使用情
况对权重进行调整;和分别为Prefuser(u,e)和PrefCF(u,e)的均值,计算方法
为:
其中,U表示用户集合,E表示社交活动集合,|U|表示用户数量,|E|表示社交活动
数量。
S8、选定目标用户,根据目标用户对所有社交活动的偏好评分向目标用户推荐社
交活动;具体实现方法为:选定目标用户,将目标用户对其他各个社交活动的偏好评分进行
计算并按照由大到小的规律进行排序,形成由大到小的偏好评分序列,选取序列中前5%~
10%的社交活动作为推荐的社交活动,将其推荐给目标用户。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发
明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的
普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各
种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。