导读:旅行类商品 ( 如机票、火车票、汽车票 ) 相对实物电商更加标品,用户决策因素更加单一,而行业内大多基于简单规则排序,如时间、价格或业务逻辑加权,难以满足用户的个性化出行需求。飞猪在过去一段时间中,不断探索交通搜索个性化排序技术,本次阿里飞猪的素数老师将围绕智能交通导购,对交通个性化搜索排序技术的实践与创新做详细分享。主要内容包括:

  • 背景:交通业务介绍

  • 挑战:交通出行业务特殊性

  • 解法:从业务规则到个性化排序模型

  • 效果:模型优化迭代结果

  • 总结:进一步优化方向

01

背景:交通业务介绍

1. 交通行业自身痛点

从交通行业自身来看,目前交通排序策略相对单一,大多基于简单规则排序,这种单一规则排序无法高效匹配用户需求,也难以满足用户多元化以及个性化的出行需要,这是一个比较大的一个行业痛点。

2. 相比实物电商的不足

与实体实物电商相比,交通的商品决策信息非常有限,商品高度标准化,比如出行的时间,价格等因素,关键决策信息在我们的搜索列表页已经给到用户一个明确的展示。不同于传统的电商类,即实物电商类商品有些决策信息是比较多的,交通商品信息决策只能展示部分决策因素,所以需要进到详情页之后才能看到真实的关键决策因素,在交通场景下,这种决策因素和实物电商会产生一个明显的差异。

3. 相关理论研究

在2018年之前有一些行业内的理论研究,主要集中在学术界,而相关的工业界应用比较少,大多是基于传统线性模型和机器学习模型来做交通类的搜索排序工作。2018年Amadeus发表论文《Deep Choice Model Using Pointer Networks for Airline Itinerary Prediction》,用深度序列模型做机票搜索排序,在离线数据集上取得了比较大的效果。

02

挑战:交通出行业务特殊性

挑战1:基于场-货-人的用户性质差异

首先用户行为极其稀疏,用户出行频次是比较低的,比如每年三、五次;其次用户出行比较注重服务体验;以及决策因素过于单一和决策过程比较复杂,决策周期很长。从货的角度,货品是实时动态的,库存价格是实时动态变化的,运力资源也是一个实时动态的约束,另外货品是高度的标准化,可以发现不同场景用户的需求差异是很大的,比如支付宝APP或者淘宝,他们在三端上的用户性质差别很大,即使在同一个端的不同入口,不同的流量场景下,用户的性质差异也很大,如何符合这种差异的性质,做个性化排序,挑战还是很大的。

挑战2:与实物电商比较:信息孤岛

进一步,在交通场景下和实物电商场景下做搜索排序,在技术上作比较来看,首先在召回上可以看到明显的差异,传统的实物电商能很容易构建U-Q-I这种网络结构,因为同一个Q下面可以召回N个商品,工作商品之间通过query之间相连接,从而生成一个网络结构,但是在交通场景下,就这种网络结构就被割裂开来,就形成一个个的信息孤岛。比如杭州到新加坡这种搜索,一个出发地和一个目的地,目的地下面能够召回的CA767,但是没法召回VS251,只能通过上海到伦敦这样的一个线路来招回。这样的话两个商品之间就很难通过query和用户做关联。这样对商品表征和用户表征带来很大的困难。

03

解法:从业务规则到个性化排序模型

1. Ranking系统架构

面对以上的困难如何解决的?这是一个整体的线上系统架构图,底层是日志采集及数据预处理,进一步在阿里云ODPS平台上做数据样本的加工,然后在Tensorflow上做模型,线上部署到TPP环境中,对外提供排序服务。

2. Deep Listwise Model

为什么要使用DLM模型呢,DLM模型具有以下几个优点:

  • 交通排序结果多样性

  • 模拟用户决策过程

  • 工程打分延时低

Amadeus在论文中提到他们的方法获得了很好的优化效果,包括top N准确率有大幅提升。其核心思想是基于Pointer Net网络结构,对航班序列listwise打分。Pointer Net是在2015年NIPS上发表的一篇文章,2018年他们就把文章的核心思想引入到机票排序排序中。

