惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
博客园 - 【当耐特】
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
D
Docker
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
The Cloudflare Blog
雷峰网
雷峰网
A
About on SuperTechFans
小众软件
小众软件
博客园 - Franky
博客园 - 聂微东
F
Full Disclosure
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
量子位
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
罗磊的独立博客
Martin Fowler
Martin Fowler
D
DataBreaches.Net
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Secure Thoughts
Project Zero
Project Zero
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
S
Schneier on Security
Blog — PlanetScale
Blog — PlanetScale
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
Security Latest
Security Latest
NISL@THU
NISL@THU
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
J
Java Code Geeks

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
深度解析 | 垂直搜索引擎构建:一个例子(下)
知一 · 2023-03-20 · via 人人都是产品经理

搜索引擎可以分为三类,元搜索引擎、综合搜索引擎、垂直搜索引擎。元搜索引擎使用场景较少,综合搜索引擎逐渐成熟,而许多垂直搜索引擎发展却参差不齐。一方面,身处垂直行业的企业更关注业务发展,较少关注产品算法和策略。另一方面,网络上关于搜索引擎的功能设计的文章汗牛充栋,而对搜索引擎的策略设计阐述却是不常见。针对这种现象,本文将以互联网房产为例,分享垂直搜索引擎的构建策略和基本框架,希望可以为后来者带来一些启发。

前文简要介绍了房产垂直搜索引擎的含义、特点和作用,随后叙述了房产搜索引擎的框架搭建,包括query分析、召回策略等。有兴趣的读者可以通过点击下方链接查看。

传送门:深度解析 | 垂直搜索引擎构建:一个例子(上)

在本文,我们将介绍垂直搜索引擎的排序策略、效果评估等内容,通过本文你将了解垂直引擎的排序和评估方法大致框架。

一、排序

在进行搜索引擎优化项目时,读者可能会遇到各种关于排序的文章,内容纷繁复杂,让人眼花缭乱,不知所措。因此,作者对工作中的经验和相关论文进行回顾,梳理了排序的大致框架。希望通过下面的阐述,能够揭开排序领域的一角,为读者在工作和学习上带来帮助。

1.1 排序简介

排序是对召回数据按照一定规则重新排列的过程。排序对搜索、推荐和广告的效果有着直接影响,好的排序可以提高用户体验和广告收入。

排序的发展历程经历了多次迭代,可以概括为三个阶段:

  1. 统计阶段:该主要采用一些静态得分或统计指标作为规则进行排序。在此阶段,我们通常会使用一些基础的统计指标或者规则,如TF-IDF、PageRank等,对数据进行初步排序。这些算法或规则还会使用一些统计指标,如关键词匹配、item评分等作为排序依据。
  2. 机器学习阶段:我们也可称之为机器学习早期阶段。该阶段模型较为简单,参数较少,有一定个性化推荐能力。在早期的机器学习阶段,主要将LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree)、FM(Factorization Machines)、RF(Random Forest)、XGBoost(eXtreme Gradient Boosting)等机器学习算法应用到排序策略中。该方法主要思路是利用业务数据和业务指标(如CTR)训练高表现的排序模型,可以简单理解为:求解CTR和Item关系的(局部)最优拟合函数,从而使更有可能被点击的Item排在前列。
  3. 深度学习阶段:深度学习属于机器学习的一个新领域,深度主要体现在使用多层神经网络训练,它也是机器学习的一个领域 。因为其与传统机器学习有着不同的特点,在此单独作为一个阶段进行叙述。该阶段主要使用深度学习(部分企业也使用了强化学习)进行排序,代表模型有:DNN(Deep Neural Network)、DSSM(Deep Structured Semantic Models)、FNN(Feedforward Neural Network)、PNN(Probabilistic Neural Network)、NFM(Neural Factorization Machines)、AFM(Attentional Factorization Machines)。

