LBSN中基于好友聚类的社交搜索评价方法与流程

文档序号:11287712阅读:287来源:国知局
LBSN中基于好友聚类的社交搜索评价方法与流程

本发明涉及一种评价方法,具体涉及一种lbsn中基于好友聚类的社交搜索评价方法,属于社交搜索技术领域。



背景技术:

在线社交网络(osns)的发展给人们的日常生活带来了极大的便利,如今每天有多达数十亿的用户活跃在osns上,产生了大量的社交信息。渐渐地,人们更喜欢通过osns搜索信息而不是传统的搜索引擎,社交搜索便应运而生。由于传统搜索方式有查准率低,用户筛选时间长,搜索结果一致化等缺点,在用户个性化搜索的背景下,社交搜索依托于传统的搜索原理,结合用户的社交信息,可以产生个性化的搜索结果,提高搜索精度。特别是基于位置的社交网络(lbsns)的出现,在移动电话等移动设备和gps、wifi等移动技术的支持下,为社交搜索的移动化研究提供了重要的研究平台。

lbsn平台上对社交搜索的研究成果很少,对社交搜索的研究主要在两方面:设计搜索引擎和改进搜索算法。虽然现有研究都在充分挖掘lbsns提供的联系人信息和位置信息,不过依然有很多不足之处。有的研究更注重搜索速度的提升,通过改进索引结构提高搜索速度,忽视了数据集的稀疏问题,进而影响了搜索精度;有的研究分析位置点上发生的具体事件,比如地震,火灾等,实现对特定位置点发生的事件的搜索,但缺少搜索对象领域的广泛化,领域比较单一,不能较好满足现实需求;有的研究由于评价方法如相似度度量标准主观且社交搜索系统的负载过大,导致搜索效果仍有提高的空间。



技术实现要素:

本发明正是针对现有技术中存在的技术问题,提供一种lbsn中基于好友聚类的社交搜索评价方法,该技术方案在于通过设计基于位置信息和联系人信息等多维特征,提出基于好友聚类的knn搜索算法,设计基于倒排索引的搜索引擎,结合距离等因素使搜索结果更加精确、搜索速度得到提升。其中,搜索算法综合考虑了三种排序得分:搜索得分即基于专业相关性的位置排序、社交得分即基于社交影响力的位置排序、空间得分即基于距离远近的位置排序。

为了实现上述目的,本发明的技术方案如下,一种lbsn中基于好友聚类的社交搜索评价方法,其特征在于,所述评价方法包括以下步骤,1)爬取的foursquare真实数据集中有联系人信息和位置信息,通过对数据的统计与分析,提取出联系人特征、签到特征、评价特征和时间特征,共15种数据类型,包括用户id、好友id、签到id、签到位置描述、签到发生时区、签到位置id、签到位置经纬度、签到位置名称、签到位置的类型id、签到位置的类型名称、签到发生时间、评价文本id、评价文本内容、评价发生时间,构建社交搜索模型并给出形式化描述,筛选发生在纽约的数据集,这种方法同样适用于其他城市;

2)从步骤1)处理好的数据集中提取位置名称、位置类型、位置描述三种数据类型,构建“位置名称-文档”式倒排索引,在此基础上,基于lucene技术构建社交搜索引擎;

3)线上部分设计搜索算法,在基于搜索得分的位置排序部分,搜索用户输入搜索内容,经语义分词产生话题,与步骤2倒排索引中的文档进行相似度匹配,根据专业相关性得分索引出备选位置和基于得分的位置排序;

4)在搜索算法中基于社交得分的位置排序部分,从步骤1)处理好的数据集中提取联系人数据、签到数据和评价数据,线下通过k-means算法聚类搜索用户的好友,通过knn算法查找搜索用户一定数量的最近邻,线上通过这些最近邻对搜索用户施加社交影响,通过设计最近邻的区域活跃度和对位置的评价两个社交特征计算步骤3中的备选位置的社交得分并排序;

5)在搜索算法中基于距离远近的位置排序部分,从步骤1)处理好的数据集中提取位置经纬度数据,通过地球上两点间的距离公式,计算搜索用户当前位置和步骤3)中备选位置的各自距离,量化成得分并排序;

6)综合步骤3)、步骤4)、步骤5)中的三种位置排序,构建线性回归模型并训练,得出最终的位置排序,即搜索结果。

