本发明属于旅游推荐,具体是指基于人工智能的旅游推荐方法及系统。
背景技术:
1、旅游推荐系统可以大大节省用户的时间和精力,提供更加个性化和精准的旅游服务。但是现有的旅游推荐模型存在严重的数据稀疏性,无法从复杂的上下文中准确捕捉用户的偏好的问题;现有的旅游推荐模型存在不能有效衡量节点之间的连接强度,无法准确捕捉用户偏好特征,且没有考虑用户选择兴趣地点的概率会随着距离的增加而降低的问题;传统的模型参数搜索算法存在个体位置初始化不均匀,搜索位置多样性弱,收敛精度低,导致算法在迭代时陷入局部最优的问题。
技术实现思路
1、针对上述情况,为克服现有技术的缺陷,本发明提供了基于人工智能的旅游推荐方法及系统,针对现有的旅游推荐模型存在严重的数据稀疏性,无法从复杂的上下文中准确捕捉用户的偏好的问题,本方案基于采集的数据构建用户-兴趣地点图和时间-兴趣地点图,并将用户fu在所有时间内对兴趣地点hd访问的频率和在时间ov内所有用户对兴趣地点hd访问的频率分别作为用户-兴趣地点图和时间-兴趣地点图的边缘权重,分别捕捉用户与兴趣地点的相关性和时间因素与兴趣地点的相关性,可以有效地弥补数据的稀疏性,能够更好地理解用户的兴趣和偏好,为系统提供更加动态和时效性的信息;针对现有的旅游推荐模型存在不能有效衡量节点之间的连接强度,无法准确捕捉用户偏好特征,且没有考虑用户选择兴趣地点的概率会随着距离的增加而降低的问题,本方案引入边缘权重改进更新节点特征向量的方法,并基于用户当前所在地进行地理因素评估,计算对兴趣地点的推荐分数,综合考虑时间因素和地理因素的影响,以提高模型的推荐性能;针对传统的模型参数搜索算法存在个体位置初始化不均匀,搜索位置多样性弱,收敛精度低,导致算法在迭代时陷入局部最优的问题,本方案基于tent混沌映射初始化个体位置,丰富了个体初始位置的多样性,使用收敛因子和均衡池策略定义两种位置更新方法,提高了位置更新过程中的随机性,扩大求解空间的范围,并基于反向学习进行位置替换,改善了搜索过程中容易陷入局部最优的缺陷,基于最大迭代次数和适应度阈值完成模型参数的搜索,提高了全局搜索性能,平衡了局部搜索和全局搜索的能力,从而提高模型性能。
2、本发明采取的技术方案如下:本发明提供的基于人工智能的旅游推荐方法,该方法包括以下步骤:
3、步骤s1:数据采集,采集历史用户兴趣地点访问记录;
4、步骤s2:数据预处理,构建用户-兴趣地点图和时间-兴趣地点图,并将用户fu在所有时间内对兴趣地点hd访问的频率和在时间ov内所有用户对兴趣地点hd访问的频率分别作为用户-兴趣地点图和时间-兴趣地点图的边缘权重;
5、步骤s3:构建旅游推荐模型,引入边缘权重改进更新节点特征向量的方法,并基于用户当前所在地进行地理因素评估,计算对兴趣地点的推荐分数;
6、步骤s4:模型参数搜索,基于tent混沌映射初始化个体位置,使用收敛因子和均衡池策略定义两种位置更新方法,并基于反向学习进行位置替换,基于最大迭代次数和适应度阈值完成模型参数的搜索;
7、步骤s5:生成旅游推荐列表,采集用户实时旅游推荐请求,基于旅游推荐模型输出的推荐分数为用户生成旅游推荐列表。
8、进一步地,在步骤s1中,所述数据采集是采集历史用户兴趣地点访问记录,历史用户兴趣地点访问记录包括用户的历史旅游记录和用户搜索过的兴趣地点记录,每条历史用户兴趣地点访问记录都包含用户信息、兴趣地点信息和时间信息。
9、进一步地,在步骤s2中,所述数据预处理具体包括以下步骤:
10、步骤s21:定义用户-兴趣地点图,从采集的数据中获得用户集f={f1,…,fu,…,fz}和兴趣地点集h={h1,…,hd,…,hs},f和h分别是用户和兴趣地点,z和s分别是用户和兴趣地点的数量,u和d分别是用户和兴趣地点的索引,基于用户集f和兴趣地点集h构建用户-兴趣地点图qfh=(f,h,kud),将用户-兴趣地点图qfh中的用户fu和兴趣地点hd作为用户节点和第一兴趣地点节点,当用户fu对兴趣地点hd进行了访问,则在用户节点与第一兴趣地点节点之间添加一条边kud,将用户fu在所有时间内对兴趣地点hd访问的频率作为边kud的权重,kud是用户-兴趣地点图qfh的边集,基于构建好的用户-兴趣地点图qfh得到用户-兴趣地点邻接矩阵yx;
11、步骤s22:定义时间-兴趣地点图,从采集的数据中获得时间集o={o1,…,ov,…,ol}和兴趣地点集h={h1,…,hd,…,hs},o是时间,l是时间的数量,v是时间的索引,基于时间集o和兴趣地点集h构建时间-兴趣地点图poh=(o,h,kvd),将时间-兴趣地点图poh中的时间ov和兴趣地点hd作为时间节点和第二兴趣地点节点,当在时间ov内有用户对兴趣地点hd进行了访问,则在时间节点与第二兴趣地点节点之间添加一条边kvd,将在时间ov内所有用户对兴趣地点hd访问的频率作为边kvd的权重,kvd是时间-兴趣地点图poh的边集,基于构建好的时间-兴趣地点图poh得到时间-兴趣地点邻接矩阵fx。
12、进一步地,在步骤s3中,所述构建旅游推荐模型是构建lightgcn图卷积网络模型,具体包括以下步骤:
13、步骤s31:数据输入,输入用户-兴趣地点邻接矩阵yx和时间-兴趣地点邻接矩阵fx;
14、步骤s32:更新节点特征向量,引入边缘权重改进更新节点特征向量的方法,预先设定最大更新次数,通过多次更新得到用户节点的特征向量、第一兴趣地点节点的特征向量、时间节点的特征向量和第二兴趣地点节点的特征向量,更新节点特征向量所用公式如下:
15、;
16、;
17、;
18、;
19、式中,、、和分别是用户节点、第一兴趣地点节点、时间节点和第二兴趣地点节点更新后的特征向量,、、和分别是用户节点、第一兴趣地点节点、时间节点和第二兴趣地点节点更新前的特征向量,p是更新索引,n()、n()、n()和n()分别是与用户节点相连的第一兴趣地点节点集合、与第一兴趣地点节点相连的用户节点集合、与时间节点相连的第二兴趣地点节点集合和与第二兴趣地点节点相连的时间节点集合,x、y、c和d分别是节点集合n()、n()、n()和n()中的节点索引,ω是两个节点之间的边缘权重;
20、步骤s33:地理因素评估,所用公式如下:
21、;
22、;
23、式中,est(dp,hd)是用户当前所在地dp与兴趣地点hd之间的地理因素系数,geo(·)是通过纬度和经度计算两点之间的地理距离的函数,dis(dp,hd)是用户当前所在地dp与兴趣地点hd之间的地理距离系数,是地理距离阈值;
24、步骤s34:计算推荐分数,所用公式如下:
25、;
26、式中,是在时间ov内向用户fu对兴趣地点hd的推荐分数,t是向量的转置操作;
27、步骤s35:定义损失函数,所用公式如下:
28、;
29、式中,w是损失函数,hd1和hd2是两个不同的兴趣地点,du是用户fu的历史用户兴趣地点访问记录集合,ξ(·)是sigmoid函数,λ是正则化系数,是模型参数,in(·)是指数函数。
30、进一步地,在步骤s4中,所述模型参数搜索具体包括以下步骤:
31、步骤s41:初始化个体位置,用模型参数代表个体的位置,使用tent混沌映射初始化个体位置,基于个体搜索空间随机生成的第1个个体的位置m1,初始化第2-nm个个体位置所用公式如下:
32、;
33、式中,mi是第i个个体的位置,mi-1是第i-1个个体的位置,i是个体索引,nm是个体总数量,τ是控制值,τ∈(0,1);
34、步骤s42:计算适应度值,将基于模型参数建立的旅游推荐模型性能作为个体的适应度值,更新个体的适应度值,将适应度值前三高的三个个体的对应位置分别作为第一位置mbest1、第二位置mbest2和第三位置mbest3;
35、步骤s43:位置更新,为每个个体生成一个(0,1)之间的随机数ai,基于随机数ai进行位置更新,生成新位置m1i,若ai>0.5,则转至步骤s431,个体i选择第一种方法进行位置更新;否则,转至步骤s432,个体i选择第二种方法进行位置更新,步骤如下:
36、步骤s431:第一种方法,所用公式如下:
37、;
38、;
39、式中,是采用第一种方法进行位置更新后的第i个个体的位置,t是迭代次数索引,σ是收敛因子,r1、r2、r3、r4、r5和r6是[0,1]之间的6个互相独立的随机数,l1,i、l2,i和l3,i分别是在第一位置mbest1、第二位置mbest2和第三位置mbest3影响下第i个个体需要调整的位置;
40、步骤s432:第二种方法,为选择第二种方法进行位置更新的个体再次生成一个(0,1)之间的随机数ei,并计算第一位置mbest1、第二位置mbest2和第三位置mbest3的平均位置mavg,基于第一位置mbest1、第二位置mbest2、第三位置mbest3和平均位置mavg构建均衡池,从中随机选择一个位置作为参考位置mra,基于参考位置mra进行位置更新,所用公式如下:
41、;
42、;
43、;
44、式中,是采用第二种方法进行位置更新后的第i个个体的位置,z是权重,r7和r8是[0,1]之间的的2个互相独立的随机数,ε是[0,1]之间的随机向量,tz是最大迭代次数,si是第i个个体的更新速率;
45、步骤s44:基于反向学习进行位置替换,预先设定迭代间隔β,从第β+1次迭代开始进行反向学习,生成个体位置的反向位置m2i,基于新位置m1i和反向位置m2i进行个体位置的替换,步骤如下:
46、步骤s441:计算模糊隶属度,所用公式如下:
47、;
48、式中,γg是模糊隶属度,g是伸缩因子,gmin和gmax分别是伸缩因子的最小值和最大值;
49、步骤s442:计算最佳适应度相对变化率,所用公式如下:
50、;
51、式中,δ是最佳适应度相对变化率,ebest是所有个体中的最高适应度值;
52、步骤s443:定义模糊规则,预先设定变化阈值δ0、第一模糊因子μ1和第二模糊因子μ2,所用公式如下:
53、;
54、式中,ρ是模糊规则;
55、步骤s444:生成反向位置,所用公式如下:
56、;
57、式中,m2i,j是第i个个体在第j维度的反向位置,lbj是个体搜索空间在第j维度的下限,ubj是个体搜索空间在第j维度的上限,nd是个体搜索空间的维度总数,j是维度索引;
58、步骤s445:位置替换,所用公式如下:
59、;
60、式中,mi(t+1)是位置替换后第i个个体的位置;
61、步骤s45:模型参数确定,预先设定适应度值阈值ψ,更新位置替换后的全局最优位置,当全局最优位置对应的适应度值高于适应度值阈值ψ时,则基于当前模型参数构建旅游推荐模型;否则,若达到最大迭代次数tz,则转至步骤s41;否则转至步骤s42。
62、进一步地,在步骤s5中,所述生成旅游推荐列表是采集用户实时旅游推荐请求b=(fu,dp,ov),将数据实时旅游推荐请求b输入至旅游推荐模型中生成对各个兴趣地点的推荐分数,根据推荐分数降序对兴趣地点进行排序,选取前nb个兴趣地点为用户生成旅游推荐列表。
63、本发明提供的基于人工智能的旅游推荐系统,包括数据采集模块、数据预处理模块、构建旅游推荐模型模块、模型参数搜索模块和生成旅游推荐列表模块;
64、所述数据采集模块采集历史用户兴趣地点访问记录,并将数据发送到数据预处理模块;
65、所述数据预处理模块构建用户-兴趣地点图和时间-兴趣地点图,将用户fu在所有时间内对兴趣地点hd访问的频率和在时间ov内所有用户对兴趣地点hd访问的频率分别作为用户-兴趣地点图和时间-兴趣地点图的边缘权重,并将数据发送至构建旅游推荐模型模块;
66、所述构建旅游推荐模型模块引入边缘权重改进更新节点特征向量的方法,并基于用户当前所在地进行地理因素评估,计算对兴趣地点的推荐分数,并将数据发送至模型参数搜索模块;
67、所述模型参数搜索模块基于tent混沌映射初始化个体位置,使用收敛因子和均衡池策略定义两种位置更新方法,并基于反向学习进行位置替换,基于最大迭代次数和适应度阈值完成模型参数的搜索,并将数据发送至生成旅游推荐列表模块;
68、所述生成旅游推荐列表模块采集用户实时推荐请求,基于旅游推荐模型输出的推荐分数为用户生成旅游推荐列表。
69、采用上述方案本发明取得的有益效果如下:
70、(1)针对现有的旅游推荐模型存在严重的数据稀疏性,无法从复杂的上下文中准确捕捉用户的偏好的问题,本方案基于采集的数据构建用户-兴趣地点图和时间-兴趣地点图,并将用户fu在所有时间内对兴趣地点hd访问的频率和在时间ov内所有用户对兴趣地点hd访问的频率分别作为用户-兴趣地点图和时间-兴趣地点图的边缘权重,分别捕捉用户与兴趣地点的相关性和时间因素与兴趣地点的相关性,可以有效地弥补数据的稀疏性,能够更好地理解用户的兴趣和偏好,为系统提供更加动态和时效性的信息。
71、(2)针对现有的旅游推荐模型存在不能有效衡量节点之间的连接强度,无法准确捕捉用户偏好特征,且没有考虑用户选择兴趣地点的概率会随着距离的增加而降低的问题,本方案引入边缘权重改进更新节点特征向量的方法,并基于用户当前所在地进行地理因素评估,计算对兴趣地点的推荐分数,综合考虑时间因素和地理因素的影响,以提高模型的推荐性能。
72、(3)针对传统的模型参数搜索算法存在个体位置初始化不均匀,搜索位置多样性弱,收敛精度低,导致算法在迭代时陷入局部最优的问题,本方案基于tent混沌映射初始化个体位置,丰富了个体初始位置的多样性,使用收敛因子和均衡池策略定义两种位置更新方法,提高了位置更新过程中的随机性,扩大求解空间的范围,并基于反向学习进行位置替换,改善了搜索过程中容易陷入局部最优的缺陷,基于最大迭代次数和适应度阈值完成模型参数的搜索,提高了全局搜索性能,平衡了局部搜索和全局搜索的能力,从而提高模型性能。