3. DCM:Deep Choice Model

在Encoder阶段,使用的是RNN网络,比如说我们实验了LSTM、biLSTM以及transformer三个子网络,离线实验效果表现都比较接近,没有明显的差异性。第三个阶段是Decoder阶段,它类似于决策者的角色,包含了上述序列的所有输入,Decoder输出信息可以看作是一个用户浏览完所有航班,然后对航班进行选择决策的过程。Attention阶段,本质上是计算Decoder和Encoder向量之间的相似度,等同于用户选择更合适的一个航班,α是Attention的权重,即航班序列打分结果。Online实验来看,总体转化率有一定提升,但提升幅度不是特别大。

4. PFRN:Personalized Flight Ranking Network

DCM第一版模型的效果对我们有很大启发,基于这一版模型的探索,我们进一步优化提出了PFRN模型,这篇论文已公开发表在CIKM’20。模型本身是经典的双塔结构,左边是航班序列的表征,右边是用户行为序列表征,上层对两个序列做Attention,表示用户对航班序列的偏好或者是感兴趣程度。我们提出了LFE序列编码结构,编码结构是一个比较大的创新点。

① PFRN:Listwise Feature Encoding ( LFE )

② PFRN:如何缓解用户行为的稀疏性

模型要解决第二个问题是如何缓解用户行为的稀疏性,我们目前的工作相对来说还比较简单:基于用户人群划分(基于业务规则),人群被划分为六大类,每一个用户又会映射到其中一类,在做用户行为表征的时候,除了用户个体的行为,还会把群体的行为引进来。例如,如果用户是旅行/出差意图用户,用户群体购买行为可以融合到现有的当前用户的行为中去,这种融合通过实验发现对整体的排序效果带来很大提升。

04

效果:模型优化迭代结果

第一类模型:基于规则的Cheapest,按低价排序;第二类模型:传统机器学习模型;第三类模型:近几年一些搜索排序相关论文工作比较。Online实验效果,整体转化率提升接近4%。

05

总结:进一步优化方向

当前的工作来看,初步建立了交通搜索排序算法体系,取得了一定的业务效果。在用户表征上面,除了用户的长短期行为以外,也引入了用户群体行为做数据增强,缓解个体行为稀疏性。

未来可能有三个方面工作:

  • 出行意图的深入理解,比如对群体用户行为的划分,用户分群这一块工作要进一步完善;

  • 用户行为稀疏性建模,这块工作对整体排序效果提升有很大的影响;

  • 整体排序策略上,自然召回商品量有限,通过增加更多推荐坑位,同时内容运营把丰富的交通相关内容引进来,新的产品样式形态,多源信息的混排对我们也是比较大的挑战。


分享嘉宾:

素数

阿里飞猪 | 导购算法团队

2016年加入飞猪技术部,深度参与飞猪全局搜索项目用户意图预测、query推荐、个性化排序等工作,目前专注于智能交通的导购算法体系建设。