作为本发明的一种改进,所述步骤1)中筛选发生在纽约的数据集的具体方法如下,为不同的数据特征建立不同的数据库表,每个表中包含所有真实数据类型中的数据字段,将整个数据集导入数据库即mysql,再用sql语言对数据进行处理,先通过时区这个字段提取出纽约的签到记录和评价信息,因为用户id和位置id都是各个表中的唯一字段,再通过表连接的方式处理数据,处理后的数据有如下特性:保证用户对位置既有签到记录又有评价信息。

作为本发明的一种改进,所述步骤2)中基于lucene技术构建社交搜索引擎具体如下,其中倒排索引是搜索引擎的核心数据结构,本发明受传统倒排索引的启发,构建倒排索引分为三步:

21)将位置名称、位置类型和位置描述三种数据类型组合成文档(document)作为后索引;

22)将位置名称作为单词(term)构建前索引;

23)输入关键字,通过语义分词产生话题,与文档做相似度计算,将得分高的一定数量的文档选出,索引出相应的位置名称;

lucene是一个构建搜索引擎的java框架,共有5个核心jar包:core、analyzer、highlighter、query和queryparser,通过导入jar包在eclipse开发环境中实现本发明的搜索引擎。

作为本发明的一种改进,所述步骤4)中,线下算法具体如下,通过k-means算法聚类搜索用户的好友,目的是使数据更加稠密,减小不利影响。由于对好友间的签到与评价向量聚类,本发明将相似度衡量标准更新为修正的余弦相似度。相似度的评价指标有两个:一是签到数量,二是评价得分。本发明将英文的评价文本通过textblob情感分析工具量化为得分,具体公式如下所示:

(1)基于签到次数的修正余弦相似度计算公式:

其中,代表用户i1在所有位置点的平均签到数量;

(2)基于评价评分的修正余弦相似度计算公式:

其中,代表用户i1对所有poi的平均评价得分;

(3)总的相似度计算公式:

(4)通过knn算法查找搜索用户的最近邻,欧氏距离计算公式如下所示:

其中,cenk表示k个聚类中心向量。

作为本发明的一种改进,步骤4)中线上部分施加最近邻的社交影响,设计了两个社交特征,分别是每一个好友的区域活跃度和每个好友对每一个备选位置的评价,选择的指标都是签到数量,但两者有区别,区域活跃度指的是用户对所有备选位置的签到数量,数量越多代表越活越,推荐的位置也就更有说服力,其施加的社交影响力越大;对备选位置的评价计算的是好友对每一个备选位置的签到数量,数量越多代表用户对这个位置评价越高,有利于提升这个位置在最终搜索结果的排名。衡量指标之所以没有选择评价得分,是因为评价文本数量相对少了很多,数据密度太过稀疏,对搜索结果会产生非常大的影响,因此放弃评价得分这一指标。本数据集还爬取了签到的时间特征,因为考虑到距离现在时间越长的签到记录产生的作用没有近期发生的签到的作用大。因此,以t=2015为基准,因为本数据集最新的签到记录发生在2015年,以年为单位,计算到2010年发生的签到记录,时间越久所占影响因子越小,具体的公式如下所示:

(5)区域活跃度

其中,指的是一年中每个好友针对所有位置点的签到记录,时间距离2015年越久,这个影响因子越小。为了归一化,cmax取一个适当的值。

(6)用户对每一个位置的评价

其中,指的是一年中每个好友针对每一个位置点的签到记录,时间距离2015年越久,这个影响因子越小。为了归一化,cmax取一个适当的值。

(7)最终的基于社交的位置得分公式:

其中,social(vk)表示搜索用户的h个最近邻累计对k了备选位置中每一个备选位置的社交评分,即影响力。

作为本发明的一种改进,所述步骤6)中综合三种位置排序,构建线性回归模型,具体公式如下:

其中,query(vj)表示基于搜索得分的位置排序,social(vj)表示基于社交得分的位置排序,distance(vj)表示基于距离得分的位置排序。

相对于现有技术,本发明具有如下优点,1)该技术方案充分挖掘lbsns提供的数据特点设计社交特征,本发明基于爬取的foursquare数据集,除了传统的联系人信息,充分利用了位置信息上的签到特征和评价特征,并考虑了时间特征;2)该技术方案中,lbsns属于异构网络,数据集非常稀疏,为了降低不利影响,本发明采用聚类搜索用户好友的方法使数据更加稠密,消除奇异点;3)本发明在设计搜索算法上,除了传统的基于社交影响力的位置排序,还考虑了基于专业相关性的位置排序和基于距离远近的位置排序,使搜索结果更加精确客观。

附图说明

图1为本发明评价方法整体框架示意图;

图2为评价方法整体结构示意图。

具体实施方式:

为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。

