Multi-objective reinforcement learning approach for trip recommendation

Multi-objective reinforcement learning approach for trip recommendation

在这里插入图片描述

A B S T R A C T

行程推荐是一项智能服务,为游客在陌生的城市提供个性化的行程规划。 它旨在构建一系列有序的 POI,在时间和空间限制下最大化用户的旅行体验。 将候选 POI 添加到推荐行程时,根据实时上下文捕获用户的动态偏好至关重要。 同时,个性化出行中POI的多样性和流行度对用户的选择起着重要作用。 为了应对这些挑战,在本文中,我们提出了 **MORL-Trip(旅行推荐多目标强化学习的缩写)**方法。 MORL-Trip 将个性化旅行推荐建模为马尔可夫决策过程 (MDP),并在 Actor-Critic 框架上实现。 MORL-Trip 通过顺序信息、地理信息和顺序信息增强状态表示,以从实时位置了解用户的上下文。 此外,MORL-Trip 通过设计复合奖励函数来增强标准 Critic 组件,以实现三个主要目标:准确性、流行度和多样性。

1. Introduction

随着移动设备和无线网络的普及,基于位置的社交网络(LBSNs)如Flickr, Foursquare和Gowalla在全球范围内广泛应用。在这些LBSNs中,用户可以分享他们的体验和兴趣点(POI)访问信息。用户在LBSNs中主动或被动地留下地理位置信息,生成大规模的时空轨迹数据。通过挖掘这些数据记录,智能旅游服务可以分析用户的潜在需求,并建议未访问过的地点以匹配用户的兴趣。这不仅有助于用户更好地探索吸引人的POIs,还可以帮助公司识别更多潜在用户,从而提高经济效益。

作为一种流行的智能旅游服务,行程推荐在工业界和学术界受到了广泛关注。行程推荐是一个复杂且具有挑战性的任务,需要发现符合用户偏好的吸引人的POIs,并在多个约束条件下将这些POIs连接成有序的序列。近年来,许多方法被提出以解决行程推荐问题。例如,Lim等(2018)利用POI的受欢迎程度和用户偏好为游客生成合适的行程。用户偏好根据POI类别的访问频率计算。然而,这种方法无法为训练集中从未访问过某类POI的用户推荐个性化的行程。为解决这一问题,Chen, Zhang等(2020)将POI类别和POI文本信息融合到行程推荐中,并利用无监督深度神经网络框架生成个性化行程。为了学习行程中POIs之间的语义顺序信息,Gao等(2021)提出了一个结合地理和时间信息的编码-解码框架。为了捕捉行程中POI转换模式的语义,Zhou, Wu等(2020)开发了基于RNN的行程生成方法,使用轨迹-轨迹深度神经网络(Ma等,2022)。尽管现有方法在推荐结果上取得了不错的成绩,但在行程推荐中仍然存在以下挑战:
在这里插入图片描述
首先,行程推荐是一个动态过程,地理信息和用户偏好会随时间变化。为了说明这一点,给出了图1中的一个示例。在参观了“Colosseum”和“Roman Forum”之后,长时间的步行可能会让游客感到疲惫并改变其偏好。与附近的POI“Palatino Hill”相比,该用户更倾向于选择一家餐厅(例如“Pizzeria Da Baffetto”或“Osteria Circo Restaurant”)进行晚餐和休息。同时,受当前地理位置的影响,他/她决定访问离“Roman Forum”更近的“Osteria Circo Restaurant”。因此,在行程推荐中获取实时信息并根据用户当前的上下文信息推荐下一个POI可以帮助提高推荐的准确性。

其次,当前POI的选择对后续POIs的选择有重要影响。大多数个性化行程推荐方法(Gao等,2019)关注即时奖励,即让用户访问推荐的POIs,而忽略了推荐POIs对长期奖励的影响。例如,在参观了POI“Osteria Circo Restaurant”之后,尽管POI“Rose Garden”比POI“Piazza Venezia”更近,用户仍然选择访问POI“Piazza Venezia”,因为在参观了POI“Piazza Venezia”之后,他/她可以参观附近的POIs“Doria Pamphilj Gallery”和“Pantheon”,从而获得更好的旅行体验。因此,从长远来看,考虑未来奖励可以帮助用户享受更好的旅行体验。

第三,虽然大多数行程推荐方法侧重于提高推荐的准确性,但推荐质量的其他重要方面(如行程多样性和行程受欢迎程度)通常被忽视。行程中POIs的多样性和受欢迎程度也会影响游客的旅行体验。由于游客通常希望在同一行程中探索不同类别的POIs,一个包含类别过少的POI的行程会让游客感到无聊。然而,绝大多数行程推荐方法(Fu等,2022;Sarkar等,2020;Zhou等,2021)关注POI相关性,并在多样性和新颖性方面付出了显著代价。它们通常根据用户访问频率推荐POI类别,这将使行程中的POI类别非常单一,降低游客的旅行体验质量。

