一种基于共现图的兴趣点推荐方法及系统与流程

文档序号:11199280阅读:1027来源:国知局
一种基于共现图的兴趣点推荐方法及系统与流程
本发明属于数据挖掘和推荐
技术领域
,更具体地,涉及一种位置社交网络中的基于共现图的兴趣点推荐方法及系统。
背景技术
:兴趣点(pointofinterest,poi)推荐起源于基于位置的移动互联网的发展,poi推荐是基于已有数据向用户推荐其可能感兴趣的位置。poi推荐服务对于基于位置的社交网络(location-basedsocialnetwork,lbsn)中的用户以及商家都有莫大的益处,精准的推荐方法可以极大的节省用户的时间,提升用户的体验度;同时商家能够通过推荐系统发现潜在的顾客。以上原因促使poi推荐问题成为工业界与学术界中重要的研究问题。poi推荐不同于传统推荐,其特殊的挑战在于:(1)隐式的反馈数据,数据中只有用户的签到信息,而没有喜好信息;(2)位置影响较大,用户更倾向于访问较近的位置;(3)数据稀疏性问题,poi推荐中的数据稀疏性主要体现在:用户签到的poi数量稀少,对于签到活动的描述信息简短,同时缺乏poi本身的描述信息;(4)冷启动问题,难以对新的用户和新的poi进行精准的推荐;(5)时间特性,用户在不同时间段访问的位置类型差异性很大。时间敏感的poi推荐算法也是目前学术研究的热点;(6)网络动态性,lbsn网络中,用户的签到信息每时每刻都在源源不断的产生。增量式可扩展的poi推荐算法将更适用于生产实践。以上的特殊性造成传统的推荐方法不能够直接运用到poi推荐问题中。目前的解决方案主要是将poi推荐中的特有因素融入到普通推荐中去。已有的融入模型有两种:融合模型和联合模型。融合模型对不同的因素进行分别建模,并融合分别得到的推荐结果;联合模型将多个因素统一到同一模型中建模,并给出唯一的推荐结果。poi推荐场景中特殊的因素包括了位置,时间,poi的类别等因素。已有的模型大多从用户的角度出发对用户的喜好和行为习惯直接建模,例如:基于用户的协同过滤方法,以及使用概率图模型对用户访问poi的决策过程进行建模。然而稀疏的签到信息会削弱从用户的角度出发对用户兴趣进行建模的效果。同时因为用户的数量远远大于poi的数量,所以已有的研究模型具有较差的可伸缩性,难以适应大规模lbsn网络中的实时位置推荐。技术实现要素:针对现有技术的以上缺陷及改进需求,本发明的目的在于提供了一种基于共现图的兴趣点推荐方法及系统,由此解决现有技术中poi推荐中的数据存在的稀疏性问题,以及大规模社交网络中poi推荐的可伸缩性较差的技术问题。为实现上述目的,按照本发明的一个方面,提供了一种基于共现图的兴趣点推荐方法,包括:s1、计算预先构建的共现图中任意两个节点间的相似性,所述相似性表示所述任意两个节点之间的相近程度,其中,所述共现图表示在基于位置的社交网络lbsn中所有用户已访问的兴趣点之间的共现关系,所述共现图中的节点表示所有用户已访问的兴趣点,所述共现图中的边的权重表示同时访问过该边对应的兴趣点对的用户数量;s2、根据用户u访问的历史位置集合lu,由得到用户u访问位置l所处区域的概率,其中,lui∈lu,n表示集合lu的大小,σ表示最大化似然函数的带宽,l属于lbsn中所有用户已访问的兴趣点,但不属于lu中的兴趣点;s3、由所述任意两个节点间的相似性得到各待推荐的候选节点与lu间的相似性,由所述概率fgeo(l|u)得到用户访问各待推荐的候选节点所处区域的概率,结合两者对用户u进行兴趣点推荐,其中,待推荐的候选节点属于与lu中各节点直接相连的一阶邻居节点以及与lu中各节点间接相连但有共同一阶邻居节点的二阶邻居节点。优选地,在步骤s1之前,所述方法还包括:获取基于位置的社交网络lbsn中的每个用户在历史时间段t内访问过的所有兴趣点集合,由所有用户访问的兴趣点组成共现图的节点;对于每一个用户,用户u在历史时间段t内访问过的所有兴趣点集合lu中任意的两个元素对lui和luj,其中,ui≠uj,若在所述共现图中不存在lui和luj之间的无向边,则在所述共现图中利用一条无向边连接节点lui和luj,并将该边的权重赋值为1,若在所述共现图中存在lui和luj之间的无向边,则将节点lui和luj之间的无向边的权重值加1。优选地,步骤s1具体包括以下子步骤:s1.1、由得到所述共现图中任意节点li和lj之间的共现概率,其中,w(li,lj)表示所述共现图中节点li和lj之间直接相连的无向边的权重,w为所述共现图中所有边的权重和;s1.2、由得到所述共现图中节点li相对于节点lj之间的一阶相似性;s1.3、由得到所述共现图中节点li相对于节点lj之间的二阶相似性,其中,lk为与节点lj直接相连的邻居节点。优选地,步骤s3具体包括以下子步骤:s3.1、由获取用户对各候选节点ln的喜爱程度,其中,候选节点ln是所述共现图中与lu中各节点直接相连的一阶邻居节点或间接相连但具有共同一阶邻居节点的二阶邻居节点,p(ln|lm)表示节点ln相对于节点lm之间的一阶相似性,p'(ln|lm)表示节点ln相对于节点lm之间的二阶相似性;s3.2、对所有候选节点ln,计算用户访问各候选节点ln所处区域的概率fgeo(ln|u);s3.3、由s(u,ln)=fgeo(ln|u)*fpre(ln|u)得到用户u访问各候选节点ln的总评分,将评分最高的前k个兴趣点推荐给用户u,其中,k为正整数。按照本发明的另一方面,提供了一种基于共现图的兴趣点推荐系统,包括:相似性计算模块,用于计算预先构建的共现图中任意两个节点间的相似性,所述相似性表示所述任意两个节点之间的相近程度,其中,所述共现图表示在基于位置的社交网络lbsn中所有用户已访问的兴趣点之间的共现关系,所述共现图中的节点表示所有用户已访问的兴趣点,所述共现图中的边的权重表示同时访问过该边对应的兴趣点对的用户数量;访问概率计算模块,用于根据用户u访问的历史位置集合lu,由得到用户u访问位置l所处区域的概率,其中,lui∈lu,n表示集合lu的大小,σ表示最大化似然函数的带宽,l属于lbsn中所有用户已访问的兴趣点,但不属于lu中的兴趣点;兴趣点推荐模块,用于由所述任意两个节点间的相似性得到各待推荐的候选节点与lu间的相似性,由所述概率fgeo(l|u)得到用户访问各待推荐的候选节点所处区域的概率,结合两者对用户u进行兴趣点推荐,其中,待推荐的候选节点属于与lu中各节点直接相连的一阶邻居节点以及与lu中各节点间接相连但有共同一阶邻居节点的二阶邻居节点。优选地,所述系统还包括:信息采集模块,用于获取基于位置的社交网络lbsn中的每个用户在历史时间段t内访问过的所有兴趣点集合,由所有用户访问的兴趣点组成共现图的节点;共现图构建模块,用于对于每一个用户,用户u在历史时间段t内访问过的所有兴趣点集合lu中任意的两个元素对lui和luj,其中,ui≠uj,若在所述共现图中不存在lui和luj之间的无向边,则在所述共现图中利用一条无向边连接节点lui和luj,并将该边的权重赋值为1,若在所述共现图中存在lui和luj之间的无向边,则将节点lui和luj之间的无向边的权重值加1。优选地,所述相似性计算模块包括:共现概率计算模块,用于由得到所述共现图中任意节点li和lj之间的共现概率,其中,w(li,lj)表示所述共现图中节点li和lj之间直接相连的无向边的权重,w为所述共现图中所有边的权重和;一阶相似性计算模块,用于由得到所述共现图中节点li相对于节点lj之间的一阶相似性;二阶相似性计算模块,用于由得到所述共现图中节点li相对于节点lj之间的二阶相似性,其中,lk为与节点lj直接相连的邻居节点。优选地,所述兴趣点推荐模块包括:候选点喜爱程度计算模块,用于由获取用户对各候选节点ln的喜爱程度,其中,候选节点ln是所述共现图中与lu中各节点直接相连的一阶邻居节点或间接相连但具有共同一阶邻居节点的二阶邻居节点,p(ln|lm)表示节点ln相对于节点lm之间的一阶相似性,p'(ln|lm)表示节点ln相对于节点lm之间的二阶相似性;候选点访问概率计算模块,用于对所有候选节点ln,计算用户访问各候选节点ln所处区域的概率fgeo(ln|u);兴趣点推荐子模块,用于由s(u,ln)=fgeo(ln|u)*fpre(ln|u)得到用户u访问各候选节点ln的总评分,将评分最高的前k个兴趣点推荐给用户u,其中,k为正整数。总体而言,本发明方法与现有技术方案相比,能够取得下列有益效果:本发明不仅能够缓解签到数据稀疏的问题,同时具有较高的可伸缩性,因此本发明能够适应大规模lbsn网络中的实时推荐。附图说明图1为本发明实施例公开的一种基于共现图的兴趣点推荐方法的流程示意图;图2为本发明实施例公开的一种共现图的构建示例图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本发明中的兴趣点推荐方法依托于lbsn网络。lbsn网络可以表示为g=(u,l,e),其中u={u1,u2,…,um}代表lbsn网络中所有用户的集合;l={l1,l2,…,ln}表示lbsn网络中所有兴趣点的集合,兴趣点也可以被称为位置;e代表lbsn网络中的边,其包含了两种关系:用户ui和用户uj之间的朋友关系f,以及用户u和位置l之间的访问关系r;本发明中使用lu表示用户u访问过的所有兴趣点的集合。如图1所示为本发明实施例公开的一种基于共现图的兴趣点推荐方法的流程示意图,在图1所示的方法中包括以下步骤:s1、计算预先构建的共现图中任意两个节点间的相似性,上述相似性表示任意两个节点之间的相近程度,其中,共现图表示在基于位置的社交网络lbsn中所有用户已访问的兴趣点之间的共现关系,共现图中的节点表示所有用户已访问的兴趣点,共现图中的边的权重表示同时访问过该边对应的兴趣点对的用户数量;其中,在步骤s1之前,还包括共现图的构建:本发明中的共现图的定义如下:共现图是一个无向带权图,其表示各兴趣点之间的共现关系。共现图可以表示为g=(l,e),其中,共现图中的节点集合l={l1,l2,…,ln}表示lbsn网络中所有兴趣点的集合;e代表共现图中的边,边的权重表示两个兴趣点共现的次数,例如:边(l1,w,l2)表示兴趣点l1和兴趣点l2共现次数为w,即共有w个用户同时访问过兴趣点l1和兴趣点l2。构建共现图的具体方法如下:获取基于位置的社交网络lbsn中的每个用户在历史时间段t内访问过的所有兴趣点集合,由所有用户访问的兴趣点组成共现图的节点;t的取值根据实际需要确定,优选取值为半年。其中,收集的用户访问的兴趣点信息包括:签到的用户信息,签到时间,签到地点,签到内容,签到地点的经纬度信息,数据收集的过程可以通过lbsn网络提供的api接口获得。对于每一个用户,用户u在历史时间段t内访问过的所有兴趣点集合lu中任意的两个元素对lui和luj,其中,ui≠uj,若在所述共现图中不存在lui和luj之间的无向边,则在所述共现图中利用一条无向边连接节点lui和luj,并将该边的权重赋值为1,若在所述共现图中存在lui和luj之间的无向边,则将节点lui和luj之间的无向边的权重值加1,即该边更新为(lui,w+1,luj)。例如,如下表1所示是lbsn网络中用户的访问示例,图2是由表1的访问列表得到的共现图。图中节点l2和l3之间的边权重为2,其表示共有2个用户同时访问过l2和l3。节点l1和l2之间的边权重为1,其表示只有1个用户同时访问过节点l1和l2。共现图中边的权重是由所有用户的决策所形成的。因为集体的智慧具有更高的可信度,所以我们可以认为相对于节点l1和l2,节点l2和l3之间具有更强的关联性,因而未来更可能被用户同时访问。表1用户访问兴趣点的列表u1[l1,l2,l3]u2[l2,l3,l4]u3[l3,l4,l5]其中,步骤s1具体包括以下子步骤:s1.1、由得到所述共现图中任意节点li和lj之间的共现概率,其中,w(li,lj)表示所述共现图中节点li和lj之间直接相连的无向边的权重,w为所述共现图中所有边的权重和,在此其作为归一化因子;其中,共现概率定义了两个兴趣点之间的相关性。当共同访问li和lj的用户数越多,即w(li,lj)的值越大,此时节点li和lj之间的共现概率越大。当节点li和lj之间无直接边相连时,两节点之间的共现概率为0,即:s1.2、由得到所述共现图中节点li相对于节点lj之间的一阶相似性;其中,p(li,lj)为步骤s1.1得到的节点li和lj之间的共现概率,同样的当节点li和lj之间无直接的边相连时,节点li和lj之间的一阶相似性为0。一阶相似性即条件概率p(li|lj),定义了已知节点lj的条件下,得到节点li的概率。值得注意的是:条件概率是非对称的,即p(li|lj)一般不等于p(lj|li)。相似性间的不对称主要由节点的流行度和位置因素所造成的。一阶相似性度量了共现图中两个兴趣点的直接相似性。但是共现图中的数据仅是已观察到的,众多节点之间的直接联系并未真正展现出来。因此,我们可以认为在共现图中的边仅是冰山一角,仍有节点之间的关系还未被用户发掘出来。为了更好的捕捉节点之间未知的关系,下面定义节点之间的二阶相似性用以捕捉潜在的关系。共现图中的节点对li和lj的二阶相似性定义为节点li和lj的邻居结构的相似性。数学上,定义nbl=(l1,l2,l3,....)为节点l的邻居节点,则节点对li和lj之间的二阶相似性即为和之间的相似性。如果节点li和lj之间没有相同的直接邻居,则节点li和lj之间的二阶相似性为0。当网络中两个节点li和lj之间共享的邻居占比越大,两个节点相似的可信度越大。因此可以理解为从节点lj出发到达节点li的概率越大。因此采用步骤s1.3计算节点间的二阶相似性。s1.3、由得到所述共现图中节点li相对于节点lj之间的二阶相似性,其中,lk为与节点lj直接相连的邻居节点。s2、根据用户u访问的历史位置集合lu,由得到用户u访问位置l所处区域的概率,其中,lui∈lu,n表示集合lu的大小,σ表示最大化似然函数的带宽,l属于lbsn中所有用户已访问的兴趣点,但不属于lu中的兴趣点;已有分析指出用户访问的兴趣点在地理(geographical)位置上呈聚簇分布,因此地理位置因素对于用户的签到行为有着巨大的影响。该步骤使用核密度的方式对影响用户签到的地理位置因素进行建模。给定用户已访问的位置集合lu,lu的大小为n,即用户历史访问过n个位置。则对于一个未被访问的地点l,u访问l的概率可由步骤s2计算得到。其中,其中带宽σ的值由数据驱动的方法得到,即使用交叉验证的方式选择最大化似然函数y的带宽σ。其中位置lv为验证集中用户访问的位置,其中,可以通过将原始所有签到数据随机划分出十分之一的数据作为验证集。函数fgeo表示的是用户u访问位置l所处区域的概率。s3、由任意两个节点间的相似性得到各待推荐的候选节点与lu间的相似性,由概率fgeo(l|u)得到用户访问各待推荐的候选节点所处区域的概率,结合两者对用户u进行兴趣点推荐,其中,待推荐的候选节点属于与lu中各节点直接相连的一阶邻居节点以及与lu中各节点间接相连但有共同一阶邻居节点的二阶邻居节点。用户兴趣点推荐的目标是推荐给用户可能会喜欢,但未被用户访问过的兴趣点。用户兴趣点推荐的具体执行过程为:s3.1、由获取用户对各候选节点ln的喜爱程度,其中,候选节点ln是所述共现图中与lu中各节点直接相连的一阶邻居节点或间接相连但具有共同一阶邻居节点的二阶邻居节点,p(ln|lm)表示节点ln相对于节点lm之间的一阶相似性,p'(ln|lm)表示节点ln相对于节点lm之间的二阶相似性;s3.2、对所有候选节点ln,计算用户访问各候选节点ln所处区域的概率fgeo(ln|u);其中,fgeo是基于用户的行为习惯得到的用户访问该区域的概率。s3.3、由s(u,ln)=fgeo(ln|u)*fpre(ln|u)得到用户u访问各候选节点ln的总评分,将评分最高的前k个兴趣点推荐给用户u,其中,k为正整数。下面以表1的用户访问数据为例对本发明中的推荐方法进行说明。对所有用户所访问的兴趣点列表进行遍历,对于单个用户访问的兴趣点列表中的任意两个兴趣点的组合,在共现图中以无向边的方式进行连接。例如用户u1的访问列表为l=[l1,l2,l3],则对l中任意两个兴趣点的组合即[(l1,l2),(l3,l1),(l2,l3)]在共现图中以无向边进行连接。对于用户u2和用户u3执行同样的操作,最后可以得到共现图如附图2所示。图2中节点l2和l3之间的边权重为2,其表示共有2个用户同时访问过l2和l3。节点l1和l2之间的边权重为1,其表示只有1个用户同时访问过节点l1和l2。共现图中边的权重是由所有用户的决策所形成的。因为集体的智慧具有更高的可信度,所以我们可以认为相对于节点l1和l2,节点l2和l3之间具有更强的关联性,因而未来更可能被用户同时访问。基于构建的共现图,可以计算得出所有节点之间的相似性。为了简明起见,表2给出了节点l1和节点l2与其他节点之间的一阶相似性和二阶相似性。其他节点之间的相似性可按照相同原理进行计算。表2节点对一阶相似性二阶相似性(l1,l2)1/20(l1,l3)1/20(l1,l4)07/24(l1,l5)01/12(l2,l1)1/40(l2,l3)1/20(l2,l4)1/40(l2,l5)07/48计算共现图中节点之间的相似性后,利用核密度估计的方式估计某一兴趣点的访问概率。例如,对于用户u1而言,核密度方式估计兴趣点l4被访问的概率:针对用户进行兴趣点推荐的过程结合了利用相似性搜寻候选节点的过程以及使用核密度估计兴趣点被访问的概率的过程。针对用户u1而言,假设其已访问兴趣点为l1,l2和l3。针对用户u1已访问过的兴趣点l1,l2和l3邻近的兴趣点l4和l5,计算用户访问这些兴趣点的概率。假设用户访问的兴趣点集合为lu,则兴趣点相似性搜索的过程只考虑在共现图中lu中的节点通过一步和两步可达的节点。因此候选的兴趣点集合相对较小。这使得该推荐方法在大规模lbsn中具有较好的可伸缩性。同时,共现图中节点间边的权重是由用户的集体智慧决定的,因而模型更具健壮性。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1