写点什么

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

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

关注

评论

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

区块链,让付费的知识真正“物超所值”

CECBC

深入浅出c++协程丨C++协程实现

Linux服务器开发

c++ 后端 协程 Linux服务器开发 协程原理

Python 包管理

若尘

Package Python编程 5月日更

阿里开源的“SpringCloudAlibaba笔记”这么细节的吗?真秀!

Java架构师迁哥

打破思维定式(七)

Changing Lin

5月日更

BIP研发课堂:领域、单据类型、交易类型

paraboy1

Newtonsoft.Json的使用整理

happlyfox

json netcore 5月日更

新思科技发现开源安全、许可证合规性和维护问题依然很普遍

InfoQ_434670063458

新思科技 OSSRA 开源安全

高性能JavaScriptの笔记(一)

空城机

JavaScript 性能优化 大前端 5月日更

社工技巧 | 一些社工入门技巧介绍

Thrash

数据库学习笔记

lenka

5月日更

C++解析一些特殊符号tab、换行符号

良知犹存

c++

乡村的振兴之始,5G的均衡之道

脑极体

我崩溃了!BTAJ面试有关散列(哈希)表的面试题详解,电子版已问世

欢喜学安卓

android 程序员 面试 移动开发

阿里出品还是香,这份Redis笔记”从头到尾,全是精华

Java架构师迁哥

客户营销:4P理论

石云升

创业 营销 职场经验 5月日更

双非本科,聊聊我是怎么学习编程的。

JavaGuide

Java 学习 编程

鬼知道发生了什么?痛述阿里Java岗5轮技术面经历,险幸上岸

Java 编程 程序员 架构 面试

手把手 Golang 实现静态图像与视频流人脸识别

天黑黑

音视频 人脸识别 Go 语言

码农是如何百炼成钢的?6面阿里、5面字节、4面腾讯,终斩腾讯Offer

Java架构师迁哥

区块链赋能产业,构建良好的数字经济生态

CECBC

架构概述之架构演化、模式与核心要素

xcbeyond

架构 架构演进 5月日更

不要盲目跟风:中小企业运营自媒体需三思而后行

石头IT视角

区块链的现实之痛与解决之道(区块链的爱与恨)

CECBC

百度助力智慧丽江“数智”管理 丽江城市大脑正式上线

百度大脑

百度 大脑 丽江

Apache Flink Meetup 北京站,1.13 新版本发布 x 互娱场景实践分享的开发者盛筵!

Apache Flink

大数据 flink

Fedora 34成哑巴了?

吴脑的键客

fedora

阿里开源的“高并发设计笔记”就这水平!?我反正是跪着看完的

Java架构师迁哥

来了,Anolis OS 8.2 正式版首发!100% 兼容 CentOS 8

阿里云基础软件团队

教你两招,轻松搞定html页面导出为pdf文件

麦洛

Java PDF wkhtmltopdf html2canvas

阿里三面:你连HashMap都不会还敢问我要23K?我:0.0

北游学Java

Java 面试 hashmap

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