先看看系统可能需要记住哪些信息,再读写入、更新与遗忘:用户改了主意、旧信息过期,或者要求删除时,系统该怎么办。

想先看一个具体例子,可以直接读出差期间的日程偏好;想做实验,则看记忆评估与公开 benchmark。

不是存得越多,记得就越好

把聊天记录全存下来不难。难的是需要时能找到还适用、来源清楚的信息,用户改了主意后也能跟着更新,而不是一直拿旧话当真。

一个用户为什么需要多种记忆

用户半年前说过自己不喝咖啡,今天却开始研究手冲。

一个粗糙的系统可能会:

  • 永远记住“不喝咖啡”,继续过滤所有咖啡内容;
  • 或者只看今天的行为,立刻认为用户已经变成咖啡爱好者。

更好的系统应该保留时间和不确定性:

长期状态:过去通常不喝咖啡
当前意图:最近正在主动了解手冲
不确定之处:兴趣可能正在变化,暂时不要下定论
证据:三次搜索 + 一次明确提问

对需要长期协作的个人助手来说,用户状态得能修正,不能把某一次的判断一直当作事实。

表征和记忆有什么区别

  • 表征(representation):此刻怎样把信息编码成模型可以使用的形式。
  • 记忆(memory):哪些信息跨时间保留,以及以后怎样被读出、更新和遗忘。

简单说,表征解决“这些信息怎么表示”,记忆还要解决“保存什么、何时取出、以后怎么更新”。

可以把记忆分成几层

下面按用途来分,方便讨论设计;这些类别可能重叠,不代表要建五个数据库。工作、情景、语义和程序性记忆(procedural memory)也可对照 CoALA §4.1 阅读;这里另外列出偏好与目标,方便讨论个人助手。

工作记忆

当前任务正在使用的上下文。例如刚刚的对话、打开的文件和本轮工具结果。它受上下文窗口和推理成本约束,需要优先保留本轮真正用得上的信息。

情景记忆

过去具体发生过什么。例如用户上周规划了一次东京旅行。它保留事件和时间,不急着概括成永久偏好。

语义记忆

相对稳定的事实,可以来自明确陈述,也可以从多次事件中概括。例如用户主要使用 Python。推断出来的事实仍要带上来源,不能因为存进记忆就变得确定。

偏好与目标状态

用户喜欢什么、正在追求什么,以及这些判断的证据和置信度。它往往会变化,也可能互相冲突。

程序性记忆

保存可复用的做事步骤或技能。例如整理报销时,先提取日期和金额,再查重,最后请用户确认。它和“用户喜欢先看结论”不同:前者是怎么做,后者是偏好。程序性知识也可能体现在模型参数或代码中,不一定是一段文字。

记忆系统要做好哪四件事

写入

不是每句话都值得成为长期记忆。系统要判断信息是否稳定、是否与未来任务有关、是否经过用户确认,以及保存是否合适。

读取

记忆多了以后,要解决的就是“这次该找出哪些信息”。这也是一个搜索问题。

更新

新证据不一定直接覆盖旧信息。在允许保存的范围内,可以记录变化过程、来源和置信度;但不要以“保留历史”为由继续保存用户要求删除的信息。

遗忘

对过期的信息,可以降权或停止调用;对错误的信息,要纠正或移除。降权不是删除:用户要求删除时,摘要、向量索引(vector index)、缓存和备份里的副本也要处理,具体做法见删除之后,摘要为什么还记得?。

为什么一个向量可能不够

一个人可能同时喜欢机器学习(machine learning, ML)、旅行、摇滚和动物。把所有历史压成一个向量,主流兴趣可能会盖住小众但真实的需求。

所以可以考虑:

  • 多个兴趣向量,而不是一个平均点;
  • 将用户资料(profile)、长期历史和当前会话(session)分开编码;
  • 通过路由或门控(gating),决定本次任务更需要哪部分信息;
  • 保存证据与时间,让表示可以被解释和修正。

重点并不是“向量越多越好”,而是表示是否保留了任务真正需要的差异。

怎样知道记忆做得好不好

不能只测“有没有召回过去的信息”,还要看:

  • 取出的记忆是否真的帮助当前任务;
  • 错误记忆会不会持续污染后续回答;
  • 用户纠正后,系统是否真的更新;
  • 多次对话后是否更了解用户,而不是只会重复已知偏好;
  • 系统是否能解释某个判断来自哪些证据。

接着可以看什么

  • 数据与反馈 决定记忆最初从哪里来。
  • 搜索与检索讲当前任务怎样找到需要的记忆和资料。
  • 模型体验从用户角度看:对话能否接得上,记忆能否查看和修改。
  • 评估检查记忆有没有帮上忙、错误信息是否被反复使用,以及纠正后能否及时更新。
本页术语 7
表征 representation
将原始信息转换成模型可以使用的形式,例如向量
程序性记忆 procedural memory
保存做事的步骤或协作习惯
向量索引 vector index
预先算好的内容向量集合,支持近似最近邻查询
机器学习 machine learning, ML
从数据中学习规律,用于预测、生成或决策
用户资料 profile
用户提供或系统整理的相对稳定信息,与具体行为历史区分
会话 session
一段连续的交互;具体边界由产品或实验定义
门控 gating
用可学习权重控制信息写入、保留或输出