微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 relevance不等于applicability:手机智能助理为什么总在第一步之后就不中用了

relevance不等于applicability:手机智能助理为什么总在第一步之后就不中用了

2026-11-11 16:58
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-11-11 16:58 • 科技行者

你有没有遇到过这种情况:跟语音助理说"订我平时喝的咖啡",它第一次听懂了,知道你要打开星巴克,可是接下来选杯型、选糖度、选地址,它好像又变回了一个什么都不知道的新手。

这不是你的助理傻,这是几乎所有个性化手机智能体共同的毛病。NTU和阿里巴巴的一个研究团队把这个毛病摆上了桌面,写了一篇论文,名字就很直接:相关不等于能用。

一、问题到底卡在哪儿

先说说这类智能体是怎么工作的。你的手机上有个GUI智能体,它要操作各种App,帮你完成任务。

GUI智能体:Graphical User Interface Agent,图形界面智能体,指的是能像人一样在手机屏幕上点点点、滑滑滑来完成任务的AI程序。

这类智能体有个核心难题:很多指令是不完整的。你说"查一下最新消息",没有说是哪个App、什么内容。这种模糊只能靠你过去的使用记录来补全。这篇论文把这类补全分成了两种场景,一种叫个性化执行,就是你已经发出指令,智能体要照着你的习惯把事情办成;另一种叫主动建议,是智能体在你还没开口的时候,自己判断"这个点该不该提醒你一下",比如你每天早上8点在家都会点一杯咖啡,它是不是该主动问一句。

现在业界的主流做法是什么?是检索。

检索:从用户的历史记录里,找出和当前任务最相关的那几条记录,然后把它们原样塞进AI的提示词里,让AI参考着做决定。

这个做法听起来很合理,相关的历史记录给AI看一下,它应该就知道怎么办了对吧。研究团队做了实验,发现这个假设在实际中崩得很惨。

他们把一次任务的执行过程拆成了"开场动作"和"后续动作"两段来看。开场动作就是任务刚开始、决定打开哪个App的那一步,后续动作是打开App之后,屏幕一步步变化、你要一路点下去的那些操作。结果发现,检索出来的历史记录在开场那一步确实立竿见影,把成功率从28.3%直接拉到62.3%,几乎翻倍。可是往后看,剩下90%的步骤里,无论用哪种检索方法,成功率都几乎跟完全不给历史记录一样,差距在5%以内,统计上根本看不出区别。

这说明了什么。说明检索这件事,它给出的答案,只回答了"这个任务大概是什么",没有回答"眼前这个屏幕,我该点哪里"。

这里就能理解论文标题想说的那句话了。检索判断的是任务层面的相关性,比如"这条历史记录和你现在想做的事是不是一回事";而智能体真正需要的,是决策层面的适用性,也就是"这条历史记录里的具体动作,是不是刚好对得上你眼前这个屏幕"。这两者并不是一回事。

打个比方。你去一个新城市旅游,提前把整本旅游攻略打印出来塞进背包。攻略确实跟这座城市相关,但你站在十字路口的那一刻,攻略帮不了你,因为它不会告诉你眼前这个红绿灯该往左走还是往右走。你需要的不是一整本攻略,而是有个人站在你旁边,看着你眼前的路口,告诉你这一步该怎么走。如果没有这个人,你只能靠自己猜,猜错了就要绕远路,这正是检索式方法在后续步骤上失灵的原因:它把整本攻略给了你,却没人在每个路口帮你指方向。

主动建议这边的问题也类似。同一个"周一早上点咖啡"的习惯记录,可能在早上8点被检索出来(这时候该提醒),也可能在晚上通勤的时候被检索出来(这时候完全不该提醒)。检索只看"这条记录和咖啡有关",它不看"现在是什么时间、你在哪儿"。

二、研究者是怎么想到解决方案的

读到这里你可能会问,既然检索的毛病这么明显,为什么大家一直这么做?

我猜一个比较直接的原因是,检索这个动作本身很好实现,很符合直觉:找最相似的,拿过来用。而要让AI在每一步都重新判断"这条历史对现在管不管用",需要的是另一套机制,这套机制得盯着屏幕的实时变化,而不是只盯着任务开始时的那句话。

