首页> 中国专利> 一种基于动态主题模型和矩阵分解的旅游景点推荐方法

一种基于动态主题模型和矩阵分解的旅游景点推荐方法

摘要

本发明公开了一种基于动态主题模型和矩阵分解的旅游景点推荐方法,通过分析用户在不同时间间隔内的旅行历史信息获得用户旅行偏爱的变化,为用户提供细粒度的旅游推荐服务。方法首先从社交网络中获取数据集的信息。其次,利用动态主题模型从用户历史信息中挖掘用户和景点的隐式特征信息。再次,通过对数据集分析,挖掘用户和景点的显式特征信息,并结合用户和景点的隐式特征信息获得用户‑用户和景点‑景点相似性信息。最后,利用带有联合正则项的矩阵分解方法融合用户‑用户和景点‑景点的相似性信息。该方法能够获得用户的旅行偏爱的变化,为用户推荐合适的旅游景点。

著录项

  • 公开/公告号CN107133277A

    专利类型发明专利

  • 公开/公告日2017-09-05

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN201710237404.6

  • 发明设计人 陈岭;徐振兴;

    申请日2017-04-12

  • 分类号

  • 代理机构杭州天勤知识产权代理有限公司;

  • 代理人胡红娟

  • 地址 310013 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-06-19 03:17:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-06

    授权

    授权

  • 2017-09-29

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20170412

    实质审查的生效

  • 2017-09-05

    公开

    公开

说明书

技术领域

本发明涉及信息推荐技术领域,尤其涉及一种基于动态主题模型和矩阵分解的旅游景点推荐方法。

背景技术

近年来,随着移动互联网、智能手机、以及照片分享网站(例如:Flickr、Panoramio、以及Instagram等)的快速发展,互联网上出现了大量带有地理位置信息的照片数据。并且,这些由群体所贡献的带有地理位置信息的照片数量呈现出急剧增长的趋势。基于这些带有地理位置信息的照片可以挖掘城市中的旅游景点、获得城市中受游客欢迎的旅游线路、分析游客的旅游偏爱,进一步为用户提供个性化的旅游景点或者旅游线路推荐服务。

目前的基于带有地理位置信息照片挖掘的旅游景点推荐方法通常是直接利用用户访问景点的次数信息获得用户间的相似性信息,并结合基于用户的协同过滤方法为用户推荐景点。然而,由于旅行时间或者金钱花费的限制,用户在旅游城市中通常只会游览少量的景点,导致了基于用户-景点矩阵的推荐系统在建模过程中出现数据稀疏性问题。

为解决上述景点推荐中的数据稀疏性问题,目前出现了基于数据降维的景点推荐方法,例如:静态主题模型。该模型是文本挖掘领域中一种比较流行的获得文档隐含主题的方法。在该模型中,用户的旅行历史被看作是文档,旅游景点被看作是词。通过该模型,用户和景点的主题概率分布可以获得。然而,静态主题模型在基于用户旅行历史获得用户旅行偏爱的主题概率分布时,将用户在所有时间段内(例如:年份)的旅行历史信息看作成一个文档,忽略了用户在不同时间段内旅行偏爱的变化问题。

动态主题模型是基于静态主题模型获得文档主题变化的一种扩展形式。它通过将文档集按照时间段划分成子文档集,假设每一个子文档集的主题具有前后依赖关系,主题是随着时间而演化的。通过该模型,文档和词在不同时间段的主题概率分布可以获得,这些在不同时间段的主题体现了文档和词的主题演化过程。该模型为解决在旅游推荐中静态主题模型不能获得用户旅行偏爱的变化问题提供了可能。

发明内容

本发明要解决的问题是如何通过动态主题模型获得用户旅行偏爱变化信息,为用户提供细粒度的旅游景点推荐服务。

一种基于动态主题模型和矩阵分解的旅游景点推荐方法,包括:

获取数据集信息阶段:从社交网络中获取照片数据集Dphoto并对其进行去噪处理,得到旅游照片数据集Dphoto-travel,再从社交网络中签到数据Dcheck-in,并提取签到数据Dcheck-in中的签到地点的类别信息,得到签到地点的类别数据集Dcategory

获得用户旅行偏爱阶段:利用动态主题模型从旅游照片数据集Dphoto-travel中提取用户和景点的隐式特征;然后,通过对旅游照片数据集Dphoto-travel的分析,统计得到用户和景点的显式特征,并结合用户和景点的隐式特征获得用户-用户和景点-景点相似性信息;最后,利用带有联合正则项的矩阵分解方法融合用户-用户和景点-景点的相似性信息,补全稀疏的用户-景点矩阵Y,得到含有用户旅行偏爱信息的矩阵Y’;

推荐旅游景点阶段:利用矩阵Y’对候选集中的景点打分,并将打分排名前N个旅游景点推荐给用户。

所述的获取数据集信息阶段的具体步骤为:

(1-1)利用照片分享网站的公用API下载旅游城市中带有地理位置信息的照片数据,组成照片数据集Dphoto

(1-2)利用基于熵的流动性方法对照片数据集Dphoto中的非旅游照片进行过滤,去除照片集中的噪音照片,得到旅游照片数据集Dphoto-travel

(1-3)利用基于位置的社交媒体网站的公用API下载用户在旅游城市中的签到数据Dcheck-in

(1-4)提取签到数据Dcheck-in中的签到地点的类别信息,并统计组成签到地点的类别数据集Dcategory

所述的照片数据集Dphoto中的照片数据包含:照片的标识信息、照片拍摄时间、照片拍摄地点的经纬度信息、用户为照片添加的文本描述信息以及照片上传者的标识信息。

所述的签到数据Dcheck-in中的签到数据包括:用户签到行为的标识信息、用户签到的时间信息、签到地点的经纬度信息、签到地点的类别信息以及签到用户的标识信息。

所述的获得用户旅行偏爱阶段的具体步骤为:

(2-1)利用基于密度的聚类方法对旅游照片数据集Dphoto-travel中的照片进行空间聚类,获得旅游景点集合L;

(2-2)根据从旅游照片数据集Dphoto-travel统计得到的用户访问景点的次数、旅游景点集合L中的旅游景点,构建用户-景点矩阵Y;

(2-3)将文档代表用户旅行历史,词代表旅游景点,利用动态主题模型推断用户和景点在不同时间段的潜在主题概率分布,并联合所有时间段的主题概率分布,得到用户的全部隐式特征和景点的全部隐式特征

(2-4)从旅游照片数据集Dphoto-trave和签到地点的类别数据集Dcategorye中提取用户的显式特征和景点的显式特征然后结合用户的全部隐式特征和景点的全部隐式特征建立用户画像Fuser和景点画像Flocation,并利用余弦函数构建m×m的用户-用户相似性矩阵A和n×n的景点-景点相似性矩阵B;

(2-5)根据建立的Y、A、以及B,利用用户-用户以及景点-景点的相似性关系构建带有联合正则项的矩阵分解模型,完成对Y的分解;

(2-6)根据带有联合正则项的矩阵分解的结果,补全稀疏的用户-景点矩阵Y,得到含有用户旅行偏爱信息的矩阵Y’。

所述的步骤(2-2)的具体步骤为:

(2-2-1)从旅游照片数据集Dphoto-trave中提取所有的访问信息v=(l,u,t),其中,v表示用户u于t时间访问旅游景点l;

(2-2-2)根据所有的访问信息v=(l,u,t)统计每个用户访问每个景点的次数和旅游照片数据集Dphoto-trave中的用户总个数m;

(2-2-3)根据每个用户访问每个景点的次数、用户总个数m以及旅游景点集合L中的共计n个旅游景点,构建用户-景点矩阵Y,其中,Y∈Rm×n,矩阵Y中(i,j)位置处的值为第i个用户访问第j个景点的次数。

