写点什么

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

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

关注

评论

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

墨天轮访谈 | 拓扑岭雷鹏:数据库新思维下的弹性压缩与内存计算

墨天轮

数据库 redis 国产数据库 键值数据库

搞懂这份大厂Java面试知识点笔记汇总,涨薪15K你也没问题

Java架构追梦

Java 程序员 后端开发

如何在优麒麟上进行超大型文件的远程传输?这个命令帮你快速搞定!

优麒麟

Linux 开源 命令行 优麒麟 远程传输

#FlyFish现金激励计划# 参与开源项目,赢万元现金!

云智慧AIOps社区

JavaScript 大前端 活动 开源项目 可视化编排

以图搜图应用篇-家具家居行业

视觉智能

人工智能 以图搜图 图像搜索 视觉智能

Java全栈开发---Java ERP系统开发:商业ERP(七

爱好编程进阶

Java 程序员 后端开发

【等保小知识】等保测评是安全认证吗?

行云管家

等保 等级保护 等保测评 安全认证

开发一个不需要重写成Hive QL的大数据SQL引擎

华为云开发者联盟

sql 大数据 mapreduce SQL引擎 大数据仓库

如何选择不同类型的AI服务器?

Finovy Cloud

人工智能 gpu GPU服务器 GPU算力

凭借这份Spring Cloud教程,成功拿下阿里,头条面试

Java架构追梦

程序员 java面试 后端开发 Spring 框架漏洞

云管平台有哪几家?现在采购福利哪家好?

行云管家

云计算 混合云 云管平台

与 Dfinity 明星项目面对面,各大赛道开发经验一览

TinTinLand

区块链

浪潮信息加入,已完成与龙蜥操作系统产品兼容性验证

OpenAnolis小助手

云计算 服务器 龙蜥社区 CLA 浪潮

零基础学Java第二节(运算符、输入、选择流程控制)

五分钟学大数据

Java 4月月更

零基础开启 Neo 开发之旅,NEP17 智能合约实战教学

TinTinLand

区块链

科创人·SUSE大中华区董事长江永清:真开源要有打磨技术的匠心,要能持续创造社会价值

科创人

硬核!8个类手写一个配置中心!

码农参上

微服务 配置中心 4月月更

迎战大厂!“金三银四”和通过率达95%的Java面试八股文

Java架构追梦

Java 后端开发 程序员面试

华为数字化转型实践

乌龟哥哥

4月月更

网络协议之:haproxy的Proxy Protocol代理协议

程序那些事

Java Netty 程序那些事 4月月更

最新区块链招聘:高薪招开发产品运营人才

TinTinLand

区块链

设备如何使用go sdk轻松连接华为云IoT平台

华为云开发者联盟

华为云 sdk go sdk IoT平台 华为云IoT平台

为团队投资CRM系统的投资回报率是多少?

低代码小观

CRM 客户关系管理 低代码开发 CRM系统 客户关系管理系统

加入 Flow ,共同成为 Web3的建设者

TinTinLand

区块链

AIRIOT物联网低代码平台如何配置OPC DA驱动?

AIRIOT

驱动配置

阿里大牛评:入门到大成!GitHub新上线并发编程深度解析实战PDF

Java架构追梦

Java 后端开发 程序员面试

广袤之中:沿着克拉克三大定律,读懂华为的最深期待

脑极体

科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象| 活动报名

科创人

21天连更回归,这个五一宅家写作,挑战一触即发!

InfoQ写作社区官方

热门活动 5月月更

10天“背书”这份200多页PDF,远程通过头条,阿里,Java岗面试

Java架构追梦

Java 后端开发 程序员面试

智汇华云 | flashcache原理及实践

华云数据

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