晓|快手直播近年单实验最大改进:UniSearch统一生成搜索更懂你
你有没有过这种经历?想搜“MOBA游戏直播”,结果前几页全是《王者荣耀》,明明你更想看《英雄联盟》;或者搜“家常红烧肉教程”,翻了十多条才找到一个步骤清楚的,中间还夹杂着一堆无关的探店视频?其实这不是你搜得不对,而是背后的搜索系统还在用“十年前的思路”干活——分步骤处理,却没人管“最后给用户的结果对不对”。
我们解读最新技术,文末有相关信息。


作者:张长旺,图源:旺知识
最近读快手团队刚发的UniSearch时,突然眼前一亮:他们居然把传统搜索的“流水线”全拆了,换成一个能“从头到尾懂你需求”的统一系统。今天就讲讲,这个能让搜索更准、更快的技术,到底解决了咱们什么痛点,又藏着哪些巧思。
先聊聊:传统搜索为啥总“慢半拍”?像“各自为政的餐厅流水线”
要理解UniSearch的好,得先说说现在的搜索系统有多“别扭”。你平时用的搜索(不管是搜视频还是网页),背后其实是一条“三级流水线”:

第一步是“召回”:像餐厅里的“备菜员”,不管你要啥,先从海量内容里捞一批“大概沾边”的——比如你搜“红烧肉”,它会把标题带“肉”“红烧”的全找出来,可能有几百上千条。
第二步是“预排序”:像“传菜员”,把备菜员捞的内容快速筛一遍,去掉明显不相关的(比如把“红烧鱼”去掉),剩下几十条。
第三步是“排序”:像“厨师长”,最后给这几十条打分,按“觉得你可能喜欢”的顺序排好,推到你面前。
听起来挺合理?但实际用起来全是坑。我之前跟做搜索系统的同事聊过,他们最头疼的就是“各环节不搭调”:备菜员只关心“捞得多不多”,传菜员只关心“筛得快不快”,厨师长只关心“排得准不准”,没人管“从捞到排,最后用户能不能满意”。
比如备菜员捞了1000条“红烧肉”,但里面混了很多探店视频,传菜员没筛干净,到厨师长手里,就算排得再准,你还是得翻半天;更麻烦的是,每个环节都要单独维护——改备菜规则不影响传菜,改传菜逻辑不影响排序,最后系统越改越复杂,加载还变慢,用户体验自然上不去。
之前的“生成式搜索”:走了一步好棋,却没走到底
后来有人想:既然流水线这么麻烦,能不能用“生成式模型”直接“造”出你想要的结果?就像你跟导游说“我想看自然风景”,导游直接带你去景点,不用先逛遍整个城市。

但早期的生成式搜索,更像“两步走的半成品”:先让一个“编码器”给每个视频做个“身份码”(比如把视频标题、画面转换成一串数字),再让一个“生成器”学怎么根据你的搜索词,生成这些“身份码”。

这里的问题就大了:编码器和生成器是“分开训练”的——编码器先自己练3个月,学会做身份码;生成器再拿这些身份码练3个月,学怎么生成。就像先让A画地图,再让B学看地图带路,A画的时候没问B“你能看懂吗”,B学的时候也没告诉A“你这地图标得不清楚”,最后B生成的身份码,可能根本对应不上实际的视频,要么结果不准,要么出现“无效码”(生成了一个不存在的视频ID)。
我们团队之前做推荐系统时,也踩过类似的坑:分开训练两个模块,最后推荐的内容总是“差口气”,后来才发现是“两边说话不在一个频道”。所以看到UniSearch时,我第一反应是:他们是不是把“两步走”改成“一步走”了?
UniSearch的核心:像“导游+档案管理员”无缝配合,一次搞定
还真让我猜着了。UniSearch最核心的创新,就是把“编码器”和“生成器”绑在一起,变成一个“能懂需求、能找对内容”的统一系统。我给你拆成两个关键角色,你一下就懂了:

角色1:“懂需求的导游”——Search Generator
Generator就像你去景区的专属导游,你跟他说“我想看MOBA游戏直播,最好是《英雄联盟》的”,他不会先带你乱逛,而是直接根据你的需求,“生成”一串“景点专属码”——这些码对应的,就是你可能想看的直播。
具体来说,它会先“听”懂你的搜索词(比如“MOBA游戏直播”),再结合你的习惯(比如你之前常看《英雄联盟》),然后一个字一个字“拼”出视频的“身份码”。这里的关键是,它不是“先捞一堆再筛”,而是“直接生成对的码”,相当于导游已经知道你要去的景点,直接带你走最短的路。
角色2:“会做档案的管理员”——Video Encoder
Encoder则像景区的档案管理员,负责给每个视频做“专属档案+身份码”。你想啊,视频有标题、画面、播放量、主播风格,这些信息乱糟糟的,直接给导游看肯定不行。Encoder会先把这些信息整合起来,变成一个“浓缩的视频特征”(就像档案里的核心摘要),再用一个叫VQ-VAE的技术,把这个特征转换成一串简短的“身份码”(比如“123-456-789”)。

这个VQ-VAE技术特别有意思,我给你打个比方:就像你整理衣柜,不会把所有衣服堆在一起,而是按“季节+风格”分类——夏天的T恤放一个盒子,冬天的毛衣放另一个,每个盒子贴个标签。VQ-VAE就是给视频“分类贴标签”,相似的视频会有相似的身份码,这样导游(Generator)找的时候,不用看整个视频,只看码就知道“这个对不对”,快多了。
最妙的一步:“导游和管理员一起练”——联合训练
之前的生成式搜索,是管理员先做好码,再让导游学生成;UniSearch不一样,它让导游和管理员“一起培训”:
管理员做身份码的时候,会问导游“这个码你能不能看懂?要不要我调整一下?”;导游生成码的时候,也会跟管理员说“你上次给《英雄联盟》做的码太像《王者荣耀》了,我总搞混,能不能改得更不一样?”。

就像餐厅里的服务员和厨师一起培训:服务员知道客人喜欢辣,会告诉厨师多放辣椒;厨师知道自己做的菜辣度,会跟服务员说“这个菜很辣,推荐给能吃辣的客人”。这样配合下来,不用中间传话,效率高还不容易出错。
我们团队之前做推荐时,就因为没做到“联合训练”,导致两个模块“脱节”,最后花了很多时间调参数。所以看到UniSearch这个设计,我特别有共鸣——这才是从根本上解决“各环节不搭调”的问题。
还有两个“神辅助”:让搜索又准又不会出错
光有导游和管理员还不够,UniSearch还加了两个“小工具”,解决了实际用的时候会遇到的两个大问题。
1. SPO:根据你的反馈“实时调方向”——像“导游记笔记”
你有没有过这种情况?搜出来的结果里,你点了A视频,没点B视频,但下次搜类似的,还是会出现B?这是因为很多搜索系统“不会记教训”,只会按固定规则推。
UniSearch加了个“Search Preference Optimization(SPO)”,简单说就是“导游会记笔记”:你点了哪个视频、看了多久、有没有点赞,这些反馈都会变成“奖励”——如果导游推的视频你看了5分钟,就给它加10分;如果推的你一秒就划走,就扣5分。
然后根据这些分数,调整生成身份码的方向:下次再搜类似的,就多生成“加分视频”的码,少生成“扣分视频”的码。就像你跟导游说“刚才那个景点不好玩”,导游下次就不会再带你去了——比只会“按固定路线走”的传统搜索灵活多了。
2. Trie树:不让“无效码”出现——像“门禁系统”
生成式模型有个通病:可能会生成“不存在的身份码”——就像导游给你指了个“地图上没有的景点”,最后你白跑一趟。
UniSearch用了个“Trie树”技术,相当于给身份码加了个“门禁系统”:所有有效的身份码(对应真实视频的)都会存在Trie树里,导游生成码的时候,每一步都要过门禁——只有存在的码才能通过,不存在的直接被拦住。
比如导游想生成“123-456-000”,但Trie树里没有这个码,门禁就会说“不行,换一个”,导游就会换个有效的码,比如“123-456-789”。这样就不会出现“搜出来的结果不存在”的情况,既快又靠谱。我之前做类似系统时,没加这个功能,经常出现无效码,还要回头删,特别麻烦——UniSearch这步考虑得太实际了。
实际用起来怎么样?快手的数据说话:用户更愿意看了

