机器学习在马蜂窝酒店聚合中的运用初探
作者头像
  • tou55880
  • 2020-02-15 10:51:09 5

出门旅行时,预订酒店是一个必不可少的环节。住得干净、舒适对于每位旅客来说都至关重要。

在线预订酒店让这一过程变得更加便捷。当用户在马蜂窝浏览一家选定的酒店时,不同供应商提供的预订信息会被整合成一个综合列表,准确地展示给用户。这种方式不仅避免了重复展示不同的信息,影响用户体验,还帮助用户快速进行全网酒店的实时比价,迅速找到性价比最高的选项,从而做出明智的消费决策。

酒店聚合功能的质量直接影响到用户预订时的价格选择范围,进而影响他们的个性化和多样化预订体验。为了实现更实时、准确和高效的酒店聚合,目前马蜂窝在酒店业务中,接近80%的聚合任务是由机器自动完成的。本文将详细介绍酒店聚合的概念,以及当下流行的机器学习技术如何应用于其中。

酒店聚合的应用场景与挑战

1. 酒店聚合的应用场景

马蜂窝旅游平台连接了大量的供应商,这些供应商提供的酒店信息可能存在差异。酒店聚合的目标是将来自不同供应商的酒店信息整合在一起,为用户提供一站式实时比价和预订服务。

2. 挑战

(1)准确性

不同供应商对同一酒店的描述可能不一致,如果聚合过程中出现错误,会导致用户预订的酒店并非他们想要的。例如,用户可能想预订“精途酒店”,但实际被预订到了供应商E提供的“精品酒店”。这类错误被称为“AB店”,会给用户带来不便。

(2)实时性

要解决上述问题,最直接的方法是依靠人工聚合。然而,随着接入的酒店数据量快速增长,人工方式变得不可行。人工聚合不仅耗时,而且无法及时反映价格变动,也无法覆盖所有酒店资源。因此,酒店聚合需要更高效的技术解决方案。

初始方案:余弦相似度算法

最初,我们尝试利用余弦相似度算法进行酒店聚合,旨在降低成本,提高效率。该算法通过比对酒店名称、地址和距离来判断是否相同。尽管该方案简单易操作,但其准确性不足,需要设置较高的相似度阈值,导致许多相似的酒店无法自动聚合,仍需人工处理。

机器学习在酒店聚合中的应用

随着机器学习技术的发展,我们开始探索如何将其应用于酒店聚合。通过机器学习,我们解决了实时性和准确性的问题。以下是机器学习在酒店聚合中的具体应用。

3.1 分词处理

分词技术可以细化酒店名称和地址的对比粒度。通过对酒店名称和地址进行分词,可以更好地识别相似的酒店,同时为后续特征构建做准备。

3.1.1 分词词典

我们采用机器和人工相结合的方式构建分词词典,提高了分词的准确性和效率。

3.1.2 名称分词

名称分词可以帮助我们更准确地识别酒店名称中的品牌和类型,从而区分相似的酒店。

3.1.3 地址分词

地址分词细化了地址的对比粒度,使其更加详细和准确。

3.2 特征构建

特征构建是模拟人脑思维的过程,通过将分词后的数据进行两两对比,将其转换为数字特征,为机器学习提供数据支持。

3.3 算法选择:决策树

为了判断酒店是否相同,我们选择了决策树算法。决策树通过不断划分数据,最终达到分类的目的。

3.3.1 Ada Boosting 或 Gradient Boosting

我们选择了Boosting算法,特别是Gradient Boosting,因为它在工业界应用广泛。此外,我们还对比了XGBoost和LightGBM,最终选择了LightGBM,因为它具有更低的内存占用和更快的训练速度。

3.4 模型训练迭代

由于使用LightGBM,训练时间大幅缩短,使得我们能够快速迭代模型。在训练过程中,我们关注两个方面:训练结果分析和超参数调整。

通过以上改进,马蜂窝的酒店聚合系统不仅实现了更高的准确性和实时性,也提升了用户体验。

    本文来源:图灵汇
责任编辑: : tou55880
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
马蜂窝初探聚合运用机器酒店学习
    下一篇