写点什么

Yelp 是如何用数据驱动搜索过滤器的?

  • 2015-12-08
  • 本文字数:1242 字

    阅读完需:约 4 分钟

在美国最大的点评网站 Yelp 上,许多用户都会使用高级搜索过滤器准确地查找某个地方。像“价格”、“距离”、“评级”这样的过滤器很容易使用,但像“户外座位”或“现场音乐”这种更专门的过滤器就有些难用了。因此,他们需要寻找一种方法,在不影响用户体验的情况下,使用户更方便地使用高级过滤器。Yelp 数据挖掘工程师 Ray M. G. 近日撰文介绍了他们如何使用数据驱动搜索过滤器。

在设计新的过滤器之前,他们需要通过挖掘数据更好地理解用户如何使用过滤器。他们发现,用户选择的过滤器很大程度上取决于他们使用的查询词。而且,大部分用户都只使用一个过滤器。他们由此得出,他们需要一种简单的设计,只提供少数几个同查询词相关的过滤器。以下是设计变化前后的界面:

图一:旧搜索界面

图二:新搜索界面

可以看出,新搜索界面隐藏了相关度较低的过滤器,极大地节省了页面空间。而且,如果 Yelp 展示的过滤器不能满足用户需求,那么他们仍然可以点击“所有过滤器”来选择需要的过滤器。

为了支撑这种变化,他们需要构建一个模型。该模型可以接受一组信息特征(如查询、日期 & 时间、位置、个人偏好及其他特征),并给出向客户展示哪些过滤器的建议。查询字符串是最为重要的特征,但查询文本是一种稀疏 & 长尾特征,且基数很大,很难为模型所用。他们希望可以构建一个函数,将查询文本映射成一个可以反映查询与特定过滤器相关度的数值。下图是他们构建的语言模型:

可以将该模型看作一个函数,输入一个单词序列,输出单词序列的概率估计。该模型是贝叶斯定理的一个简单应用。在查询一定的情况下,它可以计算出所有过滤器的先验概率 P(filter|query)。可以看出,对于查询词“业余酒吧(after work bars)”,过滤器“欢乐时光”和“户外座位”的概率值为正,说明它们与查询相关,而过滤器“适合早午餐”和“适合孩子”被认为是不相关的。

为了测试该模型的有效性,他们使用了如下两个指标:

  • 过滤器使用率:由于 Yelp 搜索过滤器可以帮助用户更快地发现相关内容,所以他们希望该模型可以提高过滤器使用率;
  • 搜索质量:他们希望该模型推荐的过滤器有助于提供相关度更高的内容,提升搜索体验。

测试发现,过滤器使用率较之前提高了 20%,像“现在开放”、“快乐时光”这样的过滤器使用次数明显增加,而其他过滤器的使用次数稍微减少。在搜索质量方面,他们通过连续的观察发现,在测试人群中,搜索会话 CRT(Click Through Rate,点进率)稳步上升。点击数非常容易度量,但也是一个很容易产生迷惑性的指标,因为用户点击搜索结果,并不能让被点击的结果相关。因此,他们还辅以其他指标,比如用户找到相关结果所用的时间。按照 Ray 的说法,重新设计的搜索过滤器界面得到了一致好评,效果超出预期。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2015-12-08 18:001449
用户头像

发布了 1008 篇内容, 共 396.3 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

开启自然资源管理“智绘”之路!

天翼云开发者社区

基于Delta Lake构建数据湖仓体系

阿里云大数据AI技术

大数据 开源 企业号十月 PK 榜

天翼云国产化全栈云服务赋能数字中国建设

天翼云开发者社区

云网融合赋能智慧转型,“天翼云管 ”开启贴身云管家时代

天翼云开发者社区

深入理解什么是TCP 粘包?粘包警察是什么梗?

C++后台开发

网络协议 TCP/IP 后端开发 C++开发 TCP 粘包

全局图优化:提升 MegEngine 模型推理性能的又一神器

MegEngineBot

深度学习 开源 性能优化 MegEngine 全局图优化

MetaForce佛萨奇魔豹2.0系统开发技术讲解方案

I8O28578624

2022年中国篮球内容消费趋势洞察

易观分析

消费 篮球

基于 MinIO 部署单实例 Databend | 新手篇(1)

Databend

落地DataOps,必须克服的挑战有哪些?

雨果

DataOps

永久免费低代码开发平台有哪些?

优秀

低代码 低代码开发平台

【限量招募30人】免费参与SPSS云版本内测

淋雨

SPSS

SAP | 消息 MESSAGE

暮春零贰

SAP 消息 10月月更

系统服务熔断、限流:常见限流算法&主流熔断技术详解

程序员小毕

Java 程序员 分布式 微服务 SpringCloud

千锋1024程序员节大咖讲师技术直播火力全开

千锋IT教育

快被Gartner捧上天的Data Fabric数据经纬到底是个啥?

雨果

Data Fabric 数据经纬

京东云开发者|探寻软件架构的本质,到底什么是架构?

京东科技开发者

架构 软件架构 软件架构师

JavaScript的类型转换

渔戈

JavaScript 前端 10月月更

哪里有便宜的云服务器?可以下月付款吗?

行云管家

云计算 服务器 云服务器

数聚生态,智驭全界!看天翼云如何为智慧园区注入新动能!

天翼云开发者社区

更易用的OceanBase|生态工具征文大赛正式开启!

OceanBase 数据库

浅谈Mixin、Composition API、Reactive API、Ref API以及readonly🔥

渔戈

前端 Vue3 10月月更

Pytorch、CUDA和cuDNN的安装图文详解win11(解决版本匹配问题)

timerring

PyTorch cuda 10月月更 cudnn

凭什么 31x31 大小卷积核的耗时可以和 9x9 卷积差不多?| 文末附 meetup 回顾

MegEngineBot

深度学习 开源 卷积 MegEngine

智慧城市、数字政府、城市大脑、一网统管之间有什么关系

雨果

智慧城市 城市大脑 数字政府 一网统管

场景金融持续引发行业关注,4.0时代打造金融服务新生态

易观分析

银行 场景金融

天翼云推出全栈政务混合云支持私有化运行

天翼云开发者社区

JscriptScript的类型

渔戈

JavaScript 前端 10月月更

高可用系统哪家靠谱?工作原理是什么?

行云管家

高可用 高可用架构 高可用集群

项目实战:在线报价采购系统(React +SpreadJS+Echarts)

葡萄城技术团队

React 项目实战 采购软件 echart

现代农业|AIRIOT智慧农业管理解决方案

AIRIOT

低代码 物联网 智慧农业

Yelp是如何用数据驱动搜索过滤器的?_语言 & 开发_谢丽_InfoQ精选文章