实施例1:参见图1、图2,一种lbsn中基于好友聚类的社交搜索评价方法,所述评价方法包括以下步骤,1)爬取的foursquare真实数据集中有联系人信息和位置信息,通过对数据的统计与分析,提取出联系人特征、签到特征、评价特征和时间特征,共15种数据类型,包括用户id、好友id、签到id、签到位置描述、签到发生时区、签到位置id、签到位置经纬度、签到位置名称、签到位置的类型id、签到位置的类型名称、签到发生时间、评价文本id、评价文本内容、评价发生时间,构建社交搜索模型并给出形式化描述,筛选发生在纽约的数据集,这种方法同样适用于其他城市;

2)从步骤1处理好的数据集中提取位置名称、位置类型、位置描述三种数据类型,构建“位置名称-文档”式倒排索引,在此基础上,基于lucene技术构建社交搜索引擎;

3)线上部分设计搜索算法,在基于搜索得分的位置排序部分,搜索用户输入搜索内容,经语义分词产生话题,与步骤2倒排索引中的文档进行相似度匹配,根据专业相关性得分索引出备选位置和基于得分的位置排序;

4)在搜索算法中基于社交得分的位置排序部分,从步骤1)处理好的数据集中提取联系人数据、签到数据和评价数据,线下通过k-means算法聚类搜索用户的好友,通过knn算法查找搜索用户一定数量的最近邻,线上通过这些最近邻对搜索用户施加社交影响,通过设计最近邻的区域活跃度和对位置的评价两个社交特征计算步骤3中的备选位置的社交得分并排序;

5)在搜索算法中基于距离远近的位置排序部分,从步骤1)处理好的数据集中提取位置经纬度数据,通过地球上两点间的距离公式,计算搜索用户当前位置和步骤3)中备选位置的各自距离,量化成得分并排序;

6)综合步骤3)、步骤4)、步骤5)中的三种位置排序,构建线性回归模型并训练,得出最终的位置排序,即搜索结果。

该技术方案中,步骤1)具体如下,本项目组于2015年完成爬取foursquare数据集的工作。数据特征比较完整,包括联系人信息和位置信息,通过对数据的统计与分析,提取发生在纽约的联系人特征、签到特征、评价特征和时间特征,共15种数据类型,构建社交搜索模型并给出形式化描述;

对于文本预处理,主要可以分为两步:

1)筛选发生在纽约的数据集的具体方法:为不同的数据特征建立不同的数据库表,每个表中包含所有真实数据类型中的数据字段,将整个数据集导入数据库——mysql,再用sql语言对数据进行处理。先通过时区这个字段提取出纽约的签到记录和评价信息,因为用户id和位置id都是各个表中的唯一字段,再通过表连接的方式处理数据,处理后的数据有如下特性:保证用户对位置既有签到记录又有评价信息;

2)通常来说,个人的签到记录和评价文本越多,越能体现他的行为规律;个人的好友数越多,越能体现他的社交关系。因此,在不失去一般性的前提下,本文对过度稀疏的数据进行适当的过滤。通过对数据集的统计与分析,过滤掉好友数少于50或者签到数少于20,评价数少于5的用户。最终的数据集构成为635,000条签到记录,4,500个用户,56,868个位置点,504,288个好友关系边和95,822个评价文本。其中,评价文本全部是英文文本,在数据处理的过程中去掉了其他语言的评价文本。

所述步骤2)中基于lucene技术构建社交搜索引擎具体如下,其中倒排索引是搜索引擎的核心数据结构,本发明受传统倒排索引的启发,构建倒排索引分为三步:

21)将位置名称、位置类型和位置描述三种数据类型组合成文档(document)作为后索引;

22)将位置名称作为单词(term)构建前索引;

23)输入关键字,通过语义分词产生话题,与文档做相似度计算,将得分高的一定数量的文档选出,索引出相应的位置名称;

lucene是一个构建搜索引擎的java框架,共有5个核心jar包:core、analyzer、highlighter、query和queryparser,通过导入jar包在eclipse开发环境中实现本发明的搜索引擎。

所述步骤3)线上部分设计搜索算法,在基于搜索得分的位置排序部分,搜索用户输入搜索内容(自然语言),经语义分词产生话题,与步骤2)倒排索引中的文档进行相似度匹配,根据专业相关性得分索引出备选位置和基于得分的位置排序;步骤4:在搜索算法中基于社交得分的位置排序部分,从步骤1处理好的数据集中提取联系人数据、签到数据和评价数据,线下通过k-means算法聚类搜索用户的好友,通过knn算法查找搜索用户一定数量的最近邻,线上通过这些最近邻对搜索用户施加社交影响,通过设计最近邻的区域活跃度和对位置的评价两个社交特征计算步骤3中的备选位置的社交得分并排序;