为了解决上述挑战,本文提出了一种多目标强化学习方法用于行程推荐(称为MORL-Trip)。具体来说,我们将个性化行程推荐建模为马尔可夫决策过程(MDP),并利用基于强化学习的方法自动训练和更新最优推荐策略。首先,我们设计了序列级、地理级和顺序级表示来学习更准确的用户实时上下文。然后,我们提出创建一个包含准确性、受欢迎程度和多样性奖励的奖励函数,以做出更准确、受欢迎和多样的推荐。最后,我们利用深度确定性策略梯度(DDPG)算法训练所提出的模型。总之,本文的贡献如下:

  1. 我们将行程推荐任务建模为MDP,用户偏好基于实时上下文是复杂且动态的,并实现了一个RL框架来形成整个过程。
  2. 我们通过设计新的状态表示和奖励函数扩展了MDP框架用于个性化行程推荐。通过这些扩展,MORL-Trip可以做出更准确、受欢迎和多样的行程推荐。
  3. 在公共数据集上进行了综合实验评估,结果表明MORL-Trip在行程推荐中能够持续优于基线方法。

2. Related work

2.1. Trip recommender systems

在这里插入图片描述

行程推荐系统尝试设计由一些有序 POI 组成的行程,在预定义的约束下最大限度地提高用户满意度。 个性化行程推荐是一项复杂的任务,因为它需要考虑很多因素,如用户偏好(UP)、顺序信息(SI)、地理信息(GI)、订单信息(OI)、行程准确度(TA)、行程流行度(TA)等。 TP)、行程多样性(TD)和行程长度(TL)。 表1概述了个性化旅行推荐的相关工作,并展示了我们的论文与现有研究之间的差异。 在这些因素中,用户偏好对于设计个性化出行起着决定性作用。 早期的工作(Yahi et al., 2015)要求用户明确说明他们对旅行推荐的偏好。 然而,这个过程非常耗时且不方便。 为了解决这个问题,一些研究引入POI类别信息来计算用户偏好。 这些研究的想法是,用户对 POI 类别的偏好与用户访问此类 POI 的频率或在此类 POI 上花费的时间有关。 例如,Lim 等人。 (2018)提出了基于类别的用户偏好的旅行推荐概念,其中访问持续时间也通过基于类别的用户偏好来预测,以更准确地反映现实生活。 布里兰特等人。 (2015) 引入 TripBuilder 算法来规划包含 POI 的个性化旅行,根据 POI 类别最大化用户偏好。 然而,如果用户没有访问过训练集中某个类别的任何POI,则上述方法无法为该用户推荐个性化旅行。

2.2. Deep reinforcement learning for recommendations

3. Background and motivation

3.1. Preliminaries

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2. Motivation

目前研究方法的不足
在这里插入图片描述

强化学习在推荐系统中展示了其神奇之处,自然适合动态跟踪用户偏好变化。因此,我们通过强化学习框架来形式化行程推荐任务。同时,与仅专注于提高推荐准确性的现有行程推荐方法不同,我们提出的方法还考虑了行程多样性和行程热度。在这个多目标问题中,下一个访问的 POI 被视为一个变量,并且奖励值将根据 POI 的准确性、行程热度和行程多样性来计算。我们将推荐行程的长度限制在实际行程的长度内。

4. The MORL-Trip approach

在这里插入图片描述
大多数现有的行程推荐方法尝试以具有多重约束的旅行序列形式推荐一组POI。然而,它们忽略了用户当前状态对选择下一个POI的影响,无法跟踪用户偏好的动态变化。为了建模用户偏好变化并考虑个性化行程的准确性、热度和多样性,我们提出了一种多目标强化学习方法。

如图2所示,MORL-Trip方法由演员(Actor)和评论者(Critic)组件组成。演员组件旨在根据用户的实时状态适当地生成下一个POI。评论者组件用于评估演员推荐策略的偏好。

4.1. The architecture of actor framework

Actor组件用于根据用户当前状态获取最合适的POI。构建Actor组件的关键在于获取用户的状态。在本文中,我们考虑了用户的历史旅行记录、地理信息和POI-POI转移模式,以设计一个全面的状态表示。这种用户状态表示是通过结合序列级、地理级和顺序级状态表示来计算的。

4.1.1. Sequence-level state representations

