Lazy loaded image
读点论文吧
ARAG: Agentic Retrieval Augmented Generation for Personalized Recommendation
Words 4679Read Time 12 min
2025-7-17
2025-7-22
type
status
date
slug
summary
tags
category
icon
password
论文地址:

1. 导读

本文主要讲述了 多Agent+RAG在内容推荐领域的应用,中间没有算法层面创新,是一篇典型的工程架构巧思的论文。
主要解决的问题有:
  • 为什么传统推荐和传统RAG不行?
  • ARAG如何构建,效果怎么样?
 
待解决的问题:
  • ARAG在实时推荐中响应时间有多久?如何保障用户体验?
  • ARAG的token成本怎么样?每个用户都个性化推荐的效益比能否达到互联网公司的要求?

2. 概述

RAG技术将外部背景信息融入到模型中,可以有效提升模型效果。但现有的RAG方法大多依赖固定的检索规则,在动态变化的推荐场景中,很难捕捉到用户的细微偏好
 
ARAG构建了四个 Agent:
  • 用户理解智能体: 负责从用户的长期历史和当前会话中,提炼并总结出用户的偏好。
  • 自然语言推理智能体: 负责评估系统初步筛选出的候选商品,与推断出的用户意图在语义上是否匹配。
  • 上下文摘要智能体: 负责将“推理智能体”的发现进行汇总,形成一份简明的摘要。
  • 项目排序智能体: 负责根据整体的上下文匹配度,生成最终的推荐排序列表。
测试后发现:ARAG的性能显著优于标准的RAG方法和 recency-based baselines ,其关键指标NDCG@5最高提升了42.1%,Hit@5最高提升了35.5%。
 
💡
**Hit@5(命中率@5)**意思是:在推荐给用户的前5个结果里,有没有至少一个是用户真正喜欢或点击的? • 如果有,就记为命中(Hit)。 • 如果没有,就记为未命中(Miss)。 • 多个用户做这个测试后,计算平均命中率。 NDCG 全称是 Normalized Discounted Cumulative Gain,意思是归一化折扣累计增益,听起来有点复杂,但可以简单理解为:不光看有没有命中,还看命中排在第几位。 • 如果用户喜欢的电影排在第一位,得分更高。 • 排在第五位,得分就低。 • 然后对这个分数进行归一化(方便不同用户比较)。

2.1. RAG优势

传统推荐算法仅依赖存在静态数据库里面的用户偏好和商品特征,引入RAG之后,系统可以动态获取并参考更多相关数据,例如时下热点、用户评价、专家意见,甚至是实时的市场数据。
 
举例来说:一个应用了RAG的电影推荐系统,可以通过检索并分析最新的影评、观众反馈和当下的文化潮流,从而给出更及时、更贴切的推荐。
 
此外,RAG还能通过检索并展示相关的支撑信息来解释“为什么推荐这个”,从而增强用户的信任感和参与度。
RAG的这种自适应特性,也让推荐系统能更好地处理那些“长尾商品”(非热门商品)或新用户的推荐问题。它能从一个更广阔的知识库中获取信息,从而有可能解决协同过滤中常见的“冷启动”难题。
 
传统推荐算法是怎么工作的?为什么不能动态获取数据?
传统算法分为两类就,都依赖静态数据库
类型
说明
举例
协同过滤(Collaborative Filtering)
看“你喜欢的东西,也被别人喜欢”,就推给你别人喜欢的东西
比如你和小明都喜欢A、B电影,小明还喜欢C,那就推C给你
内容推荐(Content-based)
根据物品的特征 + 用户的偏好,做匹配
你喜欢“动作 + 高分 + 男主演”的电影,就推类似的
 
那RAG为什么就可以“动态”?它不是也需要准备数据库吗?
RAG 用“检索 + 大语言模型”组合,可以随时去“查”,而不是靠事先定好的规则推荐
它的检索库(比如向量数据库):
  • 可以接入实时数据,比如:最新评论、热门趋势、新闻文章
  • 检索结果是开放式的文本,不只是标签或评分
🔄 所以它可以动态检索 + 动态生成推荐解释,更接近人的思维逻辑。
 
为什么 RAG 更适合处理“长尾商品”或“冷启动”问题?
先解释两个名词:
  • 长尾商品 = 很少人看/买的冷门物品
  • 冷启动问题 = 新用户或新商品没有数据,推荐系统不知道你是谁/它是什么
传统方法的问题:
  • 协同过滤没数据就“推不出来”
  • 内容推荐可能也没有特征,或特征不够丰富
 
小结
  • 可以通过文本去理解新物品(比如分析商品描述、评论)
  • 可以通过 LLM 理解新用户的偏好,比如从一次对话里提取出你喜欢“环保 + 时尚”
  • 检索范围大,能把很多冷门商品也“找出来、说清楚”
