阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

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

关注

评论

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

《流浪地球2》“数字生命”最后一秒拯救人类,现实中AI也正在“长出”灵魂

硬科技星球

真正的低代码平台

陈飞

PaaS SaaS 低代码平台

第六周作业-拆分电商系统为微服务

不爱学习的程序猿

新书上市 | 以过去预测未来,有趣的时间序列

图灵教育

机器学习 统计学 时间序列 时间序列预测

设计模式-工厂方法模式和抽象工厂模式

C++后台开发

数据结构 设计模式 后端开发 Linux服务器开发 C++开发

Top 5 OSSInsight 年度最佳 MLOps 开源工具

Jina AI

深度学习 开源框架 Jina MLOps OSSInsight.io

程序员必备的数据库知识 2:Join 算法

NineData

数据库 程序员 join SQL sever NineData

新书上市 | 以过去预测未来,有趣的时间序列

图灵社区

机器学习 统计学 时间序列 时间序列预测

启科量子解决方案实践:使用QuTrunk+AWS Deep Learning AMI(TensorFlow2)构建量子神经网络

启科量子开发者官方号

人工智能 量子计算

谷歌用Bard打响了Chat GPT的第一枪,百度版Chat GPT 何时出炉?

蓝海大脑GPU

分红派息合约的函数逻辑是怎么实现的?附分红合约代码及教程

加密先生

算力新话题,畅聊算力之新民生

鲸品堂

算力网络 企业号 2 月 PK 榜

Sugar BI 增强分析能力全场景解析

XxinQi

数据分析 可视化 BI 商务智能 预测模型

Go1.20新版本正式发布,新特性值得一看

王中阳Go

Go golang 高效工作 学习方法

浅谈 2022 前端工作流中全流程多层次的四款测试工具

Liam

前端 测试 前端开发 测试工具 测试开发

RocketMQ 监控告警:生产环境如何快速通过监控预警发现堆积、收发失败等问题?

阿里巴巴云原生

阿里云 RocketMQ 云原生

可路由计算引擎实现前置数据库

石臻臻的杂货铺

数据库

CNStack 2.0:云原生的技术中台

阿里巴巴云原生

阿里云 云原生 技术中台

架构实战营 10 期 - 作业 6

炮仗

Apache RocketMQ 入选 SegmentFault 年度中国技术品牌影响力企业榜单!

阿里巴巴云原生

阿里云 Apache RocketMQ

《数字经济全景白皮书》出海篇:选对路径下好棋,热点出海行业如何实现增长?

易观分析

数字化 经济 出海

十年老程序员:再见了Navicat,以后多数据库管理就看这款SQL工具

雨果

sql navicat 数据库管理工具

上海前端培训学习的就业前景

小谷哥

速剖架构(一)-- 流量的自然走向

Dinfan

架构设计

点对点传输现状,镭速高速点对点传输解决方案

镭速

关于Zebec生态的改进提案,以及即将上线的 Nautilus 链

BlockChain先知

化繁为简|中信建投基于StarRocks构建统一查询服务平台

StarRocks

数据库 大数据 开源

单体应用、SOA、微服务,优劣势都有哪些?

FinFish

微服务 微服务架构 前端开发 移动开发 小程序化

前端报表如何实现无预览打印解决方案或静默打印

葡萄城技术团队

BIGO 如何做到夜间同时运行 2.4K 个工作流实例?

Apache DolphinScheduler

spark 工作流调度 Apache DolphinScheduler 离线计算

在这些工厂、农田、服务区,看到智能中国的草蛇灰线

脑极体

人工智能 华为 许昌

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