所述的步骤(2-3)的具体步骤为:

(2-3-1)将旅游照片数据集Dphoto-trave中所有的访问信息v=(l,u,t)按照相同的时间长度切片,得到与每个时间段对应子数据集,共M个;

(2-3-2)将子数据集作为动态主题模型的输入,通过训练获得用户和景点在不同时间段的主题概率分布,

其中,为用户在第T个时间段的主题概率分布,景点在第T个时间段的主题概率分布,k为主题个数;

(2-3-3)将用户在所有时间段的主题概率分布按时间串联在一起,组成用户的全部隐式特征将景点在所有时间段的主题概率分布按时间串联在一起,组成景点的全部隐式特征

所述的步骤(2-4)的具体步骤为:

(2-4-1)对旅游照片数据集Dphoto-trave中所有的访问信息v=(l,u,t)和签到地点的类别数据集Dcategory进行统计,获得用户的显式特征和景点的显式特征其中,r为用户的显式特征的总个数,s为景点的显式特征的总个数;

(2-4-2)将用户的显式特征与隐式特征联合一起,构建用户画像将景点的显式特征与隐式特征联合一起,构建景点画像

(2-4-3)结合余弦公式获得用户-用户相似性矩阵A:

其中,fpi和fqi分别表示用户p和q的第i个显式特征;

同样利用余弦公式获得景点-景点相似性矩阵B,此时,余弦公式为:

其中,fxi和fyi分别表示景点x和y的第i个显式特征。

步骤(2-5)中,在矩阵Y的分解过程中,将A和B的相似性信息作为额外正则项限制Y的分解,具体的目标函数为:

其中,Rij为矩阵Y中(i,j)位置处的数值,Iij表示是用户i是否访问景点j的标识器,如果访问,其值为1,否则为0,Simig表示用户i和用户g之间的相似性信息,Simjq表示景点j和景点q景点之间的相似性信息;Ui表示为用户i的潜在特征向量,Ug表示为用户g的潜在特征向量,Lj表示为景点j的潜在特征向量,Lg表示为景点g的潜在特征向量,表示用户i的潜在特征向量与用户g的潜在特征向量的距离,G(i)表示用户i的相似性用户群,Q(j)表示表示景点j的相似性景点群,U是Y分解后的用户的潜在特征向量,是d×m维的;L是Y分解后的景点的潜在特征向量,是d×n维的;其中,m、n、以及d分别表示用户个数、景点个数、以及潜在特征向量的个数;

基于带有联合正则项的矩阵分解模型分解Y的具体步骤如下:

(a)随机初始化参数U和参数L,并设置学习率α、误差阈值δ、参数λ1和λ2

(b)对于Y中每一个非零值Rij,根据计算Rij的估计值Xij,并根据计算Xij与真实值Rij的误差,最后根据统计对所有非零值的总误差θ,其中,w为非零值的个数;

(c)判断总误差θ是否大于误差阈值δ,若是,执行步骤(d),若否,迭代结束,此时的U和L为最优值,完成对矩阵Y的分解;

(d)采用梯度下降方法更新U和L的值,然后跳转执行步骤(b),梯度下降方法的公式为:

步骤(2-6)中,根据公式对Y中缺失的值进行填充,填充后的值代表用户的旅行偏爱信息。

所述的推荐旅游景点阶段的具体步骤为:

(3-1)根据用户输入信息获得用户在旅游城市中景点集合,这些景点作为推荐的候选集;

(3-2)根据矩阵Y’获得用户对推荐的候选集中景点的打分,获得用户偏爱景点;

(3-3)对偏爱景点的打分进行降序排列,选择打分排名前N个旅游景点推荐给用户。

本发明针对传统静态主题模型不足以获得用户旅行偏爱的主题演化问题,提出一种基于动态主题模型和矩阵分解的旅游景点推荐方法,与现有的方法相比,其优点在于:

(1)利用动态主题模型,获得用户的旅行偏爱的主题变化信息(隐式特征信息)。

(2)通过对数据集信息的分析,获得了用户和景点大量显式特征信息,这些信息与隐式特征信息一起可以全面描述用户和景点的特点。

(3)通过带有联合正则项的矩阵分解方法融合用户-用户和景点-景点相似性的信息,这种方法可以在用户-景点矩阵分解的过程中同时限制用户和景点的潜在特征向量,准确补全用户-景点矩阵。

附图说明

图1是本发明基于动态主题模型和矩阵分解的旅游景点推荐方法流程图;

图2是获取数据集信息阶段的流程图;

图3是获得用户旅行偏爱阶段的流程图;

图4是基于动态主题模型的文档生成原理图;

图5是推荐旅游景点阶段的流程图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

如图1所示,本发明基于动态主题模型和矩阵分解的旅游景点推荐方法分为获取数据集信息、获得用户旅行偏爱、以及推荐旅游景点三个阶段:

获取数据集信息阶段

数据处理的流程图如图2所示,步骤如下:

S1-1,利用照片分享网站的公用API下载旅游城市中带有地理位置信息的照片数据集Dphoto

获取照片数据的具体步骤包括:

S1-1-1,通过照片分享网站(如:Flickr)提供的公用API,按城市下载在该城市中拍摄的照片及相应的元数据信息。一张带有地理位置信息的照片p可以表示为:p=(pid,pt,pg,px,pu)。其中,pid,pt,pg,px,pu分别表示为照片的唯一标识号、用户拍摄照片的时间、照片的经纬度信息、用户为照片添加的文本描述信息、以及照片上传者的唯一标识号;

S1-1-2,对收集的照片集按照照片的唯一标识信息获得每个用户拍摄的所有照片信息,Hi={p1,p2,…,pe},其中,e为用户i拍摄的所有照片数。

S1-2,利用基于熵的流动性方法对照片数据集Dphoto中的非旅游照片进行过滤,去除照片集中的噪音照片,得到旅游照片数据集Dphoto-travel

去除非旅游照片的具体步骤如下:

S1-2-1,根据照片内容以及经验知识对用户的照片集进行人工标注少量旅游照片和非旅游照片;

S1-2-2,将城市分成x′×y′个小格子(每个小格子表示为(xi,yj),i=1,2,…,x;j=1,2,…,y),统计用户的照片在这些小格子中的照片数目,并计算每个小格子中照片占整个照片数量的比例a,根据信息熵的原理计算用户的照片集的流动性熵Hmobility,计算过程如公式如下式所示

根据Hmobility>ε,调节ε的值(从0到1,每隔0.1),统计对人工标注照片集的分类准确率,选择准确率高的ε对整个数据集中的照片进行分类,去除非旅游照片。

S1-3,利用基于位置的社交媒体网站的公用API下载用户在旅游城市中的签到数据Dcheck-in

获取签到数据的具体步骤包括:

S1-3-1,通过基于位置的社交媒体网站(如:SinaWeibo)提供的公用API,按城市下载在该城市中用户签到的数据。用户的一次签到行为q可以表示为:q=(qid,qt,qg,qc,qu);其中,qid,qt,qg,qc,qu分别表示签到行为的唯一标识号、用户签到的时间、兴趣点的经纬度信息、兴趣点的类别信息、以及签到用户的唯一标识号;

S1-3-2,根据用户签到数据的用户标识号提取每个用户的所有签到数据;Qi={q1,q2,…,qo},其中,o为用户i在城市中的所有签到数。

S1-4,提取签到数据Dcheck-in中的签到地点的类别信息,并统计组成签到地点的类别数据集Dcategory

用户签到行为信息中包含用户访问兴趣点时添加的一些类别信息,对这些信息进行统计可以获得每个兴趣点所有的类别信息,具体可以表示为:CPOI=(c1,c2,…,cz)。其中,z为兴趣点包含的类别数目。