Transformer 已广泛应用于顺序或时间序列数据,其中每个元素通过自注意力机制由其他元素及其自身表示(Fu et al., 2020)。 我们使用 Transformer Encoder 来学习用户之前 POI 访问序列的顺序特征。 具体来说,给定一个 POI 访问序列 𝑃1∶𝑡 = {𝑝1, 𝑝2,…, 𝑝𝑡}, 𝐏𝑡 = {𝐩1, 𝐩2,…, 𝐩𝑡} 是序列表示,𝐩𝑖 是维度 𝑑 的 POI 嵌入向量,由 Word2vec 计算 模型(Mikolov et al., 2013; Ye et al., 2021),最初是为词嵌入而设计的。 为了利用 POI 顺序信息,我们通过串联运算符将位置嵌入(Vaswani 等人,2017)进一步融合到 POI 嵌入中。

4.1.2. Geography-level state representations

用户当前位置与其他 POI 之间的地理关系对于选择下一个 POI 起着重要作用。 用户倾向于前往距离当前位置不远的 POI 进行观光游览。 因此,我们设计地理级状态表示来捕获当前位置的地理信息。 地理级状态表示的设计基于这样的直觉:POI距离当前位置越远,被访问的概率越低。

在这里插入图片描述在这里插入图片描述

4.1.3. Order-level state representations

除了地理因素外,POI-POI的公交模式也会影响用户对下一个POI的选择。 流行且有吸引力的参观模式可能涉及商业活动、商业展位、表演和展览,这可以改善用户体验。 因此,从一个访问过的 POI 到其他 POI 的转移概率是一种非均匀分布。 订单级状态表示的设计是根据直觉,即POI与当前位置之间的转移概率越大,该POI被访问的概率就越大。

在这里插入图片描述

4.1.4. Recommendation policy learning

在这里插入图片描述

4.2. The architecture of critic framework

在这里插入图片描述

4.3. Reward decomposition

在这里插入图片描述

4.3.1. Accuracy-level reward

在这里插入图片描述

4.3.2. Popularity-level reward

在这里插入图片描述

4.3.3. Diversity-level reward

在这里插入图片描述

4.4. Training algorithm

MORL-Trip 旨在联合优化与用户满意度密切相关的三个相互冲突的目标。 我们设计了一个复合奖励函数,能够计算这三个目标,即 POI 相关性、旅行受欢迎程度和旅行多样性。 我们还建议使用顺序信息、地理信息和顺序信息来增强状态表示,以从实时位置了解用户的上下文。 考虑到高维和连续动作空间的问题,我们采用深度确定性策略梯度(DDPG)来训练演员-评论家网络。 DDPG在DPG的基础上结合了DQN的概念。 具体来说,Critic 是通过最小化以下损失函数来训练的
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Shell】sed编辑器实例

sed是用来解析和转换文本的工具,它使用简单,是简洁的程序设计语言。 sed编辑器 (一) sed编辑器基础1. 简介2. sed的模式空间 (二)基本的sed编辑命令(三)sed命令实例1. 向文件中添加或…

MFC GDI 绘图模式、映射模式、画笔、笔、字体

一 GDI 绘图模式(RoP2 Mode) 在使用VC MFC进行图形程序编程时,常会用到GDI绘图指令,而要做到绘图时有橡皮筋动态效果,就需设置GDI绘图模式。GDI绘图模式有多种,如下: 常用R2_NOT模式来实…

Linux|操作系统|如何下载各个版本的centos操作系统

前言: centos做为一个现在比较常用的Linux社区版本,还是比较受欢迎的,那么,如何下载centos的安装包,也就是centos的操作系统呢? 首先,我们应该知道硬件底层有aarch64,ppc64&#x…

【限免】短时傅里叶变换时频分析【附MATLAB代码】

来源:微信公众号:EW Frontier 简介 一种能够同时对信号时域和频域分析的方法——短时傅里叶变换(STFT),可以在时频二维角度准确地描述信号 的时间、频域的局部特性,与其他算法不同,通过该算法可…

【Elasticsearch】Centos7安装Elasticsearch、kibana、IK分词

目录 本文安装包下载地址注意安装elasticsearch1.上传文件2.解压elasticsearch-6.3.1.tar.gz3.开启远程连接权限4.修改其他配置[root用户操作]5.重启虚拟机6.启动es7.外部访问 安装kibana-61.解压2.配置3.启动kibana4.访问5.在开发工具中做数据的增删改查操作 安装IK分词1.wind…

软件安全复习

文章目录 第一章 软件安全概述1.1 信息定义1.2 信息的属性1.3 信息安全1.4 软件安全1.5 软件安全威胁及其来源1.5.1 软件缺陷与漏洞1.5.1.1 软件缺陷1.5.1.2 漏洞1.5.1.3 软件漏洞1.5.1.4 软件缺陷和漏洞的威胁 1.5.2 恶意软件1.5.2.1 恶意软件的定义1.5.2.2 恶意软件的威胁 1.…

携手AI,如何共赢未来?

5/25日参加了一个培训分享会,由博奥研究院、武汉博奕咨询和华工科技联合举办,主题是“携手Ai,共赢未来”。 抱着跟书友线下交流的心态我参与了,参与前我对博奥做了基础了解,他们跟工信部考试和教育中心有合作&#x…

