项目简介
RecAI是为了探索如何将大型语言模型(LLM)融入推荐系统,以增强推荐系统的交互性、可解释性和可控性。该项目通过采用全面的视角和方法,整合实际应用中的需求,发展出一系列技术,包括推荐AI代理、通过个性化提示注入知识、将语言模型作为推荐器进行微调、评估以及作为模型解释器。最终目标是创造一个更加复杂、互动和以用户为中心的推荐系统。
推荐人工智能代理
LLM(大型语言模型)提供自然交互并聪明地响应人类指令,但缺乏特定领域的专业知识。相比之下,传统推荐系统在领域数据训练方面表现出色,但仅限于结构化数据并缺乏交互性。InteRecAgent介绍了一种结合两者优势的AI代理:它使用LLM作为大脑,传统推荐模型作为工具。因此,传统模型如矩阵分解可以转化为对话式、交互式和可解释的推荐系统。
InteRecAgent(交互式推荐代理)是一个框架,用于利用预训练的特定领域推荐工具(如SQL工具、基于ID的推荐模型)和大型语言模型(LLM)来实现一个交互式的对话推荐代理。在此框架中,LLM主要负责与用户交互并解析用户兴趣作为输入给推荐工具,这些推荐工具负责寻找合适的项目。
在InteRecAgent框架中,推荐工具分为三个主要类别:查询、检索和排名。你需要提供LLM和预配置的特定领域推荐工具的API,以便使用InteRecAgent框架构建一个交互式推荐代理。在InteRecAgent中,既不更新LLM,也不修改推荐工具。
InteRecAgent包含的必要组件:
·LLM:一个大型语言模型,作为对话代理。
·物品信息表:一个包含物品信息的表格,其列包括id、标题、标签、描述、价格、发布日期、访问数量等。
·查询模块:一个SQL模块,用于在物品信息表中查询物品信息。
·检索模块:该模块旨在根据用户的意图(需求)从所有物品中检索物品候选者。注意,该模块不处理与用户个人资料相关的事务,如用户历史、用户年龄等。相反,它专注于用户所需,如“给我一些体育游戏”,“我想要一些受欢迎的游戏”。
·排名模块:根据模式(受欢迎度、相似性、偏好)优化物品候选者的排名。用户偏好包括喜好和不想要的。该模块可以是一个传统的推荐模型,输入用户和物品特征,输出相关分数。
选择性知识插件
如何在不对模型进行微调的情况下增强LLM的特定领域能力?关键在于提示。在这项工作中,我们引入了一种增强LLM的方法,使其能够注入大规模、持续演变和特定领域的数据模式。
嵌入式推荐语言模型
密集检索是推荐系统和检索增强生成(RAG)等场景中的关键组成部分。尽管生成语言模型如GPT是为顺序令牌生成而设计的,但它们并不适用于检索导向的嵌入。我们的项目RecLM-emb正是为此而生,它与文本嵌入模型如text-embedding-ada-002保持一致,但专门针对项目检索进行了优化。目前它仅支持文本模态,如搜索查询、项目描述和用户指令。
生成推荐语言模型
需要注意的是,不同领域的数据模式有显著差异,这意味着通用LLM可能无法在特定领域内提供优化性能。为适应特定领域数据模式、以领域项目目录为基础、增强指令执行能力,本项目讨论了为推荐系统微调生成语言模型的过程,称为RecLM-gen。技术包括监督式微调(SFT)和强化学习(RL)。此方法的潜在应用包括排名器、对话推荐器和用户模拟器。
推荐模型解释器
基于深度学习的推荐系统广泛用于各种在线服务,这归功于它们在有效性和效率上的优越性。然而,这些模型通常缺乏可解释性,这使得它们对用户和开发者来说都不够可靠和透明。在这项工作中,我们提出了一种新的推荐系统模型解释方法,称为RecExplainer,通过使用LLM作为替代模型,学习模仿和理解目标推荐模型。
推荐评估器
评估对于准确评估模型的真实能力和识别改进的弱点至关重要。在使用语言模型作为推荐器的时代,其评估方法已大幅偏离传统风格。本项目旨在为基于LM的推荐系统提供全面的评估服务。无论是提供了训练有素的LM还是API(如Azure OpenAI API),它都能从多个角度评估模型的性能,包括检索、排名、解释能力和一般AI能力。
项目链接
https://github.com/microsoft/RecAI