一种基于K均值聚类的时间感知自适应兴趣点推荐方法与流程

    专利查询2022-07-06  215


    一种基于k均值聚类的时间感知自适应兴趣点推荐方法
    技术领域
    1.本发明涉及位置社交网络中一种基于k均值聚类的时间感知自适应兴趣点推荐方法,属于人工智能与机器学习技术领域。


    背景技术:

    2.近年来,通信技术、定位技术和移动互联网技术飞速发展,基于位置的社交网络(location-based social networks,lbsns)已经成为了人们分享和传递信息的新型传媒形态,为线上的虚拟网络与线下的真实世界提供了紧密联系的平台。目前,国内外已有一大批成熟的基于位置的社交网络平台,如facebook、youtube、twitter、微博、豆瓣、大众点评、美团网和微信朋友圈等。在基于位置的社交网络中,用户可以建立复杂的社交关系,如朋友关系、同事关系、亲戚关系等;利用添加的地理标签查看一些感兴趣的地点(简称“兴趣点”),如餐厅,商店,电影院等;在访问兴趣点(points-of-interest,pois)时利用移动设备进行签到,发布其地理位置信息,分享他们的建议和评论。lbsns既能给用户带来便利,同时也可以帮助商家了解网络背后真实的用户,从而“投其所好”地为不同用户定制符合其需求的个性化服务,具有很强的实用性和先进性。
    3.随着在lbsns中交流的用户数量越来越多,lbsns存储并积累了丰富的可利用信息,如签到记录、社交关系、时空数据以及各类文本、图像、视频等内容。海量的信息虽然给用户提供了丰富的数据资源,但也引发了信息过载(information overload)问题,增加了用户准确获取目标项目的难度。因此,致力于解决信息过载问题的推荐系统受到了越来越多研究人员的关注,如著名的amazon公司运用推荐系统给用户推荐商品,为商家提高了点击率和营业额;电影推荐网站netflix通过举办推荐系统大赛吸引了众多研究团队致力于提高推荐准确度的研究。作为一种特殊的信息过滤系统,推荐系统不需要用户主动提供确定的关键词信息,而是通过分析用户已有的历史行为,对用户的兴趣爱好进行建模,挖掘用户的潜在偏好,进而主动给用户推荐符合其需求的商品、服务等。基于大量的用户信息、好友信息、位置信息,研究人员面向lbsns实现了一些诸如好友推荐、专家发现、兴趣点推荐、活动推荐、路径推荐等应用。其中,兴趣点推荐(pois recommendation)作为传统推荐系统与位置社交网络协同发展的必然产物,已经成为了一个研究热点。
    4.考虑到兴趣点推荐作为推荐系统的一个重要分支,无论是发展历程还是关键技术,都与传统推荐系统一脉相承,因此,部分的兴趣点推荐研究将位置看作类似于电影、音乐等的普通项目,利用传统推荐方法生成推荐结果。根据设计策略,传统推荐算法主要包括协同过滤算法、基于内容的推荐算法和混合推荐算法。协同过滤算法又包括基于记忆的协同过滤算法(如基于用户的协同过滤、基于项目的协同过滤)和基于模型的协同过滤算法(如奇异值分解、聚类模型和概率潜在语义分析等)。其中,基于内容的兴趣点推荐技术从被访问地点中提取相关信息,比如标签、分类和用户评论;从用户的配置文件中提取用户偏好,然后与位置配置文件匹配,以获得准确的推荐。基于用户的协同过滤(ubcf)技术将用户的签到行为转换为用户-兴趣点评分矩阵,利用已有的签到记录寻找当前活跃用户的相似
    用户,根据相似用户的兴趣偏好,预测活跃用户对未签到地点的评分,将预测评分最高的兴趣点推荐给当前用户。基于项目的协同过滤(ibcf)技术则是基于这样一个假设:用户总是偏向与他之前喜欢的地址高度相似的位置。因此ibcf技术首先计算兴趣点之间的相似度,并将与用户已访问过的pois最为相似的地址推荐给活跃用户。奇异值分解(svd)是矩阵分解的经典代表,其主要任务是生成低秩近似。用svd技术分解后的低维正交矩阵在原始矩阵的基础上降低了噪音,且可以更有效地揭示用户和商品的潜在关联。在各类推荐技术中,协同过滤算法无需太多特定领域的知识,避免了复杂的信息收集和内容分析过程,在工程中容易实现,可以方便地应用于产品中。因此,协同过滤已成为传统推荐领域中应用最广泛、最流行的推荐技术。
    5.以上传统推荐技术均忽略了兴趣点推荐中时间上下文对用户签到行为的影响。然而,事实上时间属性在兴趣点推荐应用场景中是一个非常重要的上下文信息,用户的签到习惯总是与时间属性密切相关。从宏观角度来看,用户对兴趣点的喜爱会受到周围大时间环境的影响,例如,美团平台在冬至日为用户推荐水饺店,携程网在夏季为用户推荐水上乐园。更重要的是,用户偏好会随时间发生迁移,例如,用户之前喜欢去ktv和电影院,但最近则喜欢去书店和咖啡店。除了以上宏观特征之外,细粒度的时间影响更能体现用户在特定时间段的签到偏好,例如,餐饮类的兴趣点在12点和18点左右被访问量最大,酒吧的流行度则从21点以后开始上升。如何在推荐算法中引入时间信息,在特定时间段为用户提供合适的兴趣点推荐列表已成为各类社交应用平台的迫切需求。
    6.目前,已有一些推荐系统将时间上下文融入到兴趣点推荐问题中,但现有的时间感知兴趣点推荐系统仍存在一些缺点和不足,归纳起来有以下几点:
    7.(1)与考虑社交关系、地理特征等其他类别上下文的推荐技术相比,基于时间特征的兴趣点推荐技术的相关研究仍相对较少。大多数兴趣点推荐技术都不擅于处理动态变化的用户需求,难以支持用户偏好随时间推移而产生的修正和调整,无法实时给出最符合当下时间情境的兴趣点推荐结果。
    8.(2)忽略了用户相似度的时间维动态特征。现有研究在计算用户相似度时,未考虑用户相似度的时间维动态特征,不同时间段共享同一个相似度矩阵。然而,事实上用户相似度会随着时间的推移而发生变化。例如,在工作日的中午,用户常与同事一起访问单位附近的餐厅,此时用户与同事之间的相似度高于其与家人之间的相似度,而在下班回家以后,用户常与家人一起访问住址附近的超市,此时用户与家人之间的相似度更高。因此,在不同时间使用全局用户相似度是不符合事实规律的。
    9.(3)用户-时间-兴趣点三维矩阵的数据稀疏问题。与位置社交网络中成千上万个地理位置相比,用户访问过的地址数量非常少,这就导致评分矩阵本身就十分稀疏。在考虑时空上下文的兴趣点推荐系统中,数据稀疏问题更为明显。这是因为为了探索用户在目标时间段的行为模式,需要将本就稀疏的签到数据集根据时间轴进一步划分成若干个子集,这无疑加剧了评分矩阵的稀疏程度。因此,必须探讨能够缓解数据稀疏问题的方法,以提升某时间段上推荐结果的准确度和可靠性。
    10.以上所述为现有的时间感知兴趣点推荐技术的不足,在不同的位置社交网络平台的设计、开发、部署与运行中带来较大弊端,尤其是在海量项目信息的网络平台上造成推荐系统服务质量的下降,进而影响电子商务系统的销售业绩。


    技术实现要素:

    11.针对现有技术的不足,本发明以构建能够根据时间点实时生成兴趣点列表的、推荐结果准确的兴趣点推荐系统为目标,提供了一种基于k均值聚类的时间感知自适应兴趣点推荐方法,该方法系统地给出了兴趣点推荐算法的技术流程。同时,考虑到不同时间槽中用户签到数据特征的差异性和相关性,本发明创新地提出时间点到聚类中心距离的分析模式,采用k均值聚类方法挖掘时间槽之间的相关性,通过时间聚类缓解高维签到数据的稀疏问题,提升评分预测的有效性,强化推荐系统的服务质量。
    12.本发明解决其技术问题所采取的技术方案是:将一天分为24个时间槽,根据时间标签分别统计每个时间槽内的签到用户数量、被访问兴趣点数量以及签到次数,基于以上三阶数据特征对时间槽进行k-means聚类;根据时间聚类结果和用户的历史签到信息计算不同时间槽中的用户相似度;利用时间聚类对传统ubcf算法的评分方法进行改进,使其能根据时间槽自适应生成兴趣点预测评分;对所有未访问地址的预测评分进行排序,选择排名靠前的若干个地址推荐给用户(如图1所示)。
    13.本发明方法的具体流程包括:
    14.步骤1,收集、整理用户的原始签到数据集,将其转换成用户-时间-兴趣点三维评分矩阵。
    15.步骤2,统计每个时间槽内的签到用户数量、被访问兴趣点数量以及签到次数。基于统计结果构建每个时间槽的三维签到特征向量,形成时间槽签到数据特征集合。
    16.步骤3,基于第二步的统计结果,采用k均值方法对时间槽进行聚类。计算同一聚类内的各个时间槽之间的时间相似度。
    17.步骤4,根据聚类内相似度高、聚类间相似度低的基本原理,合理利用同一时间聚类内其他时间槽中的评分信息计算当前推荐时间下的用户相似度。
    18.步骤5,利用时间聚类结果和聚类内部的时间相似度对传统的基于用户的协同过滤算法的评分方法进行改进,使其能根据当前推荐时间自适应生成兴趣点预测评分,为用户推荐当前时间排名靠前的若干个未访问地址。
    19.步骤6,使用推荐精度指标评价推荐质量,对比本发明提出的推荐系统和其他经典推荐系统的推荐精度,评价所提出技术的准确性和有效性。
    20.有益效果:
    21.(1)本发明提出的基于k均值聚类的时间感知自适应兴趣点推荐方法,能够在任意时间根据用户当前的行为习惯以及兴趣点当下的流行趋势为用户生成实时的兴趣点推荐列表,同时,能够帮助商家快速地为用户精准推送广告,从而吸引更多的潜在消费者。
    22.(2)本发明创新地对时间进行聚类,挖掘用户相似度的时间维动态特征,在不同时间为用户寻找不同的相似人群,这种“因时而异”的邻近用户搜索方式,更符合现实中用户的偏好变化,大大提高了用户对社交网络平台的使用满意度,增加了推荐系统的准确度和可解释性,对实际应用具有非常重要的意义。
    23.(3)本发明通过k-means方法对时间进行聚类,实现了聚类内部各时间槽评分数据的共享,既充分挖掘了时间槽之间的相似性,又缓解了高阶评分矩阵的数据稀疏问题。该方法具有一定的普适性与移植性,不仅可以应用于兴趣点推荐系统,也适用于其他传统项目的个性化推荐领域,具有广阔的工业化应用前景。
    附图说明
    24.图1是本发明提出的基于k均值聚类的时间感知自适应兴趣点推荐方法流程图。
    25.图2是本发明提出的基于k均值聚类的时间感知自适应兴趣点推荐方法的具体步骤流程图。
    26.图3是本发明实施案例中用户在位置社交网络中的签到记录示意图。
    27.图4是本发明实施案例中各个时间槽的签到用户数量、被访问兴趣点数量以及签到次数的统计结果示意图。
    28.图5是本发明实施案例中所有时间槽的k均值聚类结果示意图。
    29.图6是本发明实施案例中的推荐算法和经典的基于用户的协同过滤(ubcf)、基于社交关系的协同过滤(scf)算法的精确率precision对比的柱状图。
    30.图7是本发明实施案例中的推荐算法和经典的基于用户的协同过滤(ubcf)、基于社交关系的协同过滤(scf)算法的召回率recall对比的柱状图。
    31.图8是本发明实施案例中的推荐算法和经典的基于用户的协同过滤(ubcf)、基于社交关系的协同过滤(scf)算法的综合精度指标f1值对比的柱状图。
    具体实施方式
    32.下面结合附图和具体实例,对本发明作进一步详细说明。
    33.本发明设计和实现的具体流程如图2所示,过程中主要的变量、参数如表1。
    34.表1主要变量与参数的功能
    [0035][0036]
    第一步、收集、整理用户的原始签到数据集,将其转换成用户-时间-兴趣点三维评分矩阵。操作步骤如下:
    [0037]
    (1.a)整理用户的原始签到数据集c,获得n条签到记录,记作c={c1,c2,

    ,cn}。将每一条签到记录形式化为用户id、签到时间time、地理纬度、地理经度以及兴趣点id五元组。签到数据集中的所有用户集合用u表示,所有兴趣点集合用l表示,nu和nl分别是用户和兴趣点的数量。
    [0038]
    (1.b)将一天的时间划分为24个离散的时间槽,时间槽集合表示为t={0,1,2,

    ,23}。对每一条签到记录中的签到时间time取整,得到对应的时间槽t的值(t∈[0,23])。
    [0039]
    (1.c)对签到记录五元组集合进行签到次数统计,为每对“用户-时间-兴趣点”生成对应的四元组(ui,t,lj,n
    i,t,j
    ),其中ui是第i个用户(i∈[1,nu]),lj是第j个兴趣点(j∈[1,nl]),t是对签到记录中的时间点进行取整后得到的时间槽的值(t∈[0,23]),n
    i,t,j
    是用户ui在时间槽t访问兴趣点lj的次数。
    [0040]
    (1.d)将用户ui在时间槽t访问兴趣点lj的签到次数n
    i,t,j
    转换成用户ui在时间槽t对兴趣点lj的评分r
    i,t,j
    。如果用户ui在时间槽t去过兴趣点lj,则评分r
    i,t,j
    =1;反之,r
    i,t,j
    =0:
    [0041][0042]
    其中,r
    i,t,j
    表示用户ui在时间槽t时对地址lj的评分,n
    i,t,j
    表示用户ui在时间槽t时访问兴趣点lj的次数。
    [0043]
    汇总所有的评分,形成用户-时间-兴趣点三维评分矩阵r={r
    i,t,j
    },i∈[1,nu],t∈[0,23],j∈[1,nl],其中i表示用户编号,t表示时间槽的值,j表示地址编号,nu表示用户总数,nl表示兴趣点总数,r
    i,t,j
    表示用户ui在时间槽t时对地址lj的评分。
    [0044]
    第二步、统计每个时间槽内的签到用户数量、被访问兴趣点数量以及签到次数。基于统计结果构建每个时间槽的三维签到特征向量,形成时间槽签到数据特征集合。具体操作步骤如下:
    [0045]
    (2.a)统计签到数据集中在时间槽t发生了签到行为的用户数量unum
    t

    [0046]
    unum
    t
    =∑
    u∈u
    ischeck(u,t) (2)
    [0047]
    其中,u是位置社交网络中的某个用户,u表示签到数据集中的所有用户集合,ischeck函数表示用户u在时间槽t内是否有签到行为:
    [0048][0049]
    其中,l是位置社交网络中的某个兴趣点,l表示签到数据集中的所有兴趣点集合,r
    u,t,l
    表示用户u在时间槽t时对地址l的评分。
    [0050]
    (2.b)统计签到数据集中在时间槽t被访问的兴趣点数量pnum
    t

    [0051]
    pnum
    t
    =∑
    l∈l
    ischecked(l,t) (4)
    [0052]
    其中,l是位置社交网络中的某个兴趣点,l表示签到数据集中的所有兴趣点集合,ischecked函数表示兴趣点l在时间槽t内是否被访问:
    [0053][0054]
    其中,u是位置社交网络中的某个用户,u表示签到数据集中的所有用户集合,r
    u,t,l
    表示用户u在时间槽t时对地址l的评分。
    [0055]
    (2.c)统计签到数据集中在时间槽t发生的总签到次数cnum
    t

    [0056][0057]
    其中,n为签到数据集c中的签到记录数量,istime函数表示第i次签到记录ci是否发生在时间槽t内:
    [0058][0059]
    其中,time
    i in t表示第i次签到记录ci的签到时间timei对应的时间槽为t。
    [0060]
    (2.d)基于以上统计结果,构建每个时间槽t的三维签到特征向量x
    t
    ={unum
    t
    ,
    pnum
    t
    ,cnum
    t
    },形成时间槽签到数据特征集合x={x0,x1,

    ,x
    23
    }。其中,t∈[0,23],unum
    t
    是在时间槽t发生了签到行为的用户数量,pnum
    t
    是在时间槽t被访问的兴趣点数量,cnum
    t
    是在时间槽t发生的总签到次数。
    [0061]
    第三步、基于第二步的统计结果,采用k均值方法对时间槽进行聚类。计算同一聚类内的各个时间槽之间的时间相似度。实现步骤如下:
    [0062]
    (3.a)采用算法简单、收敛速度快的k均值方法对24个时间槽进行聚类,生成nc个聚类中心cen={cen1,cen2,

    ,cen
    nc
    }(nc∈[2,24])。
    [0063]
    (3.b)针对每个时间聚类集合中的任意两个时间槽t和t',计算两者之间的时间相似度:
    [0064][0065]
    其中,u是位置社交网络中的某个用户,u表示签到数据集中的所有用户集合,l是位置社交网络中的某个兴趣点,l表示签到数据集中的所有兴趣点集合,r
    u,t,l
    表示用户u在时间槽t时对地址l的评分,r
    u,t',l
    表示用户u在时间槽t'时对地址l的评分,nu表示签到数据集中的用户总数。
    [0066]
    第四步、根据聚类内相似度高、聚类间相似度低的基本原理,合理利用同一时间聚类内其他时间槽中的评分信息计算当前推荐时间下的用户相似度。实现步骤如下:
    [0067]
    (4.a)选取位置社交网络中某目标用户u
    t
    作为推荐服务对象,将当前推荐时间timer转换为时间槽tr。
    [0068]
    (4.b)根据聚类结果,确定时间槽tr的所属聚类cenj和该聚类中的时间槽数量nj,记作cenj={tr,t2,t3,

    ,t
    nj
    }。计算活跃用户u
    t
    和其他用户v在时间槽tr时的用户相似度:
    [0069][0070]
    其中,u
    t
    是推荐系统当前服务的目标对象,v为位置社交网络中的一个其他用户,tr是当前推荐时间对应的时间槽,nj为时间槽tr所属聚类cenj中的时间槽数量,nl表示签到数据集中的兴趣点总数,表示目标用户u
    t
    在聚类cenj的其他时间槽cenj[a]时对兴趣点l的评分,r
    v,cenj[b],l
    表示用户v在聚类cenj的其他时间槽cenj[b]时对兴趣点l的评分,a∈[1,nj],b∈[1,nj]。
    [0071]
    第五步、利用时间聚类结果和聚类内部的时间相似度对传统的基于用户的协同过滤算法的评分方法进行改进,使其能根据当前推荐时间自适应生成兴趣点预测评分,为用户推荐当前时间排名靠前的若干个未访问地址。实现步骤如下:
    [0072]
    (5.a)确定位置社交网络中某目标用户u
    t
    作为推荐服务对象,将当前推荐时间timer转换为时间槽tr。
    [0073]
    (5.b)根据聚类结果,确定时间槽tr的所属聚类cenj和该聚类中的时间槽数量nj,记作cenj={tr,t2,t3,

    ,t
    nj
    }。
    [0074]
    (5.c)计算目标用户u
    t
    在tr时访问兴趣点l的预测评分:
    [0075][0076]
    其中,u
    t
    是推荐系统当前服务的目标对象,tr是当前推荐时间对应的时间槽,l是位置社交网络中目标用户尚未访问过的一个兴趣点,v为位置社交网络中的一个其他用户,u表示所有用户集合,sim(u
    t
    ,v,tr)表示用户u
    t
    和用户v在时间槽tr时的用户相似度,nj为时间槽tr所属聚类cenj中的时间槽数量,表示用户v在时间cenj[i]时对兴趣点l的评分,i∈[1,nj],timesimi(tr,cenj[i])表示当前时间tr与其他时间cenj[i]之间的相似度。
    [0077]
    (5.d)对目标用户u
    t
    未访问过的所有地址按照预测分排序,将排名靠前的n个位置组成推荐列表,并将推荐列表topnlist
    t
    返回给目标用户。
    [0078]
    第六步、使用推荐精度指标评价推荐质量,对比本发明提出的推荐系统和其他经典推荐系统的推荐精度,评价所提出技术的准确性和有效性。实现步骤如下:
    [0079]
    (6.a)从目标数据集中随机选取nu
    ×
    10%个用户作为目标用户集au,为集合中每个目标用户运行各个推荐算法,生成推荐列表。其中,nu表示签到数据集中的用户总数。
    [0080]
    (6.b)使用精度指标评价各推荐系统的准确性,各算法为目标用户集au运行一次的精确率precision、召回率recall和综合精度指标f1的值是au集合中所有用户该指标的平均值。
    [0081]
    (6.c)重复(6.a)和(6.b)步骤ntimes次,即所有算法独立运行ntimes次。
    [0082]
    (6.d)设定推荐算法的精确率precision、召回率recall和综合精度指标f1的值是ntimes次运行结果的平均值。
    [0083]
    (6.e)对比分析各指标结果:如果本发明提出的基于k均值聚类的时间感知自适应兴趣点推荐算法的精确率precision大于其他推荐算法的precision值,则说明本发明提出的技术命中用户喜爱项目的正确率更高;如果本发明提出的算法的召回率recall大于其他推荐算法的recall值,则说明本发明提出的技术查全能力更强;如果本发明提出的算法的综合精度指标f1值大于其他推荐算法的f1值,则说明本发明提出的技术在推荐精度方面综合能力更强。
    [0084]
    下面以具体的基于位置的社交网络为例,详细说明本发明中的基于k均值聚类的时间感知自适应兴趣点推荐方法是如何运行的。
    [0085]
    gowalla是一个基于位置的社交网络服务提供商,用户通过签到分享他们的位置。gowalla数据集收集了在2009年2月至2010年10月期间196591名用户在该网站上的社交关系和签到信息。gowalla数据集中的兴趣点数量共1256379个,用户在兴趣点上的签到记录共6442892条,用户之间形成了950327条社交关系。gowalla数据集已成为推荐系统研究人员最为常用的测试数据集之一。
    [0086]
    本发明选择gowalla数据集中los angeles、san francisco、new york、maricopa和king五个热门地区的签到数据为例进行实例化说明。
    [0087]
    第一步、收集、整理用户的原始签到数据集,将其转换成用户-时间-兴趣点三维评分矩阵,操作步骤如下:
    [0088]
    (1.a)收集、整理示例数据集gowalla中los angeles、san francisco、new york、maricopa和king地区的用户签到数据,获得由1572个用户在1420个地址上的50007条历史
    访问记录组成的签到数据集c,记作c={c1,c2,

    ,c
    50007
    }。gowalla数据集中用户在位置社交网络中的历史访问记录示意图如图3所示。用户之间形成了13864条社交关系,平均每个用户的签到记录数量为31.81,平均每个用户的社交关系数量为8.82,平均每个兴趣点被访问的次数为35.22次。
    [0089]
    将每一条签到记录形式化为用户id、签到时间time、地理纬度、地理经度以及兴趣点id五元组。签到数据集中的所有用户集合用u表示,所有兴趣点集合用l表示,用户数量nu为1572,兴趣点数量nl为1420。
    [0090]
    (1.b)将一天的时间划分为24个离散的时间槽,时间槽集合表示为t={0,1,2,

    ,23}。对每一条签到记录中的签到时间time取整,得到对应的时间槽t的值(t∈[0,23])。例如,签到时间time=15:13:23对应的时间槽为t=15,签到时间time=00:11:20对应的时间槽为t=0。
    [0091]
    (1.c)对签到记录五元组集合进行签到次数统计,为每对“用户-时间-兴趣点”生成对应的四元组(ui,t,lj,n
    i,t,j
    ),其中ui是第i个用户(i∈[1,1572]),lj是第j个兴趣点(j∈[1,1420]),t是对签到记录中的时间点进行取整后得到的时间槽的值(t∈[0,23]),n
    i,t,j
    是用户ui在时间槽t访问兴趣点lj的次数。
    [0092]
    (1.d)将用户ui在时间槽t访问兴趣点lj的签到次数n
    i,t,j
    转换成用户ui在时间槽t对兴趣点lj的评分r
    i,t,j
    。如果用户ui在时间槽t去过兴趣点lj,则评分r
    i,t,j
    =1;反之,r
    i,t,j
    =0:
    [0093][0094]
    其中,r
    i,t,j
    表示用户ui在时间槽t时对地址lj的评分,n
    i,t,j
    表示用户ui在时间槽t时访问兴趣点lj的次数。
    [0095]
    汇总所有的评分,形成用户-时间-兴趣点三维评分矩阵r={r
    i,t,j
    },i∈[1,1572],t∈[0,23],j∈[1,1420],其中i表示用户编号,t表示时间槽的值,j表示地址编号,r
    i,t,j
    表示用户ui在时间槽t时对地址lj的评分。
    [0096]
    第二步、统计每个时间槽内的签到用户数量、被访问兴趣点数量以及签到次数。基于统计结果构建每个时间槽的三维签到特征向量,形成时间槽签到数据特征集合。具体操作步骤如下:
    [0097]
    (2.a)统计签到数据集中在时间槽t发生了签到行为的用户数量unum
    t

    [0098]
    unum
    t
    =∑
    u∈u ischeck(u,t) (12)
    [0099]
    其中,u是位置社交网络中的某个用户,u表示签到数据集中的所有用户集合,ischeck函数表示用户u在时间槽t内是否有签到行为:
    [0100][0101]
    其中,l是位置社交网络中的某个兴趣点,l表示签到数据集中的所有兴趣点集合,r
    u,t,l
    表示用户u在时间槽t时对地址l的评分。
    [0102]
    (2.b)统计签到数据集中在时间槽t被访问的兴趣点数量pnum
    t

    [0103]
    pnum
    t
    =∑
    l∈l ischecked(l,t) (14)
    [0104]
    其中,l是位置社交网络中的某个兴趣点,l表示签到数据集中的所有兴趣点集合,ischecked函数表示兴趣点l在时间槽t内是否被访问:
    [0105][0106]
    其中,u是位置社交网络中的某个用户,u表示签到数据集中的所有用户集合,r
    u,t,l
    表示用户u在时间槽t时对地址l的评分。
    [0107]
    (2.c)统计签到数据集中在时间槽t发生的总签到次数cnum
    t

    [0108][0109]
    其中,n为签到数据集c中的签到记录数量,istime函数表示第i次签到记录ci是否发生在时间槽t内:
    [0110][0111]
    其中,time
    i in t表示第i次签到记录ci的签到时间timei对应的时间槽为t。
    [0112]
    各个时间槽的签到用户数量、被访问兴趣点数量以及签到次数的统计结果示意图如图4所示。
    [0113]
    (2.d)基于以上统计结果,构建每个时间槽t的三维签到特征向量x
    t
    ={unum
    t
    ,pnum
    t
    ,cnum
    t
    },形成时间槽签到数据特征集合x={x0,x1,

    ,x
    23
    }。其中,t∈[0,23],unum
    t
    是在时间槽t发生了签到行为的用户数量,pnum
    t
    是在时间槽t被访问的兴趣点数量,cnum
    t
    是在时间槽t发生的总签到次数。
    [0114]
    第三步、基于第二步的统计结果,采用k均值方法对时间槽进行聚类。计算同一聚类内的各个时间槽之间的时间相似度。实现步骤如下:
    [0115]
    (3.a)采用算法简单、收敛速度快的k均值方法对24个时间槽进行聚类,生成3个聚类簇,cen={cen1,cen2,cen3}。其中第一簇时间槽集合为{7,8,9,10,11,12,13},第二簇时间槽集合为{0,1,2,3,16,17,18,19,20,21,22,23},第三簇时间槽集合为{4,5,6,14,15}。24个时间槽的k均值聚类结果示意图如图5所示。
    [0116]
    (3.b)针对上述三个时间聚类集合中的任意两个时间槽t和t',计算两者之间的时间相似度:
    [0117][0118]
    其中,u是位置社交网络中的某个用户,u表示签到数据集中的所有用户集合,l是位置社交网络中的某个兴趣点,l表示签到数据集中的所有兴趣点集合,r
    u,t,l
    表示用户u在时间槽t时对地址l的评分,r
    u,t',l
    表示用户u在时间槽t'时对地址l的评分。
    [0119]
    第四步、根据聚类内相似度高、聚类间相似度低的基本原理,合理利用同一时间聚类内其他时间槽中的评分信息计算当前推荐时间下的用户相似度。实现步骤如下:
    [0120]
    (4.a)选取位置社交网络中某目标用户u
    t
    作为推荐服务对象,将当前推荐时间
    timer转换为时间槽tr。假设当前时间timer为20:14:13,则对应的时间槽tr为20。
    [0121]
    (4.b)根据聚类结果,确定时间槽tr的所属聚类cenj和该聚类中的时间槽数量nj,记作cenj={tr,t2,t3,

    ,t
    nj
    }。例如,当推荐时间槽tr为20时,所属聚类cenj={20,0,1,2,3,16,17,18,19,21,22,23},该聚类中的时间槽数量为12(nj=12)。
    [0122]
    计算活跃用户u
    t
    和其他用户v在时间槽tr时的用户相似度:
    [0123][0124]
    其中,u
    t
    是推荐系统当前服务的目标对象,v为位置社交网络中的一个其他用户,tr是当前推荐时间对应的时间槽,nj为时间槽tr所属聚类cenj中的时间槽数量,表示目标用户u
    t
    在聚类cenj的其他时间槽cenj[a]时对兴趣点l的评分,r
    v,cenj[b],l
    表示用户v在聚类cenj的其他时间槽cenj[b]时对兴趣点l的评分,a∈[1,nj],b∈[1,nj]。
    [0125]
    第五步、利用时间聚类结果和聚类内部的时间相似度对传统的基于用户的协同过滤算法的评分方法进行改进,使其能根据当前推荐时间自适应生成兴趣点预测评分,为用户推荐当前时间排名靠前的若干个未访问地址。实现步骤如下:
    [0126]
    (5.a)确定位置社交网络中某目标用户u
    t
    作为推荐服务对象,将当前推荐时间timer转换为时间槽tr。
    [0127]
    (5.b)根据聚类结果,确定时间槽tr的所属聚类cenj和该聚类中的时间槽数量nj,记作cenj={tr,t2,t3,

    ,t
    nj
    }。
    [0128]
    (5.c)计算目标用户u
    t
    在tr时访问兴趣点l的预测评分:
    [0129][0130]
    其中,u
    t
    是推荐系统当前服务的目标对象,tr是当前推荐时间对应的时间槽,l是位置社交网络中目标用户尚未访问过的一个兴趣点,v为位置社交网络中的一个其他用户,u表示所有用户集合,sim(u
    t
    ,v,tr)表示用户u
    t
    和用户v在时间槽tr时的用户相似度,nj为时间槽tr所属聚类cenj中的时间槽数量,表示用户v在时间cenj[i]时对兴趣点l的评分,i∈[1,nj],timesimi(tr,cenj[i])表示当前时间tr与其他时间cenj[i]之间的相似度。
    [0131]
    (5.d)对目标用户u
    t
    未访问过的所有地址按照预测分排序,将排名靠前的n个位置组成推荐列表,并将推荐列表topnlist
    t
    返回给目标用户(n可以取值为5的倍数,通常情况下,5≤n≤50)。
    [0132]
    第六步、使用推荐精度指标评价推荐质量,对比本发明提出的推荐系统和其他经典推荐系统的推荐精度,评价所提出技术的准确性和有效性。实现步骤如下:
    [0133]
    (6.a)从目标数据集中随机选取157个用户作为目标用户集au,为集合中每个目标用户分别运行本技术提出的时间感知自适应兴趣点推荐算法和经典的基于用户的协同过滤算法ubcf、基于社交关系的协同过滤算法scf,生成推荐列表。
    [0134]
    (6.b)使用精度指标评价各推荐系统的准确性,各算法为目标用户集au运行一次的精确率precision、召回率recall和综合精度指标f1的值是au集合中所有用户该指标的平均值。
    [0135]
    (6.c)重复(6.a)和(6.b)步骤100次,即所有算法独立运行100次。
    [0136]
    (6.d)设定本发明提出的推荐算法和ubcf、scf算法的精确率precision、召回率recall和综合精度指标f1的值是100次运行结果的平均值。当n取不同数值时,各推荐算法的精确率precision、召回率recall和综合精度指标f1结果分别如表2、表3和表4所示,其中,每一行带有加粗格式的数值表示该行指标的最大值:
    [0137]
    表2不同推荐算法的精确率precision指标值
    [0138][0139]
    表3不同推荐算法的召回率recall指标值
    [0140][0141]
    表4不同推荐算法的推荐精度f1指标值
    [0142][0143]
    本案例中的推荐算法和经典的ubcf、scf算法的精确率precision、召回率recall和综合精度指标f1对比的柱状图分别如图6、图7和图8所示。
    [0144]
    (6.e)对比分析各指标结果:本发明提出的基于k均值聚类的时间感知自适应兴趣点推荐算法的精确率precision大于其他推荐算法的precision值,说明本发明提出的技术命中用户喜爱项目的正确率更高;本发明提出的算法的召回率recall大于其他推荐算法的recall值,说明本发明提出的技术查全能力更强;本发明提出的算法的综合精度指标f1值大于其他推荐算法的f1值,说明本发明提出的技术在推荐精度方面综合能力更强。
    [0145]
    有别于常规的兴趣点推荐算法,本发明以构建能够根据时间点实时生成兴趣点列表的、推荐结果准确的兴趣点推荐系统为目标,着重考虑不同时间槽中用户签到数据特征的差异性和相关性,创新地提出了时间点到聚类中心距离的分析模式,采用k均值聚类方法挖掘时间槽之间的相关性,通过时间聚类缓解高维签到数据的稀疏问题,提升了评分预测
    的准确性和有效性,强化了推荐系统的服务质量。本发明提出的技术具有广阔的应用前景,有望在基于位置的社交网络市场中获得广泛的应用。
    [0146]
    以上所述技术流程,仅是本发明的较佳实施方式,但并不能代表本发明的所有细节。任何熟悉本技术领域的专业人员在本发明揭露的技术范围内,在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-429.html

    最新回复(0)