天猫导航的内部机制揭秘
作者:务达 (一淘及搜索事业部-搜索技术-算法技术-主搜索与商城)
网购已经成为我们的习惯,当我们想买一样商品的时候,往往会先去网购的网站上输入Query进行搜索,搜索返回的页面一般会分成两部分,上面的是导航区,下面的SRP(Search Result Page)搜索结果页。分两种情形:
1. 如果用户知道自己想要买的商品的详细信息,他可以输入针对性较强的Query,直接从SRP页面找到自己想要的结果;
2. 如果用户并不清楚自己想要买怎么样的商品,他就只能输入较简单的Query, 此时返回的SRP页里很可能没有他想要买的,于是他就可能点击导航区推荐的一些类目和属性进行下一步的选择,从而找到自己想要的商品。我们的导航往往在第二种情况下起到作用。
在我接手天猫导航的工作之前,一直以为导航区的类目和属性都是存储在某一个数据库的表里,是固定不变的, 根据Query里的关键字确定展现哪些类目和属性,如果Query包含的关键字一样,则展现的类目和属性也一样。其实天猫的导航展现是以智能的方式展现的,每个Query展现的导航都是与其类目和属性相关的,并且按照一定的算法进行排序。本篇文章以此为出发点,重点分析整个天猫导航的内部架构和排序算法,适合想对天猫导航的原理进行了解的新手读者。
天猫导航从功能上分成类目导航和属性导航两类,从展现的方式上分可以分成qp推荐和引擎推荐两类。在排序的时候qp推荐的会排在引擎推荐的之前,引擎推荐的以补充为主,如果没有qp推荐的或者qp推荐的很少,才会在前端展示出来,否则则放在“更多”中。引擎补足的就是简单的按照线上商品数进行排序,具体点就是通过b2c merger加载宝贝,在search服务中建索引,再在 detail服务中存放详细的宝贝信息,ranker中对Query的宝贝数进行排序。而我们算法能产生作用的仅仅是qp推荐的部分。
算法会离线产出一张[(Query , 搜索类目), 排好序的推荐id列表]的hash词表,由QP的导航模块加载后在线上提供服务,每一个Query在前端输入后,由前端调用QP服务来获得该Query和搜索类目下面的类目id或属性id推荐列表, 再调用forest来获取每个id对应的类目名称或属性名称,从而再前端展现出来。具体的工作原理图1所示:
QP类目导航的展现方式又分为:
1.平铺
2.直达
3.父子类目展示
4.属性推第一个类目的平铺展示
具体跟推荐的类目列表中的类目权重相关。具体的类目推荐的流程如图2所示。
QP的属性推荐也是类似的,具体的底层数据处理和产出逻辑跟类目推荐类似,也是按照(Query,搜索类目)的点击,成交和商品数进行线性加权来排序。属性推荐分成了:
1.根类目下属性
2.公共类目下属性
3.叶子类目下属性推荐三种
如果在属性列表中只有一个属性值或者该属性值的分数占比超过阈值,则为属性预选,也叫做属性直达。具体如图3所示。
现在整个天猫导航区的展现pv每天达到3000万左右, 天猫智能导航承载着整个天猫search的导购重任。在全面理解当前智能导航的工作原理的基础上,对我们进行深入的导航优化将起到促进作用。
提示:本文同步发布于微信号{alibabatech}敬请关注。
建议继续学习:
- 120个优秀的水平导航设计 (阅读:73838)
- 网站导航设计的6大分类 (阅读:7871)
- 我们来做一个会呼吸的菜单吧!! (阅读:3263)
- 递归并不一定非得是“自己调用自己的function” (阅读:3185)
- 实现一个更精简的Tab (阅读:2410)
- 关于网站地图 (阅读:2408)
- 用面包屑来简化多层的tabs (阅读:2378)
- 网站导航设计模式指南 (阅读:2366)
- 给网站布置一个明晰的“关于”页面 (阅读:2199)
- 与众不同易,精益求精难 — QQ导航改版设计心得 (阅读:2494)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:务达 来源: 阿里技术沙龙
- 标签: 导航
- 发布时间:2013-08-12 13:35:58
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] android 开发入门
- [54] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [52] Go Reflect 性能
- [52] Oracle MTS模式下 进程地址与会话信
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [35] 视觉调整-设计师 vs. 逻辑