写点什么

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

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

关注

评论

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

Handler简单入门

W🌥

android 8月日更 Handler

解决“百万富翁问题”—隐私比较高效算法解读

趣链科技

隐私计算 安全多方计算

架构实战营-模块5-作业

Cingk

上游思维:预见问题的能力,识别真假警报

石云升

读书笔记 8月日更 上游思维

阿里 Java 二面必问:8张图带你解决所有TCP可靠传输问题

编程 面试 TCP 网络 计算机

linux 工具之perf

webrtc developer

灵活且有趣,10分钟落地翻译能力,1分钟插件化

明道云

ipfs矿机配置标准如何?ipfs矿机配置带宽要求是什么?

ipfs矿机配置标准如何 ipfs矿机配置带宽要求

微博评论系统高性能高可用计算架构-模块5

小牧ah

架构实战营

区块链钱包系统开发,imtoken去中心化钱搭建

leetcode 最常见的前端基础算法面试题(上)

前端依依

面试 大前端 力扣 算法题 初阶

前端基础三之JavaScript基础

ベ布小禅

8月日更

干货|后互联网时代,运维工程师的必备性能优化指北

阿里巴巴中间件

阿里云 云原生 中间件

微博评论场景高性能高可用架构

张文龙

#架构实战营

实时语音质量监控

声网

Flutter Android 端 FlutterView 相关流程源码分析

工匠若水

flutter android 8月日更

加油站借力光伏发电转型碳中和 推广复制仍待破题

CECBC

从0开始的TypeScriptの十一:模块和命名空间

空城机

typescript 大前端 8月日更

抖音快手截流获客系统软件开发

薇電13242772558

获客达人

模块五作业

燕燕 yen yen

架构实战营

浪潮云说直播间丨智能运维专题来了!

云计算

我们可能是被工具耽误的一代

非著名程序员

深度思考 认知提升 成长笔记 8月日更

架构实战营1期模块5作业——高性能计算架构

tt

架构实战营

音视频demo| 不一样的AR Call

anyRTC开发者

uni-app 音视频 移动开发 uni-app demo

百度世界2021|重构AI世界,百度大脑7.0重磅来袭

爱极客侠

「模块化安装」,定义你自己的CloudQuery

BinTools图尔兹

sql 数据安全 数据库管理 polarDB

架构实战训练营模块五作业

Clarke

“人工智能+蛋白质组学”成科研热点课题,云计算发挥重要作用

北鲲云

我爬取了爬虫岗位薪资,分析后发现爬虫真香

Python研究者

8月日更

HDFS API操作

Mike

我的架构设计方法论

南冥

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