深度学习思路本质上与机器学习类似,但其不同之处在于参考了人脑神经元结构,引入了多层神经网络,从而提高了函数的拟合和泛化效果。此外,深度学习还可以降低特征维度,淡化物品的表征能力。

从上述三个发展阶段可以看出,排序的发展路径为:单一数据特征表示 → 多元数据特征表示 → 低维密集向量表示。这些阶段都是将用户、物品、查询等数据转换为向量表示,并通过学习来实现排序的业务目标。

1.2 排序流程

排序可以按照流程分为粗排、精排和重排三个阶段。

1.2.1 粗排

粗排是使用一定策略,对召回数据进行大致排序,对候选集进行初步筛选,以减少计算量。通过粗排,我们可以减轻精排的压力,并提高排序效率。由于粗排是对召回数据的预处理过程,因此也被称为预排序。

粗排需要快速从海量数据筛选出较高质量的数据,因此不能使用过于复杂的模型。在此我们主要介绍几种经典的方法。

(1)基于统计规则的静态商品质量评分

该方法主要采用一些静态指标,使用一定函数给item打分,从而进行排序。评分依据之一是query和item关联度,如使用TF-IDF、BM25等方法计算item重要程度;其次是item特征得分,包括:

  • item属性评分:如房源户型评分、交通评分、生活配套评分、房源发布时间等;
  • 用户行为评分:包括房源的CTR、点赞率、收藏率等
  • 作者评分:在一些行业,例如短视频领域,作者账号的权重也会被考虑在内。这些权重包括关注量、认证情况、平均完播量、平均点赞量、平均收藏量、平均转发量等等。通过进行加权计算,高得分的账号将会排名靠前。

通过评分,可以将高质量的item排在前列。不足的是,该方法通常使用离线计算,无法及时更新。同时,它也未能反映用户个性化特征,使得排序结果加重了马态效应,降低了长尾item的曝光量。

(2)LR(逻辑回归)

逻辑回归虽然名称中包含“回归”二字,但实际上它要解决的是分类问题。逻辑回归包含线性回归和非线性转换两个部分,通过将线性回归的输出通过一个非线性函数(通常为 Sigmoid 函数)进行转换,将其限制在 0 到 1 之间,以表示概率,将概率较大的item排在前列。

以房产搜索引擎为例,假设我们需要预测房源广告是否会被用户点击。每条房源广告只有两种可能的结果:被点击或未被点击,这是一个典型二分类问题。

我们可以考虑将两方面的特征作为输入:①与房源相关特征,如房源类型、面积、户型、建造年份、价格等。②此外,我们还可以考虑用户行为特征,如用户搜索历史、浏览历史、点击历史等。然后将CTR做为输出。

通过模型训练,我们可以将房源得分控制在0~1之间。同时,以0.5为阈值,将0.5分以下数据进行剔除,并按得分进行排序。从而提高房源的点击率

可以看到该模型引入了用户特征,既提高了房源点击率,也使搜索结果更加个性化。

(3)DSSM

DSSM(Deep Structured Semantic Models)又称为双塔模型,该方法是一种深度学习方法,可以用于学习query和Item之间的语义相似性。它通过神经网络模型将它们表示为连续的低维向量,使得具有相似语义的query和ietm在向量空间中靠得更近。DSSM 最初是为了解决 Web 搜索中的query-doc匹配问题而提出的,但它在其他自然语言处理任务,如推荐系统、文本匹配等方面也有广泛的应用。

在房产搜索引擎中,我们可以使用 DSSM 模型来匹配query和房源,以找到与用户query最为相似的房源。

我们可以通过以下步骤来实现训练:

通过对用户query的分析(参考本文前文),将用户查询做query分析预处理后,可以使用CBOW(词袋模型)、 word2vec 等方法将query和房源结构化表示为向量。

构建神经网络模型(如MLP),分别对query和房源信息进行编码。该神经网络将二者表示为连续的低维向量。通过训练,模型可以使query与相似的房源在向量空间中更为接近。