【C语言】指针作为参数(传值调用vs传址调用)

前言 在前面讲了那些指针相关的内容后,是时候探讨一下指针有什么作用了。 在C语言中,指针有多种各不相同的应用,在本篇文章中,我们探讨一下指针作为函数参数的作用(对比传值与传址两种不同函数调用方式)。…

【QGIS入门实战精品教程】10.7: 基于DEM的地形因子分析(坡度、坡向、粗糙度、山体阴影、耐用指数)

文章目录 一、加载dem二、山体阴影三、坡度四、坡向五、地形耐用指数六、地形位置指数七、地表粗糙度一、加载dem 二、山体阴影 方法一:符号系统 利用符号系统中的山体阴影,渲染出阴影效果。 方法二:山体阴影工具 该算法计算输入中的数字化地形模型的山体阴影。根据太阳的位…

2024 年 5 个 GO REST API 框架

什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码;这些是为移动开…

kali下载zsteg和stegpy

1.kali下载zsteg 从 GitHub 上克隆zsteg到kali git clone https://github.com/zed-0xff/zsteg 切换目录 cd zsteg 用于安装名为 zsteg 的 Ruby Gem 包 gem install zsteg 2.kali下载stegpy 下载网站内的stegpy-master压缩包GitCode - 开发者的代码家园 并拉到kali中 切换到s…

python数据分析——数据可视化(图形绘制)

数据可视化(图形绘制基础) 前言一、图形绘制基础Matplotlib简介使用过程sin函数示例 二、常用图形绘制折线图的绘制plot示例 散点图的绘制scatter()示例 柱状图的绘制bar示例 箱型图绘制plot.box示例 饼状图的绘制pie示例 三、图形绘制的组合情况多个折线…

Sql Sever删除数据库时提示数据库正在被使用,解决办法

报错解释: 当您尝试删除SQL Server中的某个对象(如数据库、表等)时,如果有程序或进程正在使用该对象,您可能会收到一个错误信息,提示该对象正被使用。这通常是因为还有一个或多个数据库连接仍然保持着对该…

易备数据备份软件: 快速备份 MySQL\SQL Server\Oracle\泛微 OA 数据库

易备数据备份软件支持对 SQL Server、Oracle、MySQL、PostgreSQL、MariaDB、泛微 OA 等数据库进行快速备份,备份过程不会对任何服务造成中断。 使用一份授权,可以备份无限量的数据库,不管数据库服务器是否在本机、本地网络、或是远程网络。可…

Vitis HLS 学习笔记--控制驱动TLP-处理deadlock

目录 1. 简介 2. 代码解析 2.1 HLS kernel代码 2.2 查看接口报告 2.3 TestBench 2.4 Dataflow 报告 3. Takeaways 4. 总结 1. 简介 本文是对《Hardware Acceleration Tutorials: FIFO Sizing for Performance and Avoiding Deadlocks》实验内容的详细解释。 首先需要…

自动驾驶场景中的长尾问题怎么解决?

自动驾驶长尾问题是指自动驾驶汽车中的边缘情况,即发生概率较低的可能场景。感知的长尾问题是当前限制单车智能自动驾驶车辆运行设计域的主要原因之一。自动驾驶的底层架构和大部分技术问题已经被解决,剩下的5%的长尾问题,逐渐成了制约自动驾…

huggingface 笔记:查看GPU占用情况

0 准备部分 0.1 创建虚拟数据 import numpy as npfrom datasets import Datasetseq_len, dataset_size 512, 512 dummy_data {"input_ids": np.random.randint(100, 30000, (dataset_size, seq_len)),"labels": np.random.randint(0, 1, (dataset_size…

【代码随想录训练营】【Day 29】【回溯-3】| Leetcode 39, 41, 131

【代码随想录训练营】【Day 29】【回溯-3】| Leetcode 39, 41, 131 需强化知识点 startInex作用:一是处理是否可以有重复值,二是实现纵向遍历(不能没有)去重要在数组有序的前提下进行分割问题 题目 39.…

工业控制2D组态界面,丑是丑了点,但非常实用。

工业控制的2D组态界面是用于监控和控制工业过程的界面。它通常具有以下特征: 实时数据显示:2D组态界面能够实时显示传感器和设备的数据,如温度、压力、流量等。这些数据以图表、仪表盘、数字显示等形式呈现,使操作人员能够实时了解…

Android:使用Kotlin搭建MVVM架构模式

一、简介Android MVVM架构模式 MVVM全称:Model、View、ViewModel; Model:负责数据的请求、解析、过滤等数据层操作,其中Repository: 提供数据的 API(从本地或者网络)。View:负责视图部分展示Vie…