获得用户旅行偏爱阶段

获得用户旅行偏爱阶段的流程图如图3所示,步骤如下:

S2-1,利用基于密度的聚类方法对带有地理位置信息的照片进行空间聚类,从而获得旅游城市中旅游景点集合L。

用户通常在其比较感兴趣的地点拍摄照片,如果大量用户在一个地点拍摄照片,则该地点可以认为是一个旅游景点。采用基于密度的聚类方法(例如:P-DBSCAN)对大量带有地理位置信息的照片进行空间上的聚类,得到的每个聚类代表一个旅游景点,聚类中心即为该旅游景点位置。通过该过程,挖掘出旅游景点集L={l1,l2,…,ln},其中l={Pl,gl},Pl是属于一个景点的所有照片集合,gl是一个景点的经纬度信息。

S2-2,根据从照片中挖掘的旅游景点以及用户在景点的访问历史,统计用户访问景点的次数信息,构建用户-景点矩阵Y。

建立用户-景点矩阵的具体步骤包括:

S2-2-1,从照片集中提取用户对景点的历史访问信息,v=(l,u,t)。其中,l,u,t分别为用户访问的旅游景点、用户的标示、以及用户访问该景点的时间。

S2-2-2,统计用户访问景点次数。构建的用户-景点矩阵可以表示为Y:Y∈Rm×n,m和n分别表示用户和景点个数,矩阵中的值为用户访问景点的次数。

S2-3,将文档代表用户旅行历史,词代表旅游景点,利用动态主题模型推断用户和景点在不同时间段的潜在主题概率分布,并联合所有时间段的主题概率分布,得到用户的全部隐式特征和景点的全部隐式特征

动态主题模型是已经被研究者成功用于获得文档的潜在主题变化的应用中。对于一个文档,其具体生成过程如图4所示。在该图中,文档集按照时间被分成几个子文档集,不同时间段的文档集和词的主题是具有前后依赖关系的,后一个时间段的主题分布是由前一个时间段主题演化而来。α是控制子文档集的主题分布的参数,θ是控制单个文档的主题分布的参数,β是控制主题在词上的概率分布参数,z表示主题,k表示主题个数,w表示词,N表示文档,A表示子文档集。通过该模型,文档和词在不同时间段的主题概率分布都可以获得。

在基于带有地理位置信息照片挖掘的旅游推荐中,用户的旅行历史信息可以被看作是多个主题的组合,每个主题是多个景点的概率分布。简单地说,在使用动态主题模型时,文档代表用户旅行历史,词代表旅游景点。

S2-3-1,获得用户和景点隐式特征的具体步骤包括:

将用户的旅游历史信息按照时间切片(例如:年份)划分为不同的子数据集。

S2-3-2,将子数据集作为动态主题模型的输入,通过训练获得用户和景点在不同时间段的主题概率分布,

其中,为用户在第T个时间段的主题概率分布,景点在第T个时间段的主题概率分布,k为主题个数;

S2-3-3,将用户在所有时间段的主题概率分布按时间串联在一起,组成用户的全部隐式特征将景点在所有时间段的主题概率分布按时间串联在一起,组成景点的全部隐式特征

S2-4,从用户旅行历史中提取用户的显式特征和景点的显式特征然后结合用户的全部隐式特征和景点的全部隐式特征建立用户画像Fuser和景点画像Flocation,并利用余弦函数构建m×m的用户-用户相似性矩阵A和n×n的景点-景点相似性矩阵B。

建立A和B的具体步骤包括:

S2-4-1,对用户访问景点的历史信息进行统计(例如:用户访问景点的总个数、一个景点被访问的总用户数、景点类别信息等),获得大量显示信息以描述用户和景点的特征,分别表示为:其中,r和s分别表示用户和景点显示特征的总个数,每个具体的特征如表1和表2所示。这些特征中有些特征的获取需要利用第三方网络服务获得,具体说明如下:

性别和年龄信息:游客的这些信息通过第三方网络服务对照片的内容进行分析获得。例如:www.alchemyapi.com,当该网络服务获得一张上传的照片时,它会调用其API函数(即,Alchemy Vision Face Detection and Recognition API)对照片进行分析,然后返回给上传者该照片中所出现的人脸的性别和年龄信息。对所有在一个景点拍摄的照片中人脸的性别和年龄信息进行统计,即可获得该景点的性别和年龄信息的分布。类似的,通过对一个用户所拍摄的所有照片中人脸的性别和年龄信息的统计,获得该用户所拍摄照片中的人脸的性别和年龄信息的分布。

天气信息:基于第三方天气网络服务、照片的经纬度信息、以及照片拍摄的时间可以获得该照片拍摄时的天气信息。例如:wundgerground.com,通过该网络服务的API函数,可以获得每个位置的不同时间点的天气信息。对用户在不同天气条件下拍摄的照片进行统计,可以获得该景点在不同天气情况下受游客欢迎的程度。

S2-4-2,将用户和景点的显式特征以及隐式特征联合一起,构建用户和景点的画像,即:

S2-4-3,结合余弦公式获得用户-用户相似性矩阵A(m×m):

其中,fpi和fqi分别表示用户p和q的第i个显式特征;

同样利用余弦公式获得景点-景点相似性矩阵B(n×n),此时,余弦公式为:

其中,f′xi和f′yi分别表示景点x和y的第i个显式特征。

S2-5,根据建立的Y、A、以及B,利用用户-用户以及景点-景点的相似性关系构建带有联合正则项的矩阵分解模型,完成对Y的分解。

在Y分解过程中,将A和B的相似性信息作为额外正则项限制Y的分解,具体的目标函数为:

在该公式中Simig表示用户ui和用户ug之间的相似性信息,Simjq表示景点lj和lq景点之间的相似性信息。U(d×m)和L(d×n)分别是Y分解后的用户和景点的潜在向量表示。其中,m、n、以及d分别表示用户个数、景点个数、以及潜在特征向量的个数。

基于带有联合正则项的矩阵分解模型分解Y的具体步骤如下:

(a)随机初始化参数U和参数L,并设置学习率α、误差阈值δ、参数λ1和λ2

(b)对于Y中每一个非零值Rij,根据计算Rij的估计值Xij,并根据计算Xij与真实值Rij的误差,最后根据统计对所有非零值的总误差θ,其中,w为非零值的个数;

(c)判断总误差θ是否大于误差阈值δ,若是,执行步骤(d),若否,迭代结束,此时的U和L为最优值,完成对矩阵Y的分解;

(d)采用梯度下降方法跟新U和L的值,然后跳转执行步骤(b),梯度下降方法的公式为:

S2-6,根据带有联合正则项的矩阵分解的结果,补全稀疏的Y,获得用户旅行偏爱。

根据公式对Y中缺失的值进行填充,填充后的值代表用户的旅行偏爱信息。

表1 用户显式特征信息

表2 景点显式特征信息

推荐旅游景点阶段

推荐旅游景点的流程如图5所示,主要包括以下步骤:

S3-1,根据用户输入信息获得用户在旅游城市中(目的地)景点集合,这些景点作为推荐的候选集。

根据用户的ID和用户旅游城市c(目的地),在补全的用户-景点矩阵中进行查找,获得该旅游城市c中的景点集合L′。

S3-2,根据步骤1的结果和补全的用户-景点矩阵获得用户对这些景点的打分,即获得用户对这些景点的偏爱。

补全的用户-景点矩阵中的每一个值体现了用户对不同景点的偏爱打分,根据该矩阵以及L′可以获得用户在旅游城市中对不同景点的偏爱。

S3-3,根据S3-2对景点进行排序,选择top N旅游景点推荐给用户。

根据用户在旅游城市中不同景点的打分,按照降序进行排列,将排在前面的N个景点推荐给用户。

以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号