光说原理没用,得看实际效果。快手把UniSearch放到了直播和短视频搜索里,做了线上线下测试,结果还挺让人惊喜的。

线下测试时,UniSearch比传统的“流水线”系统,找对结果的概率(Recall@300)高了3%-5%,排序的准确度(MRR)也高了不少——简单说就是,你要找的内容,更容易出现在前面,不用翻很多页。
线上测试更直观:

• 直播搜索里,用户看的视频总量(TPC)涨了3.31%——这是什么概念?相当于每天多了几百万用户能找到想看的直播,而且更少有人改搜索词(CQR降了0.382%),说明不用反复试了;
• 短视频搜索里,用户看视频的时间(VPD)涨了0.213%,还会看更多不同的视频(PVD涨了0.993%)——不会再像以前那样,刷到的全是重复内容。
最让我惊讶的是,直播搜索的这个3.31%提升,是快手近年“单实验最大的改进”。要知道,成熟的搜索系统,想提升1%都很难,UniSearch能做到3%+,说明它确实解决了用户的核心痛点。

还有哪些可以改进?未来搜索可能更“懂你”
当然,UniSearch也不是完美的。现在它生成结果时,还是“一个一个找”(点式生成),未来可以改成“一次生成一串多样的结果”(列表式生成)——比如你搜“MOBA游戏”,既能给你《王者荣耀》,也能给你《英雄联盟》,还能给你《虚荣》,多样性会更好。

另外,现在的“奖励机制”主要看点击、观看时间,未来可以加更细的反馈——比如你有没有收藏视频、有没有跟着教程做、有没有给主播打赏,这些都能让搜索更精准。
最后:搜索的核心,从来不是“技术多复杂”,而是“用户爽不爽”
读完UniSearch的论文,我最大的感受是:它不是为了“炫技”才用生成式模型,而是真的从用户角度出发,解决了“搜不准、搜得慢、内容重复”这些实际问题。
传统搜索拼的是“每个环节做得多好”,而UniSearch拼的是“能不能一次就懂你想要什么”——就像从“你得适应系统”变成“系统适应你”。未来如果这种技术普及了,不管你是搜教程、找直播,还是查资料,可能真的能做到“你刚输入一半,结果就已经在眼前了”。

最后想问问你:你平时用搜索最多的场景是什么?有没有遇到过让你“崩溃”的搜索体验(比如翻十页找不到、结果全重复)?如果UniSearch这种技术普及了,你觉得最能帮到你的地方在哪?欢迎在评论区聊聊~
参考资料
• 标题:UniSearch: Rethinking Search System with a Unified Generative Architecture
• 作者:Jiahui Chen, Xiaoze Jiang, Zhibo Wang, Quanzhi Zhu, Junyao Zhao, Feng Hu, Kang Pan, Ao Xie, Maohua Pei, Zhiheng Qin, Hongjing Zhang, Zhixin Zhai, Xiaobo Guo, Runbin Zhou, Kefeng Wang, Mingyang Geng, Cheng Chen, Jingshan Lv, Yupeng Huang, Xiao Liang, Han Li
• 单位:快手科技
• 链接:https://arxiv.org/pdf/2509.06887
