NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:001232
用户头像

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

关注

评论

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

厦门科云:构建基于 SpreadJS 的管理会计综合实训平台

葡萄城技术团队

SpreadJS 管理会计综合实训平台

探究逻辑思维,姚华兴电影读《金字塔原理》提升自我

Geek_116789

2020年6月23日 创建高性能的索引

瑞克与莫迪

第三周作业

第三周总结

LEAF

架构师训练营第三周作业

一剑

一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移?

一枝花算不算浪漫

架构师训练营 - 命题作业 第3周

水边

极客大学架构师训练营

锦囊篇|一文摸懂RxJava

ClericYi

第三周学习总结

秦宝齐

学习

架构师培训 -03 设计模式

刘敏

还不会十大排序,是准备家里蹲吗!?

ClericYi

面向对象架构设计-课后作业

Jeff

ARTS|Week 04 (2020第25周)

MiracleWong

elasticsearch 算法 ARTS 打卡计划

手写负载均衡算法

小眼睛聊技术

Java 架构 算法 后端

如何将100个Pod挂载卷的时间缩短10倍?

XSKY星辰天合

JVM面试题68问,面试又可以多扯一个小时了!

Java小咖秀

面试 JVM 经验分享

架构师训练营 - 第3周学习总结

水边

极客大学架构师训练营

面向对象设计模式

陈皮

游戏夜读 | 你的名字记在那里

game1night

ARTS 打卡week#2

对方正在输入…

ARTS 打卡计划

面向对象架构设计

Jeff

Websocket IM聊天教程-教你用GoEasy快速实现IM聊天

GoEasy消息推送

websocket 即时通讯 聊天室 聊天 IM

2020年6月22日 Schema与数据类型优化

瑞克与莫迪

爆料一下:我的读书之道

非著名程序员

读书笔记 程序员 程序人生 读书 读书感悟

我在星巴克买了张卡,意外发现一亿客户信息泄露

田晓旭

架构师训练营第三周感悟

张锐

Glide都在用的LruCache,你学会了吗?

ClericYi

第三周作业

秦宝齐

学习

架构师训练营第三周总结

一剑

架构师训练营第三周作业

W_T

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