训练好后,我们可以通过训练好的 DSSM 模型,对给定用户的查询和房源描述进行编码,计算它们在向量空间中的相似度打分。然后,根据相似度打分对房源进行排序,将最相关的房源推荐给用户。

使用DSSM可以匹配query与之关联最高的房源,可以保证粗排数据的质量。DSSM需要高质量的训练数据和大量计算资源。在工作场景中,可按需要进行处理。

例如,当用户的query=“chaoyang两居二手房”,若分析器处理结果为实体属性,如{Region:’朝阳’;House Type:’二居’; House Status:’二手房’}。此时我们可将其处理为业务向量,与结构化房源进行相似计算,按相似度进行排序,也可以取得不错的效果。因此,在实际应用中,根据具体场景和需求选择合适的方法是十分重要。

(4)个性化模型

个性化排序模型,又被称作“千人千面”。它基于用户特征和行为数据,对搜索结果实施个性化排序,以更好地满足用户需求。具体而言,该模型可根据用户的个人属性、行为属性、偏好属性等特征,对搜索结果进行个性化排序。

例如,对于一个搜索“北京市二居室”的用户来说,如果该用户历史多次搜索过三环内的房源,那么搜索结果中三环内的三居室房源将会被优先展示。这种排序策略可以满足用户个性化需求,提升用户体验。

(5)多目标模型

在房产搜索引擎中,排序不仅要考虑相关性,还要考虑多个业务目标,例如展示尽可能多的优质房源、提高用户点击率、收藏率、咨询率和呼叫率等。

利用深度学习,可以训练将用户特征、物品特征、统计特征、场景特征作为输入,将点击率、收藏率、咨询率和呼叫率作为输出的模型,最后计算四个值的加权平均数。我们可以将该平均数作为房源的目标评分,进行排序。该方法考虑了多个业务指标,业务解释能力更强。

(6)实时特征排序

实时特征是指用户在搜索过程中产生的实时行为特征,例如搜索词、搜索时间、搜索历史等。这些实时特征可以用来调整排序策略,更好地满足用户需求。例如,如果用户在搜索“北京租房”后又搜索了“朝阳区”,那么在后续的搜索结果中,应该优先展示朝阳区的租房信息。

选取哪种方法需要考虑业务的特性和用户的需求,同时也需要平衡商业成本与ROI,从而选择最合适的排序方法。

1.2.2 精排

精排是指通过各种模型对数据做出精细化排序,提高搜索结果的质量。精排也可以提供个性化的结果,使搜索结果更加满足用户的个性化需求。

精排需要从粗排数据筛选出较高质量的数据。常规的排序模型LR、GBDT、FM等存在一些问题,如调整参数困难、过拟合(Overfitting)等问题。而使用深度学习或强化学习构建的模型,可以自动学习特征和调整参数,能够避免上述问题,提高排序模型的准确性。

1.LTR

随着互联网的发展,用户数据不断增加,计算机芯片算力也实现了很大的提升,这使得排序策略模逐渐向深度学习模型转移成为可能。使用深度学习进行排序通常称为学习排序,学习排序通常分为以下三种类类型。

(1)Pointwise:

Pointwise 将排序问题视为一个回归或分类问题。在这种方法中,我们对每个item单独处理,不考虑其他item的相关性。CTR方法就是一个典型的Pointwise方法,例如,在房产搜索中,为每个房源分配一个点击可能性得分,并根据上述得分对搜索结果进行排序。

(1)Pairwise:

Pairwise将排序问题视为一个二分类问题,强调两个item之间的相对顺序。在这种方法中,我们会对每对item进行比较,判断哪个item与用户需求更相关。然后,利用二分类模型(如SVM、GBDT等)学习这些特征对之间的关系,从而预测item之间的局部优先顺序。

以房产搜索引擎为例,对于每对房源,我们可以计算它们的特征差(如价格差、面积差、户型差等),并根据这些特征差训练一个二分类模型,预测输出房源相对顺序。最后,根据预测结果对房源进行排序。