所以,即使你是新用户,或者商品刚上架,RAG 也能“现查+现分析”做出推荐。
 

2.2. RAG劣势

目前RAG在推荐应用中的局限性,主要源于它所依赖的检索机制过于简单,比如只是基于余弦相似度进行检索或向量匹配,这些方法虽然计算效率高,但在捕捉驱动用户行为的那些细微偏好和复杂背景时,往往力不从心。
 
一个关键的突破点在于,要开发出能更好地理解和利用长篇用户文档,并从中推断出用户背景的RAG系统,这意味着我们不能再停留在表层的文本匹配,而是要深入理解用户生成内容背后所隐含的偏好、兴趣和意图。
 
此外,对召回的候选商品集进行排序时,也需要更高级的算法,能够同时权衡相关性、多样性、新颖性和场景适宜性等多种因素。

3. 方法

ARAG框架的核心思想是抛弃"一个模型包打天下"的简单思路,转而模仿"专家团队"的协作模式来解决复杂的个性化推荐问题。它将推荐任务视为需要多位专家、多个步骤协同完成的"项目"。
整个流程分为四个主要阶段:

3.1.1. 第一阶段:准备工作台与初步筛选(海选)

  • 工作台准备:系统首先准备两份核心原始材料:一份是用户的"完整卷宗",包含该用户按时间排序的所有历史互动(购买、浏览、评论等);另一份是所有可供推荐的"商品名录"
  • 初步筛选:系统使用快速、常规的检索方法(如语义向量匹配),从庞大的商品名录中筛选出与用户"卷宗"有关联的商品,形成数百个商品的"候选池"。这个阶段追求"快"和"全",确保后续专家有充足材料进行分析,因此结果相对粗糙。

3.1.2. 第二阶段:专家并行分析(精选)

这是ARAG的引擎核心。所有专家在名为"共享黑板"的数字空间工作,他们以统一的JSON便签格式记录发现,方便团队协作。
项目启动后,两位专家同时获取用户的"完整卷宗",并行工作:
  1. "鉴证专家"(NLI Agent)进行细节比对
      • 任务:进行微观层面的事实核查。它检查"候选池"中的每件商品,回到用户"完整卷宗"中寻找具体证据,判断"这个商品与用户是否匹配"。例如,当商品描述为"防水户外夹克",它会查找用户是否浏览过"登山鞋"或购买过"露营帐篷"等行为。
      • 为何用原始数据:它需要最原始、未经处理的细节做出精准判断。任何形式的"总结"都可能丢失关键线索。
  1. "心理侧写师"(UUA Agent)进行宏观洞察
      • 任务:进行宏观层面的归纳总结。它通读用户的"完整卷宗",忽略零散细节,洞察用户整体的高层次偏好、品味和当前意图,编写一份精炼的"用户画像报告"。
      • 为何要总结:这份报告为最后阶段的"总决策官"准备,使其能快速把握用户核心需求,避免陷入细节。

3.1.3. 第三阶段:情报汇总与提炼

当"鉴证专家"完成对所有候选商品的打分后,"情报分析师"(Context Summary Agent)开始工作。
  • 它的任务是"去粗取精"。首先,根据"鉴证专家"的评分,只保留得分最高的"明星商品"。然后,它整合这些明星商品的特点和信息,提炼成一份简洁的"亮点商品摘要"。

3.1.4. 第四阶段:最终决策与排序

所有材料准备就绪,"总决策官"(Item Ranker Agent)进入会场。
  • 它面前没有"完整卷宗"或"候选池"等原始材料,只有两份精心准备的高质量总结报告:
      1. 来自"心理侧写师"的《用户画像报告》
      1. 来自"情报分析师"的《亮点商品摘要》
  • 它的任务是基于这两份高度浓缩、互为补充的报告,进行最终权衡和思考,对"明星商品"进行从高到低的最终排序,生成推荐列表。
通过这套流程,ARAG将模糊的推荐问题转化为分工明确、逻辑清晰、有据可循的推理过程,既提升了推荐准确性,也使整个决策过程更加透明和可靠。

4. 测试

下面简要概括这篇论文的完整测试流程,包括数据集、测试方法和核心结果。

4.1.1. 数据集构建

  • 数据来源:实验使用一个经典的公开数据集——亚马逊商品评论数据集
  • 数据内容:该数据集包含"服装"、"电子产品"、"家居"等多个品类下的数百万条真实用户评论、评分和商品信息。
  • 构建方法:研究者从中随机抽取了10,000名用户,并使用这些用户的交互记录子集作为最终实验数据集。

4.1.2. 测试方法

