Page 42 - 《软件学报》2020年第12期
P. 42

3708                                Journal of Software  软件学报 Vol.31, No.12, December 2020

                      量 w 和 w .根据定义 1 描述的构图方法,构建 POI-POI 图 G VV .
                         u
                              v
             步骤 2.    根据定义 2 描述的构图方法,结合签到集中 POI 的地理位置信息,构建 POI-地区图 G VR .
             步骤 3.    根据定义 3 描述的构图方法,结合签到集中的签到时间等信息,构建 POI-时间段图 G VT .
             步骤 4.    根据公式(1)~公式(3)以及第 2.3 节中描述的联合嵌入学习方法,将 G VV ,G VR 和 G VT 嵌入到同一潜

                      在空间中,并通过学习得到 POI、地区和时间段在共享低维空间中的表述向量:,vr 和 t .

             步骤 5.    根据公式(5)对目标用户 u 的偏好建模,得到目标用户 u 的偏好向量 u .
             步骤 6.    依当前时间节点τ和用户当前所在位置 l,并结合公式(6)计算目标用户对每个 POI 的预测分数.
             步骤 7.    根据预测分数生成推荐列表,并结合签到集中目标用户的签到记录,过滤掉用户曾访问过的
                      POI,得到最终的推荐列表.

         3    实验结果与分析
             首先介绍实验所用的数据集;然后给出评价指标以及对比方法;最后根据实验结果,给出相应的结果分析并
         得出结论.
         3.1   数据集介绍

             Yelp 数据集是由美国点评网站 Yelp 公开的内部数据集,它包括了诸如英国的爱丁堡、德国的卡尔斯鲁厄、
         加拿大的滑铁卢、美国的菲尼克斯等 10 个城市,约 366 000 个用户、61 000 个项目和 1.6 亿条签到的数据.每
         条签到记录都包括了 5 个属性:用户 ID、项目 ID、经纬度、项目内容和签到时间.但在这个数据集中的签到时
         间并没有具体到时分秒,而是以年月日的形式展现的,如 2018-3-17.我们将数据集中关于美国拉斯维加斯的数
         据记录截取出来用于本次实验.
             Foursquare 是当前最流行的基于位置的社交网络之一,其用户的活动范围包含了诸如东京、纽约和洛杉矶
         等全球知名城市.与 Yelp 数据集不同的是,Fousquare 公开的数据集中,其每条签到记录的签到时间精确到了时
         分秒.我们将数据集中关于洛杉矶的数据记录截取出来用于本次实验.
             实验所使用的数据集中包含的具体数据见表 1.
                                         Table 1    Content of the dataset
                                             表 1   数据集的内容
                                      数据集名称         Yelp     Foursquare
                                        用户数        21 718     31 540
                                        项目数        12 920     22 412
                                        签到数        617 538    273 703
                                     签到日期范围      2008.1-2015.1  2009.4-2013.9
             为了验证算法的准确性,我们将数据集拆分为训练集和测试集,划分方式为将每个用户的签到记录依照签
         到时间排序,取签到记录时间较早的 80%作为训练集,其余的作为测试集.
         3.2   评价指标

             为了验证模型的推荐性能,本文采用精确率 Precision@N 和召回率 Recall@N 为评价指标来进行测试.各评
         价指标的定义如下:
                                                    | D  ∩ Top_ |N
                                        Precision @ N =  test                                 (7)
                                                           N
                                                       | Top_ |
                                                   | D  ∩ Top_ |N
                                         Recall  @ N =  test                                  (8)
                                                       | D test  |
         其中,|D test |表示测试集,|Top_N|表示为用户生成的大小为 N 的推荐列表.在后续的实验模块中,我们采用所有用
         户的精确率均值和召回率均值来评价推荐模型的性能.
   37   38   39   40   41   42   43   44   45   46   47