(2)Listwise:

Listwise将整个搜索结果列表作为一个整体进行排序。在该方法中,更关注整个排序列表的质量,而不是单个item或item对之间的关系。通过训练模型,可以对所有item打分,根据item得分进行列表排序。Listwise方法通常使用NDCG作为评价函数,并基于此迭代排序模型。在房产搜索引擎中,通过输入无序房源列表,然后输出有序的房源列表。

该方法为代表的模型有Lamda 、Ada等。由于关注的是整个列表,该方法也通常更符合用户需求。但也存在数据标注困难、训练成本高等问题。

2.其他方法

近年来,随着精细排序进入深度学习时代,排序深度学习模型逐渐出现多个细分方向。

  • 通过组合和交叉原始特征,提取更高级别的特征表示,帮助模型更好地捕捉特征之间的非线性关系,如FM、FFM、DeepFM、DCN等;
  • 基于用户数据信息,捕捉用户兴趣和行为动态变化。代如DIN、DIEN、SIM等;
  • 同时优化多个目标,如点击率和转化率等。这可以帮助模型在多个指标上取得平衡。如ESSM、MMOE、SNR和PLE等。

限于行文空间,上述模型的细节不作展开讲解,我们将在后续专栏其他文章进行阐述。

1.2.3 重排

重排是利用各种方式对精排数据进行重新排序,以实现搜索结果多样化、运营内容混排、流量调控等目标。

  • 多样性:通过展示多样化数据,可以降低内容、品类单一等问题,提供内容异质性;
  • 内容混排:如在房源列表中插入广告、视频/图文/直播内容、主题聚合等。
  • 流量调控:流量调控可以看作是对部分特殊item流量进行控制,避免缺乏曝光和过度曝光。如常见的新发布房源冷启动、曝光保量等问题。流量调控实际上有许多问题需要注意,有兴趣的读者可以查阅相关内容进行阅读。

在本文,我们主要介绍以下几种重排方法:

(1)固定策略

固定策略是指在搜索引擎中,将某些内容固定展示在搜索结果的某个位置。比较常用的是方式是等距插值,如每4个房源后插入一条广告/素材/主题等。

(2)规则策略

规则策略是指根据业务方需求,对搜索结果进行规则性的调整。常见方法如下:

①根据类别排序,优先展示真房源、新上架房源、高评分房源等;

②排除不感兴趣、B端黑名单等;

③广告竞价:根据B端广告付费竞价,进行优先排序。房源的点击会直接影响竞价广告的收益率,间接影响客户的续费率。

(3)listwise

使用pointwise时,同一用户query,每个item在精排阶段都是独立的,可能存在召回item的特征相似,缺乏异质性。listwise方法主要思想:将用户原始query与所有候选item联系起来,用来关注上下文信息。考虑上下文因素,并进行重排。

值得注意的是,在排序方面需要注意排序的一致性,避免召回、粗排、精排、重排策略不一致的情况。在各个阶段使用矛盾的模型可能提高搜索结果的不确定性,降低排序结果的表现。

最后,对于排序而言,应避免陷入技术追求陷阱,认为搜索引擎如果没有采用 GBDT、DNN 等复杂技术,就算不上好的搜索引擎。

实际上,构建一个高效的搜索引擎应当关注业务需求和用户体验,适当地根据实际场景选择相应的技术方法。比如,在某些特定场景下,简单的基于关键词匹配的排序策略可能就已经足够满足用户需求。此时,使用复杂模型,不仅浪费了宝贵的技术资源,还会降低搜索引擎的响应速度。

因此,在选择排序方法时,应该根据实际业务需求和场景来权衡,而不是过度追求技术复杂度。

二、搜索评价

如果没有科学的评价系统,我们很难衡量搜索引擎的好坏,也就难以改进系统,提升搜索性能。通过评价系统我们可以找到搜索引擎存在的问题或缺陷,提高搜索引擎的表现。同时表现较好的特征,我们也可以进行迁移学习。