论文采用推荐系统领域标准的"时间切分"评估方法,可理解为"用过去预测未来":
  1. 数据准备:对每个测试用户,将其所有历史互动(如购买、评论)按时间从早到晚排序
  1. 划分"考题"和"答案":将用户绝大部分历史记录作为"考题"(即模型的输入上下文),而将时间上最后一次的互动商品作为"标准答案"(即模型需要预测的目标)。
  1. 进行预测:让ARAG及其他对比模型根据"考题"来预测用户接下来最可能喜欢的商品,并给出一个Top 5的推荐列表
  1. "批改试卷":对比模型的推荐列表和"标准答案",并使用两个核心指标来打分:
    1. Hit@5 (前5名命中率):看"标准答案"是否出现在推荐列表的前5位里。
      NDCG@5 (前5名排序质量):不仅看是否命中,还关心"标准答案"排得有多靠前,排名越靠前得分越高。

4.1.3. 测试结果

  • 全面胜出:实验结果清晰地表明,ARAG框架在所有数据集和所有指标上,都显著优于另外两个"陪练选手"("新近度模型"和"标准RAG模型")。例如,在最复杂的服装领域,其NDCG@5指标提升高达42.1%
  • 组件的有效性:通过消融研究(即逐个拆掉框架里的智能体来测试性能),论文证实了ARAG里的每一个智能体组件都发挥了不可或缺的、积极的作用。缺少任何一个,都会导致推荐效果下降。

5. 衍生思考

5.1.1. 关于响应速度和用户体验

5.1.1. 挑战:直接用会非常慢

首先,一个不争的事实是,如果把ARAG这套流程直接放在线上,当用户请求时才开始计算,那速度肯定跟不上。一次完整的推荐,需要和AI模型进行好几轮的深度“沟通”,这整个过程下来,耗时几秒钟甚至更长是完全正常的。这样的速度,显然无法满足用户“即点即看”的体验要求。

5.1.2. 对策:把计算和展示分开

业界的通行做法是,绝不让用户等待复杂的计算。核心思路是“后台算,前台取”。
  1. 提前批量算好 (离线计算): 系统不需要实时为每个用户从头计算。完全可以在后台,比如在服务器闲置的凌晨,或者每隔一两个小时,就为活跃用户们批量地把ARAG的推荐结果跑一遍。算出来的最终推荐列表,会存放在一个读取速度极快的缓存数据库里。这样,当用户打开App时,程序只需要去缓存里取一下现成的结果,这个动作是瞬间完成的。
  1. 先给个基础版,再异步更新 (混合模式): 另一种策略是,为了保证页面秒开,可以先给用户展示一个由传统简单算法生成的“基础推荐”。与此同时,在后台悄悄启动一次ARAG的计算任务。等几秒钟后,那个更精准的ARAG结果算出来了,再神不知鬼不觉地更新页面上的推荐模块。这样既保证了初次加载的速度,又能让用户在后续体验中感受到越来越“懂你”的推荐。
  1. 用在不着急的场景: 这套强大的系统也非常适合用在那些对时间不敏感的地方,比如生成内容丰富的“每周精选”推荐邮件,或者构思一条引人点击的App推送通知。在这些场景下,计算过程多花几分钟完全没问题。

5.2. 关于成本和商业价值

5.2.1. 挑战:成本会非常高

这一点也毋庸置疑,ARAG的运行成本会相当高昂。
每一次推荐,都意味着要和AI模型进行多次对话。并且,为了让AI做出准确判断,每次对话都需要把用户长长的历史记录作为“背景材料”发给它。这样的“长对话”成本不菲,再乘以平台上海量的用户和请求次数,每天的总开销会是一笔巨大的支出。

5.2.2. 对策:好钢用在刀刃上

既然成本高,那在商业上就必须精打细算,有策略地使用。
  1. 在关键环节投入 (选择性部署): 不会在所有地方都用这套系统。而是会把它部署在最能影响收入和用户体验的关键位置。比如,App首页最核心的“为你推荐”信息流,或者用户购物车页面的“凑单推荐”模块。在这些地方,一次高质量的推荐很可能直接促成一笔订单,价值更高。
  1. 证明自身价值 (A/B测试): 在投入使用前,公司必须做严格的对比测试。让一部分用户继续使用老算法,一部分用户使用ARAG,然后观察一段时间。核心要看的是:ARAG带来的额外销售额、用户停留时间等收益,是否能远远超过它带来的额外成本。只有这笔账算得过来,项目才能持续。
  1. 技术上降本增效: 工程师们也有很多办法来降低成本。比如,一个常见的技巧叫“模型蒸馏”,就是先花大价钱请一个最顶级的“AI老师”(比如GPT-4)来做示范,产出大量高质量的推荐案例。然后,用这些案例来训练一个更小、更快、成本更低的“AI学生”模型。最后让这个“学生”模型去线上工作,成本就能大大降低。此外,对于近期行为没怎么变的用户,也可以把推荐结果短暂地存起来,避免重复计算,这也能节省不少成本。
 
上一篇
AI后半场
下一篇
OpenAi-Agent初体验