IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Booking.com Multi-Destination Trips Competition 方案分析上 -> 正文阅读

[人工智能]Booking.com Multi-Destination Trips Competition 方案分析上


前言

这篇文章用于对booking.com 在2021年举办的Multi-Destination Trips Dataset进行介绍,并且尝试分析多份解决方案。希望能够对多目的地出行问题感兴趣的同学有所帮助。


一、基本信息

比赛官方网站:https://www.bookingchallenge.com/
这道题的背景是:对于一个旅客来说,经常要去不止一个目的地,比如一个从US去阿姆斯特丹的旅客,在阿姆斯特丹逗留5天,然后在布鲁塞尔带2天,巴黎3天,回到阿姆斯特丹待一天,最后返航。booking需要能够在他预定了第一个房间预订后,推荐接下来的行程。
该比赛共有百万条真实的房间预定记录,需要能够为旅客推荐最好的接下来的目的地。

二、数据与评估

1.数据格式

user_id - User ID
check-in - Reservation check-in date
checkout - Reservation check-out date
affiliate_id - An anonymized ID of affiliate channels where the booker came from (e.g. direct, some third party referrals, paid search engine, etc.)
device_class - desktop/mobile
booker_country - Country from which the reservation was made (anonymized)
hotel_country - Country of the hotel (anonymized)
city_id - city_id of the hotel’s city (anonymized)
utrip_id - Unique identification of user’s trip (a group of multi-destinations bookings within the same trip)

其中,每行记录都是一个旅客的出行的一部分,由utrip_id来标示;同时,一个utrip_id中间间隔的几段旅行,并可能是连续的check-in,check-out,也可能是间隔几天的。
evaluation集结构类似,但是每次旅行的最后一个city_id是未知的,需要预测。

样例举例如下:
在这里插入图片描述

2.评估指标

比赛结果需要预测每个旅行(utrip_id)的最后一个旅行城市(city_id).在评估预测结果的时候,预测结果需要给出4个备选城市,只要有这四个备选城市中包含真实实际城市,就认为推荐正确,否则就推荐错误。

3.结果提交格式

utrip_id - 1000031_1
city_id_1 - 8652
city_id_2 - 8652
city_id_3 - 4323
city_id_4 - 4332

三、难点分析

首先,不同于常见的回归/分类的ML问题,从训练数据中可以看出,数据不能够按照user_id进行聚合,因为这样难以表达一个trip当中的先后顺序,以及check-in,check-out的前后。
其次,这个问题也和一般的物品推荐问题存在一定区别,物品推荐中一般不考虑训练数据中物体出现的先后顺序,但是这一题中城市的先后顺序会绝对的影响输出结果,因为训练数据中隐含着两个城市间是否是常见通行城市,以及出行顺序。
这道题的需求是,在有context的条件下(已知前面几个途径城市)的推荐问题。所以,尽管这是一个推荐问题,但是更适合用RNN来进行建模。

四、基本解题思路

这道题最开始的解决方案,建议先观看视频如下,https://www.youtube.com/watch?v=pwfwUA4ZShI。视频中是2018年booking的DS对这一问题的讲解,可以作为最基本的baseline。
视频讲解目录


首先,从RNN处理自然语言的角度,以机器翻译为例,可以计算已知一段话的基础上,输出另一段话的概率。
在这里插入图片描述


所以,从旅程的角度,已知前面的几个途径地,需要判断以A终点的概率是否比以B为终点的概率更大。
在这里插入图片描述

所以,问题描述就变成下面的样子(我是真的很喜欢这个问题描述,非常简洁有没有!!)


在这里插入图片描述



RNN的建模结构如下,其中,值得注意的是,embedding部分没有单独训练,而是合在模型中。
在这里插入图片描述


也正如如下公式琐事,x即为经过了变换的embedding向量
在这里插入图片描述


制定惩罚函数的时候,采用的是crossentropy
在这里插入图片描述


在数据过程中,一个注意事项是,一个user的出行过程可能有一段,可能有两段,可能4段,这就涉及到在处理数据的补齐问题。原作者采用排序的方式,利用的trip的长度(经历城市数目)来排序,然后每个batch都不用补齐到最大长度了。
在这里插入图片描述
在这里插入图片描述


当然,这里的例子比起比赛题目是简化了的。因为仅考虑了trip的前后关系,没有考虑其他背景信息,像是时间/出发国家/订票渠道等等。
以上是最基础的解决方案,在之后的博客中我会继续解读其他方案。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:14:30  更:2021-08-09 10:15:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 22:41:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码