推荐系统是一种主动提供个性化信息的服务,其依据用户与项目的交互历史,去推荐用户的喜好,进而呈现用户感兴趣的项目,满足用户信息过滤的需求,提升用户获取信息的效率。
微地图(WeMap)是面向平民大众的"草根"地图,对精度等数学基础要求不高,制作者无需进行严格的专业培训,地图用户能够参与地图制作,地图可以如微信一样方便、快捷地交互传播和应用。
为了满足微地图"千人千面"的推荐效果,有必要根据用户的历史信息,预测用户对微地图的喜好程度。在推荐系统中通常使用协同过滤算法处理历史点击率、历史评分等非结构化的数据。
融合知识图谱与协同过滤算法的目标是学习用户分别与旅游、校园、美食、自驾4类专题候选微地图的交互概率,并分别用协同过滤低层的相似度信息预测用户对4类专题未交互微地图的点击概率,以及利用知识图谱的高层语义信息表示用户对微地图的兴趣偏好程度。
图1 KGCF算法流程
假设用户集合为{u₁,u₂,...,uₘ},微地图集合为{l₁,l₂,...,lₙ},m和n分别表示用户数量和微地图数量。向量uₘ和lₙ分别作为用户uₘ和候选微地图lₙ的潜在表示。
本文使用多层感知机构建推荐算法,将知识图谱融入协同过滤中,提出了融合知识图谱和协同过滤的模型(Knowledge Graph Embedding Collaborative Filtering, KGCF)。KGCF模型由4部分组成:
包括旅游、校园、美食及自驾4类专题微地图的历史数据、用户与各类微地图历史交互数据。
将用户点击历史微地图数据映射为知识图谱中的头实体,构成兴趣迁移的三元组。
学习用户与微地图之间的语义及协同过滤的非线性高阶特征。
输出被推荐微地图集合:旅游微地图、校园微地图、美食微地图及自驾微地图。
融合知识图谱的协同过滤推荐系统主要由4个部分构成,包括输入层获取与处理数据、嵌入层构建微地图图谱、多层感知机融合协同过滤与知识图谱以及最终输出层的推荐结果。
本实验的硬件环境为Intel Core i9-9900k + GTX3090,软件环境为Windows10+ CUDA11.1+ cuDNN8.5.0+ PyTorch1.7+ Python3.8。
字段id | 注释 | 含义 |
---|---|---|
Genes | 地图类型 | TourMap、SchoolMap、FoodMap、DrivingMap |
Original_title | 地图名 | 仙居、云门山、张家界、五台山、惠山古镇 |
Event | 事件 | 对应的每个事件 |
图2 用户对微地图评分概率值与微地图数量关系
首先分别从WeMap数据集和WeMapRating中获取地图信息以及用户的历史交互数据记录,然后以地图的标题作为知识图谱的主体,并使用从上述2种地图数据集中获取到与微地图相关的信息来构建事实三元组,完成地图知识图谱的初步构建。
图3 4类专题微地图-评分力引导知识图谱
为解决微地图推荐过程中数据稀疏性问题,本算法融合知识图谱与协同过滤算法建模,细粒度挖掘用户与微地图之间的交互信息。在用户使用微地图推荐系统的过程中:
本算法不仅考虑到用户使用微地图的偏好习惯,也考虑到微地图地名之间的内部联系,所给出的个性化推荐结果合理且符合个人生活偏好。
本文构建的融合知识图谱与协同过滤的微地图推荐算法与现有的百度地图、高德地图相比,本文的方法考虑了推荐路线的风土人情、地质地貌、气候变化、宗教、乡间小路及河流等因素,更适用于个性化旅游、快速抢险救灾、外卖快递等小众化的服务。
* 以上内容由AI自动生成,内容仅供参考。对于因使用本网站以上内容产生的相关后果,本网站不承担任何商业和法律责任。