研究团队把这个思路叫做体验激活,提出了一个叫ExpActivator的框架。

ExpActivator:论文提出的免训练框架,核心思路是把"检索历史"和"激活历史"分开。检索负责先缩小范围,激活负责在每一个具体的决策时刻,判断这个范围里哪条经验真正适用。

这个框架分两层,一层管执行过程中的每一步,叫步级激活;一层管要不要主动开口建议,叫任务级激活。

三、步级激活:让参照物跟着屏幕走

执行阶段的做法是这样的。先用一个文本编码器,把当前指令和历史记录里的任务目标做语义比较,挑出最相关的8条历史轨迹,这一步跟传统检索差不多。

但接下来不一样。ExpActivator不会把这8条轨迹整个塞给AI,而是拿当前这一步的屏幕截图,去跟这8条轨迹里记录过的每一个历史屏幕状态做视觉上的比对,找出最像的那一个,把那个历史状态对应的动作当作参考答案提供给AI。

这里有个技术细节值得说一下,为什么比对屏幕要用一种叫centered visual block的处理方式,而不是直接比较像素。

centered visual block:论文从GUI模型自身的视觉特征里取出若干个代表性的区块(比如屏幕的四个象限),减去这些区块在历史图像上的平均值后再做归一化,用这种"去均值"的表示来比较两张屏幕的相似度,而不是直接比较原始像素。

研究团队专门做了对比实验,用这种中心化的区块特征去匹配历史动作,准确率在35%左右,而直接比较像素误差的方法只有29.6%,差距在统计上非常显著。这说明屏幕截图里真正有用的信息,不是像素本身长什么样,而是它和你历史习惯之间那种结构化的相对关系。

更关键的是,这个匹配不是算一次就完事的,而是每走一步都重新算一次。论文做了个很直接的消融实验:如果用上一步的截图去匹配,而不是当前这一步的截图,成功率会掉15%;如果每四步才更新一次参考答案,也会掉13%。

这就好比你开车去一个陌生地方,导航系统如果只在你出发的时候看了一眼路况,然后接下来全程闭着眼睛凭记忆指挥你转弯,前面堵车了它不知道,前面施工封路了它也不知道。它给你的那条路线在你出发那一刻是对的,但路况一直在变,闭眼开导航只会越走越偏。如果不实时刷新,导航系统给出的建议就会越来越脱离你眼前真实的路况,这正是"参考答案要跟着屏幕实时更新"这个设计存在的理由。

研究团队还统计了一个很有意思的现象:一次任务执行下来,92%的任务会从两条以上不同的历史轨迹里借用参考动作,平均要借用3.4条。也就是说AI不是老老实实沿着一条历史路径走到底,而是哪个历史状态像眼前的屏幕,就临时借用哪条轨迹的那一步,用完就换。这个比例在四个不同的底层模型上几乎一致,说明这不是某个模型自己的怪癖,而是这套激活机制本身决定的行为模式。

四、任务级激活:什么时候该开口,什么时候该闭嘴

主动建议这边的逻辑完全不同,因为这时候用户什么指令都没下,智能体要自己判断"现在是不是该说点什么了"。

这里引入了一个routine的概念。

routine:论文里指用户在相似时间、相似场景下反复做的同一类任务,比如每天早上8点在家查天气,这种有规律的重复行为。

ExpActivator的做法是,把历史记录里语义相近的意图聚成一组,形成一个routine邻域,然后看当前时间和当前场景,跟这个邻域里过去发生的时刻有多接近。这里用了一个时间核函数,距离当前时刻越近的历史发生点,权重越高,形成一种叫contextual support的支持度打分。

contextual support:衡量某个routine在当前时间和场景下,有多少历史证据支持它"现在就该发生"的一个综合分数,由场景是否匹配和时间是否接近两部分加权组成。

这里的设计有个很讲究的地方:是否激活和激活后怎么排序,是两件分开判断的事。要不要把某个routine纳入"可以考虑"的候选池,看的是绝对支持数量够不够,比如历史上这类场景至少出现过12次,同场景至少出现过4次;而在候选池里挑哪个最合适,看的是单次匹配的平均质量。消融实验显示,去掉场景条件这个筛选,误报率会从37%飙升到62%,说明光靠"这事以前常发生"是不够的,必须同时看"这事发生的场景跟现在对不对得上"。