2.1 搜索引擎的评价体系

搜索指标通常应该具备客观性、可测量性、科学性。也就是说,指搜索系统评价应尽量采用客观指标,这些指标是可以测量的,并且科学的反映了搜索系统的性能。

参考相关文章,我们将搜索系统的评价分为两个方面:①效率指标;②效果指标

2.1.1 效率指标

效率指标主要对搜索引擎时间性能和空间性能进行评价。主要关注响应时间、开销、索引量等指标。

  • 响应时间:提交query到返回结果的时间。响应时间通常要求在0-100ms以内。由于搜索容易受到网络、设备等因素影响,计算时通常采取多次搜索的平均响应时间
  • 开销:主要指系统占用的内存和外存空间。
  • 索引量:用户可以检索到item的数量,索引的配置将影响搜索的执行时间。

2.1.2 效果指标

效果指标主要针对搜索结果效果评价而言,通常有以下方法:

(1)精准率

精准率 (Precision):搜索结果中相关item与所有item之间的比例。计算公式为:精准率 = 搜索结果相关item / 搜索结果item数量。例如,用户搜索京海市的房源,如果在前10个搜索结果中有8个与京海区相关,则精准率为0.8。

注意与准确率的区分,准确率=识别正确item/所有item数量。假设在数据库中,拥有100条item,与dog相关有60条,不相关的有40条。用户搜索返回50条(其中40条相关,10条不相关),那么:准确率=40+(40-10)/100=70%

所以,准确率=识别正确数/总样本数

注:40表示识别正确的数量(即正例识别正确40条,负例识别正确30条)

(2)召回率

召回率 (Recall):召回率是搜索结果中相关item与所有相关item之间的比例。计算公式为:召回率 = 相关item数量 / 所有相关item数量。例如,当用户搜索青华区的房源时,搜索结果中有40个相关房源,而数据库共有100个与青华区相关的房源,则召回率为0.4。

需要注意的是,当召回和准确率达到一定程度时,就会互为掣肘。继续要求更高的召回,必然会牺牲准确性,反之依然。使用如何衡量,需要依据实际场景决定。如在房源搜索中,要求召回更多的房源,需要降低query与item的匹配度,精准率也随之降低,反之亦然。

(3)F1分数

F1分数 (F1 Score):F1分数是准确率和召回率的调和平均数,用于综合评价搜索引擎的性能。计算公式为:F1 = 2 * (Precision * Recall) / (Precision + Recall)。使用调和平均数可以综合反映系统性能。

(4)P@k

对于海量的搜索结果,我们不可能根据所有结果计算准确率和召回率。因此,我们假设用户关注的是排序比较靠前(前k条)的item。P@k 是评估搜索引擎在前 k 个结果中相关item的比例。计算公式为:P@k = 相关文档数量 / k。当k=10或20,称为p@10,p@20。

(5)MAP

平均准确率 (Mean Average Precision, MAP):多个query在搜索引擎中准确率的平均值,该方法的假设前提是每个用户都期望找到相关的item。

5.MRR

使用p@k方法通过多次对query查询进行评价,降低了计算的复杂度,但也忽略了前k个item的排序质量评价。因此,我们引入MRR的概念。

假设用户首次查询海淀小学,搜索结果中第5条为关于相关的学区房源,那么得到的评价为1/5=0.2;用户第二次查询为“国家图书馆”,第2条就返回了相关的地标房源,我们将其评价赋分为0.5。那么MMR=(0.2+0.5)/2=0.35

由上可知,MRR 是评价搜索引擎对首个相关ietm的排序效果。计算公式为:MRR = (1 / Q) * Σ(1 / rank_i),其中 Q 是查询数量,rank_i 是第 i 个查询的首个相关文档的排名。

(6)nDCG

nDCG (Normalized Discounted Cumulative Gain):nDCG 是一种度量搜索引擎对于相关文档的排序质量。计算公式为:nDCG = DCG / IDCG,其中 DCG 是折扣累积增益,IDCG 是理想情况下的最大折扣累积增益。

