一种基于位置和社交关系的群组与地点推荐方法
【专利摘要】本发明公开了一种基于位置和社交关系的群组与地点推荐方法。通过对LBSN中的用户签到信息的采集,剔除有效性差的地点与用户数据,最终获得用户的签到数据。然后利用皮尔森相关系数,以用户间共有的签到数据衡量签到相似性,计算出用户间签到相似度,构建用户签到相似度网络。再根据签到相似性网络,利用离散粒子群优化方法,识别出不同的社区。然后根据用户社交网络的帐号,获取好友列表,形成社区内用户的社交邻接关系,最终生成社交群组,推荐给目标用户并利用协同过滤的推荐方法对目标用户进行地点推荐。本发明的社区发现方法简单易操作,且划分社区的速度快。通过社交群组和地点推荐相结合的方法,降低了方法的复杂度,提高了推荐精度。
【专利说明】
一种基于位置和社交关系的群组与地点推荐方法
技术领域
[0001] 本发明属于专门适用于特定领域的数据处理方法,具体涉及一种基于位置和社交 关系的群组与地点推荐方法。
【背景技术】
[0002] 随着智能手机和定位技术的发展,基于位置的社交网络(Location Based Social NetW〇rk,LBSN)得到了广泛的应用。这种环境下,如何在手机上寻找到用户需要的有效信息 已经成为迫切需要解决的问题。而推荐系统的应用可以有效地解决这个问题,为用户主动 推送其感兴趣的事物,如朋友,位置,娱乐项目等。通过与移动社交网络的结合,获取用户的 大量属性信息,如性别,年龄,爱好等,使得推荐系统能够准确地预测用户感兴趣的事物。近 年来,随着基于位置的社交网络的兴起,用户的数据信息得到了极大的丰富,可以轻易地获 取到用户的签到信息,推荐系统得到了进一步的发展,因而基于位置的社交网络的推荐系 统成为研究的热点。
[0003] 已有的基于位置的社交网络的推荐系统存在如下问题:第一、结合签到信息和社 交信息,构建相似度网络,两类信息的同步进行,使得社交信息对推荐结果产生较大影响, 推荐精度不高,比如公开号为CN104268171A、名称为〃基于活动相似和社交信任的社交网好 友推荐系统及方法"的国内发明专利就属于这种类型。第二、使用传统的协同过滤方法,对 每一个用户都要遍历整个网络,加大了计算复杂度。现有技术中还出现了试图融合协同过 滤技术与社交信息进行推荐的系统,比如公开号为CN105184603A、名称为〃一种融合协同过 滤算法和位置信息的目标地推荐方法",但还是存在着算法复杂度大、可扩展性差的缺点。
【发明内容】
[0004] 本发明要解决的技术问题是针对现有的推荐技术中存在的推荐精度低、计算复杂 度高的缺点。
[0005] 为解决上述问题,本发明提出一种基于位置和社交关系的群组与地点推荐方法, 包括如下步骤:
[0006] 步骤1:生成社交群组阶段;
[0007] 步骤1-1:从基于位置的社交网络(LBSN)中得到包含用户及其签到地点的签到数 据,从中剔除签到次数少于a次的用户,以及被签到次数少于b次的地点,最终得到的签到数 据含有S个用户,t个地点,用户集合U= (Ul,U2,…心),地点集合L= ( Il,12,…It),共计W条签 到信息,每条签到信息包含用户、地点,表示为(m,lP),其中U 1表示用户示地点P;
[0008] 步骤1-2:根据用户签到数据,以用户之间签到数据的交集,即对相同地点签到的 数据,通过皮尔森相关系数计算,得到的数值作为用户之间的签到相似度权值,计算出s个 用户两两之间的签到相似度,构建用户签到相似性网络6。=<1]^>4=( &1〇5><5是6。的矩 阵;
[0009] 步骤1-3:根据用户签到相似度,利用离散粒子群优化方法,识别出不同的社区 (community),社区集合为C=(ci,c2,···),其中Ci代表第i个社区;
[0010]步骤1-4:用户在LBSN中连接其在某种社交网络(如Facebook)的帐号,获取该社交 网络中用户的好友列表,针对任一社区中的用户对,用其在该社交网络中共同好友数目标 识作为权值,表示为用户间的社交亲密度,形成社区内用户的社交邻接关系;
[0011]步骤1-5:根据社交亲密度,在目标用户Ut所在的社区中,选择与目标用户以的 社交亲密度值最大的k-Ι个用户,生成包含目标用户的人数为k的社交群组(group),推荐给 目标用户Ut;
[0012]步骤2:组内地点推荐阶段;
[0013] 步骤2-1:在群组内,根据用户签到相似度,利用协同过滤方法,对目标用户未签到 地点进行评分预测;
[0014] 步骤2-2:利用Top-N方法,选出N个评分最高的地点推荐给目标用户。
[0015] 进一步,上述步骤1-2还包括以下步骤:
[0016] 在w条签到信息中,以用户i对地点p的签到次数,即(m,lP)出现的数目,作为用户i 对地点P的评分,定义用户U1对地点U平分为n^p,利用皮尔森相关系数计算用户之间的签 到相似度,从而计算出S个用户两两之间的签到相似度,由此构建用户签到相似性网络G。= <U,E>,A=(aij)sxs 是 Gc 的矩阵,
[0017]利用皮尔森相关系数计算用户签到相似性公式如下:
[0018]
123456 其中m,Uj代表用户,Llj表示用户i和用户j之间共有的签到地点,『私!表示用户i对 某一地点1的评分,巧表示U i对共同签到地点评分的平均值。 2 进一步,上述步骤1-3包括: 3
[0021]利用DPSO方法进行社区划分,在一个多维空间内,以粒子群内粒子移动的过程模 拟社区划分优化过程,根据粒子位置坐标划分社区,坐标维数等于LBSN中的用户数,位置坐 标的分量对应不同用户,值相同的分量对应的用户在同一社区,一个粒子的位置坐标对应 一种划分结果,根据评价社区划分标准的模块度Q,决定粒子的速度,促使粒子的移动,位置 的改变,得到不同的社区划分结果,进而促使粒子向着优化社区划分即使Q值变大的位置移 动,最终达到迭代次数或停止条件时Q取最大值,对应坐标所代表的社区划分方式为最佳的 社区划分, 4
[0022]模块度Q的定义如下: 5
[0023]
6 以同一个社区内所有用户签到相似度权值总和与预期的所有用户签到相似度权 值总和相减所得值衡量社区划分优劣,Q越大表示识别出的社区划分结构越好,即同一个社 区内所有用户签到相似度权值总和比预期的大,同一社区内的联系比预期的密切,
[0025]其中&1谦示用户i与用户j之间的签到相似性权值,Z1= 是A中第i行除了第i 个值之外值的总和,h=ElZl是A中的总和,定义为预期的用户i和用户j之间的签到 相似度,4表示用户i所在的社区,如果用户i,j在同一社区,则=1,否则为0,
[0026] 假设在s维空间中,m个粒子组成一个群体,每个粒子α包含一个s维的位置向量Xa = (Χα,1,Χα,2,···,Xd,S),速度向量Va=(Va,l,Va,2,…,Va, s),其中位置向量中的S个分量代表社 交网络中的S个用户,XM表示粒子α中对应的用户Uj,位置向量的每一个分量的取值范围是 [I,S ]之间的整数,速度向量的每一个分量的取值为0或1,针对粒子α的位置向量Xa = ( Xa, i, Χα, 2,…,Χα, s ),若Χα, 1 = Χα, 2,则用户Ul,U2在同一社区,以此规则划分出社区结构,则每一个粒 子的位置对应一种社区划分,通过评价社区划分标准的模块度Q,根据粒子历史位置记录 (包含当前位置),选择使Q取最大值的位置为粒子历史最佳位置Pbesta,再从m个粒子的 Pbesta中选出Q取最大值所对应的位置为群体最佳位置Gbest,粒子根据Pbesta和Gbest调整 自己目前的速度向量Va,进而通过速度调整改变自身的当前位置Xa,通过粒子的不断移动, 使得模块度Q不断增大,反复迭代直到满足停止条件为止,此时Gbest对应的社区划分的模 块度Q值最大,社区划分结构最佳,则Gbest坐标对应的社区划分结果为最佳结果,
[0027] 速度向量和位置向量的更新规则如下:
[0028]
[0029]
[0030] 其中Cl1,d2是加速因子,cU = d2 = 1.494,ω是惯性权重,根据PSO中惯性权重对PSO 搜索能力影响的研究,取ω = 1.05,此时PSO搜索效率和搜索精度较高。η,^是[0,1 ]之间的 随机值,Pbesta表示粒子a历史最佳位置,Gbest表示群体最佳位置。取表示异或运算,如 在喊,若a,b值不同,则为1,否则为0,
[0031]函数Γ(·)定义如下:
[0032]
[0033]
[0034]
[0035] 其中Θ取[l,s]的任意整数。如果Xk与Θ相等,贝>J3(Xk,0) = l,否则为〇。当Va, j = l时, 返回使函数取最大值的Θ,即在所有社区中,将一个社区内所有用户与用户j的签到相似性 权值求和,X、』等于值最大的社区内用户所对应的坐标分量的值,也表明用户j与该社区联 系最密切。
[0036] 根据上述描述,应用DPSO方法进行社区划分的具体步骤如下:
[0037] 第一步:将m个粒子的位置向量中各分量随机取[I,s]之间的整数,速度向量中各 分量随即取〇或1;
[0038]第二步:对每一个粒子a,计算当前社区划分的模块度Q。,并根据模块度值的大小, 更新该粒子的最佳位置PbesU,更新整个群体的最佳位置Gbest;
[0039] 第三步:更新粒子的位置,计算更新后的模块度Q'a。若Q7a-Qc^lO'则返回第二 步,否则停止迭代,进入第四步;
[0040] 第四步:满足停止条件后,此时最终的Gbest,即模块度最大所对应的位置。按照坐 标分量值相同,则对应用户在同一社区的规则,识别出e个社区。
[0041 ] 进一步,上述步骤1-4还包括:
[0042] 根据社交网络中用户共同好友数据,以用户共同好友数,作为评价用户社交亲密 度的指标。定义用户m,Uj之间的共同好友数量I imax为用户U1与其他用户共同好友 数最多的数量,对此进行归一彳彳
将b作为用户m,u&间社交亲密度,计算两两
用户之间的社交亲密度,形成社交亲密度矩阵 7中第i行第j列的数值fu表示用 户i和用户j之间的社交亲密度。
[0043] 进一步,上述步骤1-5包括:
[0044] 选择目标用户Ut所在的社区,在社内,根据其他用户m与目标用户Ut的社 交亲密度值,即F中第t行第i列的值fit,求出Qt:中所有用户与Ut的社交亲密度,取最大的k-1个,与目标用户归为一类,生成为一个群组#u t,推荐给目标用户ut。
[0045] 进一步,上述步骤2-1包括:
[0046] 根据用户签到相似性网络,利用如下公式对目标用户Ut未签到的地点込进行评分 预测。
[0047]
[0048] 其中Ut表示目标用户,Ut表示目标用户所在的社交群组内用户集合,Ut'表示社 交群组内除了U t以外某个用户,心t斗表示用户w对地点^的评分,表示用户w对其签 到过所有地点评分的均值。
[0049] 有益效果:
[0050] 1、本发明采用社区发现与划分群组的方法,先利用位置信息进行社区划分,再利 用社交信息划分社交群组。采用分层方式,产生了与目标用户相似的用户集。该用户集具有 与目标用户生活区域相似,且社交联系密切的特点,此时再进行推荐,将产生较为准确的推 荐结果。
[0051] 2、本发明采用离散粒子群优化方法,先对社交网络中的用户进行划分,再进行后 续的推荐,相比于传统的协同过滤方法,减小了方法复杂度,提高了系统的可扩展性,使得 本发明更适用于大数据集的社交网络。
[0052] 3、本发明采用社交群组和地点推荐相结合的机制,群内成员联系密切,且具有极 大的相似度。以地点推荐打开用户间交流的话题,促进用户间的交流,同时由于用户间现实 距离较近,更能促进用户间线下的交往,是一种扩大交友范围,结识志趣相投的朋友的方 式。
【附图说明】
[0053]图1为本发明的系统不意图。
[0054]图2为生成社交群组的示意图。
【具体实施方式】
[0055] 以下结合说明书附图对本发明创造作进一步详细说明。
[0056] 本发明的使用的主要符号及其含义包括:
[0059]本发明的目的是提供一种基于位置和社交关系的群组与地点推荐方法。该方法分 为生成社交群组和组内地点推荐两个阶段。在生成社交群组的阶段,通过对基于位置的社 交网络中的用户签到信息的采集,剔除有效性差的地点与用户数据,最终获得用户的签到 数据。然后利用皮尔森相关系数(Pearson correlation coefficient),以用户间共有的签 至擞据衡量签到相似性,计算出用户间签到相似度,构建用户签到相似度网络。再根据签到 相似性网络,利用离散粒子群优化方法(DPSO,Discrete Particle Swarm Optimization), 识别出不同的社区(community)。然后通过用户在LBSN中连接其在某种社交网络(如 Facebook)的帐号,获取用户在该社交网络中好友列表,针对任一社区中的用户对,用其在 该社交网络中共同好友数目标识作为权值,表示为用户间的社交亲密度,形成社区内用户 的社交邻接关系。再根据社交亲密度,选择与目标用户的社交亲密度值最大的k-Ι个用户, 生成包含目标用户的人数为k的社交群组(group),推荐给目标用户。在组内地点推荐阶段, 利用协同过滤的推荐方法对目标用户进行地点推荐。
[0060]方法流程:
[0061 ]步骤1:生成社交群组阶段;
[0062] 步骤1-1:从基于位置的社交网络(LBSN)中得到包含用户及其签到地点的签到数 据,从中剔除签到次数少于a次的用户,以及被签到次数少于b次的地点,最终得到的签到数 据含有S个用户,t个地点,用户集合U= (U1,U2,…心),地点集合L= (Ii,h,…It),共计w条签 到信息,每条签到信息包含用户、地点,表示为(m,lP),Ui表示用户匕^表示地点p;
[0063] 步骤1-2:根据用户签到数据,以用户之间签到数据的交集,即对相同地点签到的 数据,通过皮尔森相关系数计算,得到的数值作为用户之间的签到相似度权值,计算出s个 用户两两之间的签到相似度,构建用户签到相似性网络6。=<1]^>4=( &^)5&是6。的矩 阵;
[0064] 步骤1-3:根据用户签到相似度,利用离散粒子群优化方法,识别出不同的社区 (community),社区集合为C=(ci,c2,···),其中Ci代表第i个社区;
[0065]步骤1-4:用户在LBSN中连接其在某种社交网络(如Facebook)的帐号,获取该社交 网络中用户的好友列表,针对任一社区中的用户对,用其在该社交网络的共同好友数目标 识作为权值,表示为用户间的社交亲密度,形成社区内用户的社交邻接关系;
[0066]步骤1-5:根据社交亲密度,选择与目标用户的社交亲密度值最大的k-Ι个用户,生 成包含目标用户的人数为k的社交群组(group),推荐给目标用户;
[0067]步骤2:组内地点推荐阶段;
[0068] 步骤2-1:在群组内,根据用户签到相似度,利用协同过滤方法,对目标用户未签到 地点进行评分预测;
[0069] 步骤2-2:利用Top-N方法,选出N个评分最高的地点推荐给目标用户。
[0070] 本发明步骤1-2中,在w条签到信息中,以用户i对地点p的签到次数,即(m,lP)出现 的数目,作为用户i对地点P的评分,定义用户m对地点u平分为n^ p。利用皮尔森相关系数 计算用户之间的签到相似度,从而计算出s个用户两两之间的签到相似度,由此构建用户签 到相似性网络6〇 = <1^>4=(&"^3是6。的矩阵。
[0071 ]利用皮尔森相关系数计算用户签到相似性公式如下:
[0072]
[0073] 其中Ui,Uj代表用户,Lij表示用户i和用户j之间共有的签到地点,&,!表示用户i对 某一地点1的评分,表示m对共同签到地点评分的平均值。
[0074]本发明步骤1-3中,利用DPSO方法进行社区划分,在一个多维空间内,以粒子群内 粒子移动的过程模拟社区划分优化过程。根据粒子位置坐标划分社区,坐标维数等于LBSN 中的用户数,位置坐标的分量对应不同用户,值相同的分量对应的用户在同一社区,一个粒 子的位置坐标对应一种划分结果。根据评价社区划分标准的模块度Q,决定粒子的速度,促 使粒子的移动,位置的改变,得到不同的社区划分结果,进而促使粒子向着优化社区划分即 使Q值变大的位置移动,最终达到迭代次数或停止条件时Q取最大值,对应坐标所代表的社 区划分方式为最佳的社区划分。
[0075] 模块度Q的定义如下:
[0076]
[0077] 以同一个社区内所有用户签到相似度权值总和与预期的所有用户签到相似度权 值总和相减所得值衡量社区划分优劣,Q越大表示识别出的社区划分结构越好。即同一个社 区内所有用户签到相似度权值总和比预期的大,同一社区内的联系比预期的密切。
[0078]其中&1谦示用户i与用户j之间的签到相似性权值,Z1= 是A中第i行除了第i 个值之外值的总和,h=ElZl是A中的总和定义为预期的用户i和用户j之间的签到 相似度。%表示用户i所在的社区,如果用户i,j在同一社区,则
否则为〇。
[0079] 假设在s维空间中,m个粒子组成一个群体,每个粒子α包含一个s维的位置向量Xa = (Χα,1,Χα,2,···,Xd,S),速度向量Va=(Va,l,Va,2,…,Va, s),其中位置向量中的S个分量代表社 交网络中的S个用户,XM表示粒子α中对应的用户Uj,位置向量的每一个分量的取值范围是 [I,S ]之间的整数,速度向量的每一个分量的取值为0或1。针对粒子α的位置向量Xa = ( Xa, i, Χα, 2,…,Χα, s ),若Χα, 1 = Χα, 2,则用户Ul,U2在同一社区,以此规则划分出社区结构,则每一个粒 子的位置对应一种社区划分,通过评价社区划分标准的模块度Q,根据粒子历史位置记录 (包含当前位置),选择使Q取最大值的位置为粒子历史最佳位置Pbesta。再从m个粒子的 Pbesta中选出Q取最大值所对应的位置为群体最佳位置Gbest,粒子根据Pbesta和Gbest调整 自己目前的速度向量Va,进而通过速度调整改变自身的当前位置Xa。通过粒子的不断移动, 使得模块度Q不断增大。反复迭代直到满足停止条件为止,此时Gbest对应的社区划分的模 块度Q值最大,社区划分结构最佳,则Gbest坐标对应的社区划分结果为最佳结果。
[0080] 速度向量和位置向量的更新规则如下:
[0081]
[0082]
[0083] 其中cU,d2是加速因子,cU = d2 = 1.494,ω是惯性权重,根据PSO中惯性权重对PSO 搜索能力影响的研究,取ω = 1.05,此时PSO搜索效率和搜索精度较高。η,^是[0,1 ]之间的 随机值,Pbesta表示粒子a历史最佳位置,Gbest表示群体最佳位置。Θ表示异或运算,如 a:餅,若a,b值不同,则为1,否则为0。
[0084]函数Γ(·)定义如下:
[0085]
[0086]
[0087]
[0088] 其中Θ取[l,s]的任意整数。如果Xk与Θ相等,贝>J3(xk,0) = l,否则为〇。当Va, j = l时, 返回使函数取最大值的Θ,即在所有社区中,将一个社区内所有用户与用户j的签到相似性 权值求和,X、』等于值最大的社区内用户所对应的坐标分量的值,也表明用户j与该社区联 系最密切。
[0089]根据上述描述,应用DPSO方法进行社区划分的具体步骤如下:
[0090] 第一步:将m个粒子的位置向量中各分量随机取[I,s]之间的整数,速度向量中各 分量随即取〇或1。
[0091] 第二步:对每一个粒子α,计算当前社区划分的模块度Qa,并根据模块度值的大小, 更新该粒子的最佳位置Pb e s U,更新整个群体的最佳位置Gbe s t。
[0092] 第三步:更新粒子的位置,计算更新后的模块度V α。若Va-Q^lO'则返回第二 步,否则停止迭代,进入第四步。
[0093] 第四步:满足停止条件后,此时最终的Gbest,即模块度最大所对应的位置。按照坐 标分量值相同,则对应用户在同一社区的规则,识别出e个社区。
[0094]本发明步骤1-4中,根据社交网络中用户共同好友数据,以用户共同好友数,作为 评价用户社交亲密度的指标。定义用户m,Uj之间的共同好友数量u/,为用户m与 其他用户共同好友数最多的数量,对此进行归一佔
tfu作为用户m,Uj之间社 交亲密度,计算两两用户之间的社交亲密度,形成社交亲密度矩阵F = 中第i行第 j列的数值表示用户i和用户j之间的社交亲密度。
[0095] 本发明步骤1-5中,选择目标用户ut所在的社区。在社区心£内,根据其他用户m 与目标用户Ut的社交亲密度值,即F中第t行第i列的值flt,求出S中所有用户与&的社交亲 密度,取最大的k-Ι个,与目标用户归为一类,生成为一个群组5W,推荐给目标用户u t。
[0096] 本发明步骤2-1中根据用户签到相似性网络,利用如下公式对目标用户Ut未签到 的地点^进行评分预测。
[0097]
[0098] 其中Ut表示目标用户,Ut表示目标用户所在的社交群组内用户集合,iw表示社 交群组内除了 Ut以外某个用户,%士表示用户Ut'对地点It^评分,表示用户U t'对其签 到过所有地点评分的均值。
[0099] 如图1所示,本发明分为生成社交群组和组内地点推荐两个阶段。
[0100] 首先,在生成社交群组阶段,在签到数据中,剔除签到次数少于a次的用户,以及被 签到次数少于b次的地点,最终得到数据含有s个用户,t个地点,共计w条签到信息。然后利 用皮尔森相关系数,以用户间共有的签到数据衡量签到相似性,计算出用户间签到相似度, 构建用户签到相似度网络G。= <U,E>。
[0101] 再运用离散粒子群优化方法划分出社区。假设在s维空间中,m个粒子组成一个群 体,每个粒子CX包含一个S维的位置向量Χα =( Χα, 1,Χα, 2,…,Xa, s ),速度向量Va =( Vci, I,Vci, 2,…, Va,s),其中位置向量中的S个分量代表社交网络中的S个用户,Xau表示粒子α中对应的用户 Uj,位置向量的每一个分量的取值范围是[1,S]之间的整数,速度向量的每一个分量的取值 为0或1。针对粒子α的位置向量Xa= (Xa,:L,Xa,2,…,Xa,s),若Χα,1 = Χα,2,则用户Ul,U2在同一社 区,以此规则划分出社区结构,则每一个粒子的位置对应一种社区划分,通过评价社区划分 标准的模块度Q,根据粒子历史位置记录(包含当前位置),选择使Q取最大值的位置为粒子 历史最佳位置Pbesta。再从m个粒子的Pbesta中选出Q取最大值所对应的位置为群体最佳位 置Gbest,粒子根据Pbesta和Gbest调整自己目前的速度向量Va,进而通过速度调整改变自身 的当前位置X a。通过粒子的不断移动,使得模块度Q不断增大。反复迭代直到满足停止条件 为止,此时G b e s t对应的社区划分的模块度Q值最大,社区划分结构最佳,则G b e s t对应的社 区划分结果为最佳结果。具体实施步骤如图2所示:将m个粒子的位置向量中各分量随机取 [l,s]之间的整数,速度向量中各分量随即取0或1。对每一个粒子,计算当前社区划分的模 块度Q a,并根据模块度值的大小,更新该粒子的最佳位置PbesU,更新整个群体的最佳位置 Gbest。更新粒子的位置,计算更新后的模块度Q\。若Q\-Qa>l(Tg,则重复上述步骤,否则停 止迭代。满足停止条件后,此时最终的Gbest,即模块度最大所对应的位置。按照坐标分量值 相同,则对应用户在同一社区的规则,识别出e个社区。
[0102] 再通过用户在LBSN中连接其在某种社交网络(如Facebook)的帐号,获取用户在该 社交网络中好友列表,针对任一社区中的用户对,用其在该社交网络中共同好友数目标识 作为权值,表示为用户间的社交亲密度,形成社区内用户的社交邻接关系。再如图2所示,选 择目标用户U t所在的社区^。在社区^内,根据其他用户出与目标用户Ut的社交亲密度值, 即F中第t行第i列的值f lt,求出%中所有用户与Ut的社交亲密度,取最大的k-Ι个,与目标 用户归为一类,生成为一个群组,推荐给目标用户ut。
[0103] 在地点推荐阶段,根据用户签到相似性网络,以社交群组内其他用户对地点的评 分来对目标用户未签到的地点进行评分预测。再利用Top-N方法,选出N个评分最高的地点 推荐给目标用户。
【主权项】
1. 一种基于位置和社交关系的群组与地点推荐方法,其特征在于包括如下步骤: 步骤1:生成社交群组阶段; 步骤1-1:从LBSN中得到包含用户及其签到地点的签到数据,从中剔除签到次数少于a 次的用户,以及被签到次数少于b次的地点,最终得到的签到数据含有s个用户,t个地点,用 户集合u= (U1,U2,…山),地点集合L= ( ll,12,…]^),共计W条签到信息,每条签到信息包含 用户、地点,表示为(Ui,lp),其中Ui表示用户i,lP表示地点P; 步骤1-2:根据用户签到数据,以用户之间签到数据的交集,即对相同地点签到的数据, 通过皮尔森相关系数计算,得到的数值作为用户之间的签到相似度权值,计算出s个用户两 两之间的签到相似度,构建用户签到相似性网络6。=<1]3>4=( &^)%是6。的矩阵; 步骤1-3:根据用户签到相似度,利用离散粒子群优化方法,识别出不同的社区,社区集 合为C=(C1,C2,···),其中Ci代表第i个社区; 步骤1-4:用户在LBSN中连接其在某种社交网络的帐号,获取该社交网络中用户的好友 列表,针对任一社区中的用户对,用其在该社交网络中共同好友数目标识作为权值,表示为 用户间的社交亲密度,形成社区内用户的社交邻接关系; 步骤1-5:根据社交亲密度,在目标用户ut所在的社区中,选择与目标用户ut的社交亲 密度值最大的k-Ι个用户,生成包含目标用户的人数为k的社交群组,推荐给目标用户ut; 步骤2:组内地点推荐阶段; 步骤2-1:在群组内,根据用户签到相似度,利用协同过滤方法,对目标用户未签到地点 进行评分预测; 步骤2-2:利用Top-N方法,选出N个评分最高的地点推荐给目标用户。2. 根据权利要求1所述的一种基于位置和社交关系的群组与地点推荐方法,其特征在 于,所述步骤1-2包括: 在w条签到信息中,以用户i对地点p的签到次数,即(m,lp)出现的数目,作为用户i对地 点P的评分,定义用户m对地点U平分为\知,利用皮尔森相关系数计算用户之间的签到相 似度,从而计算出s个用户两两之间的签到相似度,由此构建用户签到相似性网络6。=<1], E〉,A=(aij)sXs 是 Gc 的矩阵, 利用皮尔森相关系数计算用户签到相似性公式如下:其中Ui,Uj代表用户,Lij表示用户i和用户j之间共有的签到地点,V!表示用户i对某一 地点1的评分,巧;表示m对共同签到地点评分的平均值。3. 根据权利要求1所述的一种基于位置和社交关系的群组与地点推荐方法,其特征在 于,所述步骤1-3包括: 利用DPS0方法进行社区划分,在一个多维空间内,以粒子群内粒子移动的过程模拟社 区划分优化过程,根据粒子位置坐标划分社区,坐标维数等于LBSN中的用户数,位置坐标的 分量对应不同用户,值相同的分量对应的用户在同一社区,一个粒子的位置坐标对应一种 划分结果,根据评价社区划分标准的模块度Q,决定粒子的速度,促使粒子的移动,位置的改 变,得到不同的社区划分结果,进而促使粒子向着优化社区划分即使Q值变大的位置移动, 最终达到迭代次数或停止条件时Q取最大值,对应坐标所代表的社区划分方式为最佳的社 区划分, 模块度Q的定义如下:以同一个社区内所有用户签到相似度权值总和与预期的所有用户签到相似度权值总 和相减所得值衡量社区划分优劣,Q越大表示识别出的社区划分结构越好,即同一个社区内 所有用户签到相似度权值总和比预期的大,同一社区内的联系比预期的密切, 其中&1谦示用户i与用户j之间的签到相似性权值,Ζι=Σ^^是A中第i行除了第i个值 之外值的总和,h=ElZl是A中的总和,定义为预期的用户i和用户j之间的签到相似 度,~表示用户i所在的社区,如果用户i,j在同一社区,则= 1,否则为0, 假设在s维空间中,m个粒子组成一个群体,每个粒子α包含一个s维的位置向量Χα = (Χα,1,Χα,2,…,Xa,s),速度向量Va=(Va,l,Va,2,…,Va, s),其中位置向量中的S个分量代表社交 网络中的s个用户,xu表示粒子α中对应的用户位置向量的每一个分量的取值范围是 [1,s ]之间的整数,速度向量的每一个分量的取值为0或1,针对粒子α的位置向量Xa = ( Xa, i, Χα, 2,…,Χα, S ),若Χα, 1 = Χα, 2,则用户U1,U2在同一社区,以此规则划分出社区结构,贝每一个粒 子的位置对应一种社区划分,通过评价社区划分标准的模块度Q,根据粒子历史位置记录 (包含当前位置),选择使Q取最大值的位置为粒子历史最佳位置Pbesta,再从m个粒子的 Pbestcc中选出Q取最大值所对应的位置为群体最佳位置Gbest,粒子根据Pbestcc和Gbest调整 自己目前的速度向量Va,进而通过速度调整改变自身的当前位置Χα,通过粒子的不断移动, 使得模块度Q不断增大,反复迭代直到满足停止条件为止,此时Gbest对应的社区划分的模 块度Q值最大,社区划分结构最佳,则Gbest坐标对应的社区划分结果为最佳结果, 速度向量和位置向量的更新规则如下:Χα^Χα Θ Va 其中cU,d2是加速因子,cU = d2 = 1.494,ω是惯性权重,根据PSO中惯性权重对PSO搜索能 力影响的研究,取ω = 1.05,此时PS0搜索效率和搜索精度较高,η,^是[0,1 ]之间的随机 值,Pbesta表示粒子a历史最佳位置,Gbest表示群体最佳位置,φ表示异或运算,如a?&若 a,b值不同,则为1,否则为0, 函数Γ( ·)定义如下: ΧαΘΥα定义如下:其中Θ取[1,s]的任意整数,如果Xk与Θ相等,贝>J3(xk,0) = l,否则为〇,当Va,j = l时,返回 使函数取最大值的Θ,即在所有社区中,将一个社区内所有用户与用户j的签到相似性权值 求和,X'U等于值最大的社区内用户所对应的坐标分量的值,也表明用户j与该社区联系最 密切, 根据上述描述,应用DPSO方法进行社区划分的具体步骤如下: 第一步:将m个粒子的位置向量中各分量随机取[l,s]之间的整数,速度向量中各分量 随即取0或1; 第二步:对每一个粒子a,计算当前社区划分的模块度Q。,并根据模块度值的大小,更新 该粒子的最佳位置PbesU,更新整个群体的最佳位置Gbest; 第三步:更新粒子的位置,计算更新后的模块度Q、,若Q、_Qa> l〇_g,则返回第二步,否 则停止迭代,进入第四步; 第四步:满足停止条件后,此时最终的Gbest,即模块度最大所对应的位置,按照坐标分 量值相同,则对应用户在同一社区的规则,识别出e个社区。4. 根据权利要求1所述的一种基于位置和社交关系的群组与地点推荐方法,其特征在 于,所述步骤1-4包括: 根据社交网络中用户共同好友数据,以用户共同好友数,作为评价用户社交亲密度的 指标,定义用户m,Uj之间的共同好友数量为用户m与其他用户共同好友数最 多的数量,对此进行归一化将fu作为用户间社交亲密度,计算两两用户 之间的社交亲密度,形成社交亲密度矩阵F=(f^)sXs,F中第i行第j列的数值表示用户i 和用户j之间的社交亲密度。5. 根据权利要求1所述的一种基于位置和社交关系的群组与地点推荐方法,其特征在 于,所述步骤1-5包括: 选择目标用户ut所在的社区%,在社区%A,根据其他用户出与目标用户Ut的社交亲密 度值,即F中第t行第i列的值flt,求出%中所有用户与Ut的社交亲密度,取最大的k-Ι个,与 目标用户归为一类,生成为一个群组推荐给目标用户u t。6. 根据权利要求1所述的一种基于位置和社交关系的群组与地点推荐方法,其特征在 于,所述步骤2-1包括: 根据用户签到相似性网络,利用如下公式对目标用户ut未签到的地点1P?行评分预测,其中Ut表示目标用户,Ut表示目标用户所在的社交群组5%内用户集合,w表示社交群 组内除了ut以外某个用户,"知表示用户w对地点^的评分,^表示用户w对其签到过 所有地点评分的均值。
【文档编号】G06Q50/00GK106056455SQ201610383668
【公开日】2016年10月26日
【申请日】2016年6月2日
【发明人】吕如恒, 王玉峰
【申请人】南京邮电大学