你可以想象一个每天都要吃药的老人,家里的智能音箱如果只记得"这个点通常要吃药",不管老人今天是在家、在医院还是出门旅游,一到那个点就提醒吃药,这种提醒很快会变得让人烦躁甚至误导人。真正懂事的提醒应该是,先确认"你现在确实在平时吃药的那个场景里",再决定要不要开口。如果不做场景确认,提醒系统给出的就是无差别轰炸,不是真正体贴的建议。

当所有候选routine都够不上激活门槛的时候,ExpActivator会直接选择沉默,这个"该弃权就弃权"的设计,正是它和传统方法最大的区别。像HIM-Agent这样基于时间场景组织记忆的方法,虽然把routine按时间场景分了类,但最终要不要建议,还是交给后面的AI模型自己判断,而AI模型往往没有足够依据分辨"这事现在该不该提"。

五、四个模型上的实测结果

论文在四个开源GUI模型上做了对比,Qwen3-VL-8B、MAI-UI-8B、Qwen3.5-9B、GUI-Owl-1.5-8B,还拿商业模型QwenVL-Max做了外部参照。

个性化执行这边,ExpActivator在所有四个模型上都拿到了最好的成绩。拿Qwen3-VL-8B来说,不给任何历史记录时,单步成功率只有19.4%;用最强的记忆基线方法HIM-Agent,提升到22.6%;而ExpActivator直接冲到30.9%,相比HIM-Agent提升了约37%的相对幅度。更有意思的是,用上ExpActivator之后,四个开源模型全部超过了商业模型QwenVL-Max的综合成功率,达到后者的1.6倍左右。

Metrics部分,论文用了三个主要指标:动作类型准确率、单步成功率,还有一个按步骤加权的累积成功率。

CSR:Cumulative Success Rate,一种给任务早期步骤更高权重的综合成功率指标,强调一个任务是不是从一开始就走上了正确的路。

主动建议这边的指标选取也值得细说。因为数据集里68%的样本都是"该建议的场景",如果一个系统傻乎乎地对所有场景都发建议,F1分数照样能到81.1,看起来很高,但这完全没有判断力。所以论文改用了平衡准确率和马修斯相关系数这两个更能反映真实判别能力的指标。

MCC:Matthews correlation coefficient,马修斯相关系数,一个即使在正负样本数量不均衡时也能真实反映分类判断能力的指标,对任何"无脑全部建议"或"无脑全部沉默"的策略都会给出0分。

在这两个指标上,几个基于检索的记忆方法几乎跟瞎猜没区别,MCC常常接近0甚至是负数,而ExpActivator的MCC达到了最强基线的2.3倍左右,精确率平均到了84%。

下面这张表格摘录了Qwen3-VL-8B上的核心数据,加粗部分是每一列的最佳值。

| 方法 | 单步成功率(执行) | 累积成功率 | 平衡准确率(建议) | MCC |

|---|---|---|---|---|

| 不给历史 | 19.4 | 23.7 | - | - |

| 最近记录 | 20.6 | 29.2 | 50.3 | 2.3 |

| 相似检索 | 22.6 | 41.4 | 48.9 | -5.5 |

| LLM生成画像 | 22.0 | 39.2 | 51.5 | 10.5 |

| HIM-Agent | 22.6 | 40.2 | 58.5 | 20.7 |

| **ExpActivator** | **30.9** | **47.9** | **71.8** | **42.7** |

六、更省token,而且小样本用户也受益

这里还有一个容易被忽略但很实用的发现:ExpActivator不仅效果更好,用的上下文反而更少。

论文统计了每一步往提示词里塞进去的历史相关token数量,ExpActivator平均每步只加了144.6个token,而四个基线方法平均要加五百到八百多个,最省的HIM-Agent也要417.8个,是ExpActivator的近三倍。原因很简单,它每一步只提供一条具体的动作参考,而不是把整段历史记录或整份用户画像都搬进去。

另一个发现是,这套方法对历史记录很少的用户同样有效。研究团队把82个用户按历史记录条数分成四组,记录最少的一组只有39到111条记录,ExpActivator依然比最强基线高出8.3个百分点,相对提升超过37%。这说明激活机制起作用的前提不是"你得攒够很多数据",而是只要有少量过去的记录,当前屏幕状态就能从里面激活出有用的参考。