这个公式可能看起来较为复杂,不过没关系。我们可以抽丝剥茧,娓娓道来。先从CG说起,CG(Cumulative Gain),累积增益,用来计算(排序后的)列表,有多少个item与query相关。

CG:

CG=Σrel_i,即与query存在相关性item的个数累加(个数为了方便理解,实际可能采用打分),下面使用一个例子来说明CG:

假设搜索结果与搜索相关则得1分,否则为0。若query=“西二旗”,返回结果listA= [城西,二手房,西二旗1居,西二庄,西二旗开间]。显然,CG=[0+0+1+0+1]=2

DCG:

其次是DCG,考虑上述搜索结果listB [城西,西二旗1居,西二旗开间,二手房,西二庄],它的CG[0+1+1+0+0]=2。显然listB比listA结果更好,但他们的CG却相等,这是不合理的。

因此,我们考虑引入位置信息,使位置靠前的item得分更高,位置靠后的item得分越低。使用减函数f(x)*rel_i可以降低靠后item的得分。这里,我们使用的减函数为1/log2^(i+1),结合它的图像,应该可以轻松理解。

我们将调整后的CG称为DCG(Discounted Cumulative Gain,折扣累计增益),DCG=Σrel_i/log2^(i+1)。折扣累计增益通过求多次查询DCG的平均数,理论上可以得到较好的评价指标。

IDCG:

使用DCG进行打分真的没问题吗?举个例子。小兰在高考时,物理考了95分,数学考了135分。如何比较二者的成绩呢?如果我们直接比较原始成绩,可能会因为满分不同而导致比较不公平(读者可以简单思考一下解决方案)。

应该如何分析小兰的成绩呢?为了消除这种不公平性,我们可以将两门成绩都归一到0-1的范围之内。这样,不论是数学成绩还是物理成绩,都可以在同一尺度(得分率)下进行比较。我们将小兰物理成绩换算为95/100=0.95,数学成绩换算为120/150=0.90,可以发现物理比数学考的更好。这种处理方法被称为最大值归一化(除此之外,还有均值归一化、z值归一化,有兴趣的读者可以搜索了解)

同理,搜索引擎返回的item数量可能或多或少。比如query=“开间”时,可能只返回3条数据。这时,返回3条结果和5条结果下的DCG,他们的分数计算标准不同,直接比较DCG分数大小就不太妥当。因此我们需要计算每条搜索结果能获得DCG的满分,再使用DCG/满分,得到DCG的得分比例。

我们将所有与query相关的item排在前面,如query=”西二旗”的搜索结果listA =[城西,二手房,西二旗1居,西二庄,西二旗开间],将结果调整为[西二旗1居,西二旗开间,城西,二手房,西二庄]时,可以得到DCG的最高分(对应的CG为[1,1,0,0,0]需要乘减函数计算DCG,只有排在前面才能获得最高分)这个最高分就是IDCG(Ideal Discounted Cumulative Gain,理想折扣累积增益)。

nDCG:

通过归一化可以得到nDCG的公式:nDCG=DCG/IDCG,NDCG是一种衡量搜索结果质量的指标,它考虑了搜索结果的相关性和排名位置。NDCG值越高,表示搜索结果的质量越好。

除了本文介绍的方式,还有其他的评价指标,如业务指标点击率、收藏率等。具体采用哪种评价方式,需要考虑实际场景。

三、总结

分词有助于更好理解用户需求,召回决定了搜索结果的上限,搜索排序是搜索结果精细化的好帮手,而搜索评价有助于改进搜索引擎。

本文讲述了常见垂直搜索引擎的一些特点、作用,搜索引擎的分词流程,召回方式。排序之粗排、精排、重排等方法,随后总结了常见的搜索系统评价指标。

希望对你有帮助~

本文由 @知一 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自 Unsplash,基于 CC0 协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。