阿里飞猪个性化搜索排序探索实践相关推荐

  1. 推荐系统[八]算法实践总结V0:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  2. 深度学习核心技术精讲100篇(四十一)-阿里飞猪个性化推荐:召回篇

    前言 召回几乎是所有推荐系统的基础模块,对应到电商的推荐中,它的作用是从海量的商品池中,筛选出一部分用户可能感兴趣的商品作为上层排序系统的候选集.因此,可以说召回效果的好坏直接决定了推荐效果的上界. ...

  3. 阿里飞猪搜索技术的应用与创新

    分享嘉宾:林睿 阿里飞猪 编辑整理:杜正海.Hoh 出品平台:DataFunTalk 导读:旅行场景的搜索起初是为了满足用户某种特定的强需求而出现的,如机票.火车票.酒店等搜索.这些需求有着各自不同的 ...

  4. 阿里飞猪搜索技术的应用与创新(v2021-02-03)

    分享嘉宾:林睿 阿里飞猪 编辑整理:杜正海.Hoh 出品平台:DataFunTalk 导读:旅行场景的搜索起初是为了满足用户某种特定的强需求而出现的,如机票.火车票.酒店等搜索.这些需求有着各自不同的 ...

  5. 飞猪信息流内容推荐探索

    旅行场景下的推荐算法探索 基于商品关系的飞猪搜索优化实践 飞猪交通个性化搜索推荐技术的实践与创新 今天给大家分享阿里巴巴集团飞猪团队袁腾飞先生所做的分享<飞猪信息流内容推荐探索.pdf>, ...

  6. 测试内推 | 阿里飞猪、百度、58(招聘)、知乎、欢忻网络、百果园、阿里(Lazada)、深智城、元戎启行招人啦

    学社近期有多位同学拿到阿里巴巴.字节跳动.百度.58同城.微博.京东等大厂 Offer 并拿到学社奖学金.关注公众号,回复「面试 」获取互联网大厂测试开发面试真题 .点击**「阅读原文****」,获取 ...

  7. 阿里飞猪一员工涉案66亿,非法获利千万;美图将加密货币作为价值储备;Linus警告不要用Linux5.12-rc1 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  8. 阿里健康四面,阿里飞猪技术两面经历分享,已进阿里飞猪

    阿里巴巴阿里健康一面 面试体验 又发现了很多技术盲点,整体感觉良好 面试问题 Fabric在哪里做的共识,如何解决双花问题和节点伪造问题的,比如说A给B转账5元,给C同志1元劳务费,但是该节点作弊了怎 ...

  9. 我的后端Java面经、八面阿里,已拿offer!(阿里飞猪、阿里健康、阿里菜鸟)心得感悟!

    阿里巴巴面试 自我介绍 讲一个项目,我说的区块链,然后围绕着区块链说了一堆,比如说我没回答上来的,有没有做性能测试,还有orderer节点都有什么服务 最大堆概念 排序算法比较排序时间复杂度,如何查找 ...

最新文章

  1. Windows XP下,JDK环境变量配置
  2. Leetcode 之Binary Tree Postorder Traversal(44)
  3. 2020人工神经网络第一次作业-参考答案第十部分
  4. 以MATLAB的方式实现微积分问题的计算机求解问题及解决方案集锦(一)
  5. VUE—从入门到飞起(四)
  6. iframe 的一点经历
  7. 网络基础:Ping命令的7种基础用法,掌握了秒变大神!
  8. ddr4服务器内存频率_金士顿DDR4-3200服务器内存通过完整测试
  9. EasyUI的datagrid每行数据添加操作按钮的方法
  10. 卡巴斯基6.0的授权文件
  11. 2021-07-01事件绑定
  12. ES插件elasticsearch-mapper-attachments 2.3.4及各个版本正确下载地址
  13. matlab车牌识别源代码资源,车牌识别系统MATLAB源代码完整
  14. 尚硅谷大数据听课笔记 day2:数据类型
  15. vue、四级联动(省市区街道)
  16. Chrome 手动清理缓存
  17. usb接口驱动_教你如何下载安装打印机驱动并设置共享打印机
  18. (数据结构)线性表(总结)——链式存储结构与顺序储存结构的优缺点
  19. 如何使用OpenCV-Python-dlib实现有关闭眼的检测、眨眼次数的计算?(附源码,绝对可用)
  20. 细胞器标记物丨FUS抗体高品质结果展示

热门文章

  1. php如何操作文本框,php如何清除文本框
  2. php去掉关联数组,php如何删除关联数组
  3. 基于Redis实现一个分布式锁
  4. Just another Robbery LightOJ - 1079[背包形状的概率dp]
  5. mysql desc指令_MySQL Desc指令相关
  6. python画层次结构图_Maptree-层级结构数据展示的绝佳尝试
  7. python3里的pillow怎么安装_“python安装pillow教程“python3.4怎么安装pil
  8. c语言实现天气预报步骤,一份天气预报的制作历程
  9. OSError: image file is truncated (28 bytes not processed)
  10. 创建虚拟环境 安装pytorch 0.3.1