这就好比一个刚入职没多久的新员工,和一个干了十年的老员工同时碰到一个棘手的客户问题。老员工脑子里存着成百上千个类似案例,但如果他翻遍脑子里所有相似案例、原封不动地照搬某一个旧方案,照样可能用错方法;而新员工哪怕只经历过三五个类似场景,只要他懂得仔细观察眼前这个客户的具体情况,挑出那三五个案例里真正适用的那一招,往往比生搬硬套更靠谱。决定成败的不是历史案例的数量,是会不会在当下这个具体情境里把对的那一条挑出来。

七、消融实验:把每个设计拆开看

论文还做了几组对照实验,专门验证"选择"这个动作本身到底值不值。

第一组实验,只给AI一条排名最高的历史轨迹,一种做法是把整条轨迹原样塞进去(这正是传统检索的方式),结果单步成功率18.5%,跟完全不给历史几乎一样;另一种做法是用步级激活从同一条轨迹里挑出一个最匹配的动作,结果成功率升到23.8%,相对提升29%。注意,这两种做法用的是完全相同的历史信息,差别只在"整段塞"还是"挑一条给"。

这个结果其实回应了前面那个问题:经验本身没有变多,变的是经验被使用的方式。好比同一本菜谱,有的人把整本书扔给厨房新手,让他自己从头翻到尾去找该用哪道菜;有的人直接翻到那一页,指着那道菜说"就做这个"。菜谱内容一字不差,但后者能让新手马上动手,前者只会让他对着厚厚一本书发愣。如果不做这个"翻到那一页"的动作,再厚的菜谱也只是一堆没用上的纸。

另外一组实验专门验证任务级激活里的三个设计要素分别起了什么作用。去掉时间加权,平衡准确率掉3.3个百分点;去掉场景条件,掉8.1个百分点,而且误报率翻倍;去掉频率归一化,触发决策完全不变,但建议内容的语义质量下降了约4%相对幅度。论文用一句话总结得挺到位:时间决定什么时候该开口,场景决定要不要开口,频率决定开口说什么。

八、从真实数据看这套机制长什么样

论文里有个案例特别直观。一个用户要查从某个地点到另一个地点的公交车,整个任务走了14步。步骤2和步骤6的参考动作来自4月9日的一次历史出行,因为当时的屏幕状态跟现在的很接近;而一旦屏幕里出现了终点选择的页面,参考动作立刻切换成4月11日另一次历史出行,因为那次才是真正去过这个终点的记录。整个过程中,AI借用了三段不同日期的历史记录,拼出了这一次完整的操作路径。

另一个案例是关于主动建议的。有个用户每天早上8点查天气、下午查辨认植物、晚上查运动记录、睡前设闹钟,论文把这个用户一整天的routine支持度曲线画了出来。你能很清楚地看到四条曲线此起彼伏,分别在各自对应的时间点达到峰值并被激活,而在凌晨和下午一点左右,没有任何routine的支持度够格,系统选择沉默。这种该说话就说话、不该说话就闭嘴的节奏,正是整篇论文想要证明的东西。

Q&A

Q1:ExpActivator是什么?

A:ExpActivator是NTU和阿里巴巴团队提出的一个免训练框架,核心思路是把"检索相关历史"和"激活适用经验"分开,让GUI智能体在每一步执行时都重新匹配最合适的历史动作,在要不要主动建议时判断时间和场景是否真的支持这个建议。

Q2:为什么检索出来的历史记录帮不上执行过程中的大部分步骤?

A:因为检索判断的是任务层面相不相关,而每一步执行要看的是屏幕层面能不能对得上。指令从头到尾不变,但屏幕每一步都在变,一条历史轨迹能告诉智能体从哪开始,却不能告诉它当前这个画面该点哪里,实验显示检索式方法在开场之后的90%步骤里几乎没有帮助。

Q3:ExpActivator相比传统方法效果提升有多大?

A:在四个GUI模型上测试,单步成功率平均提升约28%,整体执行成功率比最强基线高约20%,同时历史记录相关的提示词token只用了基线方法的约五分之一,主动建议的判别能力(MCC指标)达到最强基线的约2.3倍。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-