在线下算法的设计部分,通过k-means算法聚类搜索用户的好友,目的是使数据更加稠密,减小不利影响。由于对好友间的签到与评价向量聚类,本发明将相似度衡量标准更新为修正的余弦相似度。相似度的评价指标有两个:一是签到数量,二是评价得分。本发明将英文的评价文本通过textblob情感分析工具量化为得分,具体公式如下所示:

(1)基于签到次数的修正余弦相似度计算公式:

其中,代表用户i1在所有位置点的平均签到数量。

(2)基于评价评分的修正余弦相似度计算公式:

其中,代表用户i1对所有poi的平均评价得分。

(3)总的相似度计算公式:

(4)通过knn算法查找搜索用户的最近邻,欧氏距离计算公式如下所示:

其中,cenk表示k个聚类中心向量。

线上部分施加最近邻的社交影响,设计了两个社交特征,分别是每一个好友的区域活跃度和每个好友对每一个备选位置的评价。选择的指标都是签到数量,但两者有区别,区域活跃度指的是用户对所有备选位置的签到数量,数量越多代表越活越,推荐的位置也就更有说服力,其施加的社交影响力越大;对备选位置的评价计算的是好友对每一个备选位置的签到数量,数量越多代表用户对这个位置评价越高,有利于提升这个位置在最终搜索结果的排名。衡量指标之所以没有选择评价得分,是因为评价文本数量相对少了很多,数据密度太过稀疏,对搜索结果会产生非常大的影响,因此放弃评价得分这一指标。本数据集还爬取了签到的时间特征,因为考虑到距离现在时间越长的签到记录产生的作用没有近期发生的签到的作用大。因此,以t=2015为基准,因为本数据集最新的签到记录发生在2015年,以年为单位,计算到2010年发生的签到记录,时间越久所占影响因子越小,具体的公式如下所示:

(5)区域活跃度

其中,指的是一年中每个好友针对所有位置点的签到记录,时间距离2015年越久,这个影响因子越小。为了归一化,cmax取一个适当的值。

(6)用户对每一个位置的评价

其中,指的是一年中每个好友针对每一个位置点的签到记录,时间距离2015年越久,这个影响因子越小。为了归一化,cmax取一个适当的值。

(7)最终的基于社交的位置得分公式:

其中,social(vk)表示搜索用户的h个最近邻累计对k了备选位置中每一个备选位置的社交评分,即影响力。

步骤5)在搜索算法中基于距离远近的位置排序部分,从步骤1)处理好的数据集中提取位置经纬度数据,通过地球上两点间的距离公式,计算搜索用户当前位置和步骤3中备选位置的各自距离,量化成得分并排序;

通过地球上两点间的距离公式计算搜索用户的当前位置与步骤3中备选位置的各自距离,为了防止因距离远近差距过大影响结果,设定距离范围,选择所有距离中最小的距离作为分子归一化,保证距离越远,得分越低。最后根据距离得分排序位置。计算公式如下:

dis(v1,v2)=r*arccos(sin(lat1)*sin(lat2)*cos(lon1-lon2)+cos(lat1)cos(lat2))*pi/180(8)其中:r:地球半径;lat:纬度;lon:精度。

步骤6:综合步骤3)、4)、5)中的三种位置排序,构建线性回归模型并训练,得出最终的位置排序,即搜索结果;

具体公式如下:

其其中,query(vj)表示基于搜索得分的位置排序,social(vj)表示基于社交得分的位置排序,distance(vj)表示基于距离得分的位置排序。

公式中对权重的选择由于会直接影响最后的结果,权重的选择非常重要。本文的研究对象是社交搜索,主要通过社交特征使搜索精度精确,因此基于社交得分的权重比重最大,即β最大;其次,基于搜索的得分来自于分词后的话题与文档的相似度计算,而基于距离的得分来自于根据距离与阈值范围设计的得分,从误差的角度分析,基于搜索的得分误差最小。因为通过计算发现,不同位置点与搜索用户当前位置的距离远近差异过大,即使归一化后也比搜索得分的误差大,因此基于搜索的权重比重其次,即α;基于距离的权重比重最小。然后,进行线性回归的模型训练。

需要说明的是,上述实施例仅仅是本发明的较佳实施例,并没有用来限定本发明的保护范围,在上述基础上做出的等同替换或者替代,均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1