[TOC]

LongTutor: Benchmarking Large Language Models for Long-term Personalized Tutoring

LongTutor: Benchmarking Large Language Models for Long-term Personalized Tutoring - ACL Anthology

Idea

核心是根据长期记忆数据,制作了三个问题:

三个问题的类型由论文预先规定:

  • Q1:信息提取——询问单条历史记录中的事实。
  • Q2:跨记录推理——要求综合多条历史记录回答问题。
  • Q3:幻觉检测——询问历史中不存在的信息,测试模型能否拒绝编造。

核心目的是:区分大模型**“能找到历史信息”“能综合历史信息”和“知道历史中没有某个信息”**这三种不同能力。

作者希望证明:即使 LLM 能准确检索学生历史,也不代表它能正确理解长期学习轨迹,更不代表它能完成准确的学习诊断。


最后的实验也证明了:当前大模型在长期个性化教学中存在明显的能力不匹配——基础历史信息提取相对成熟,但跨记录推理、认知状态诊断和历史驱动的教学仍有较大不足。

Method

1. 原始数据准备

输入: 学生答题日志 + 题目元数据。

  • 答题日志:student_id、question_id、response(正确/错误)、timestamp
  • 题目元数据:题目内容、知识点、标准答案等

处理:

  1. 按学生 ID 聚合答题记录。
  2. 按时间升序排列。
  3. 筛选长度至少为 200、时间跨度至少为 10 天的序列。
  4. 找到最后一次答错的题目,向前截取总共 200 条记录。

输出: sequences_long.jsonl

S=[h1,h2,…,h199,qcurrent] S=[h_1,h_2,\ldots,h_{199},q_{\text{current}}]

其中前 199 条为历史答题记录,最后 1 条为当前错题。

2. 学生历史特征计算

输入: sequences_long.jsonl + 题目元数据。

处理:

  1. 提取完整历史 history_info(199 条)。
  2. 根据当前错题的知识点,筛选具有共同知识点的历史记录 related_history。
  3. 计算统计特征:
    • overall_acc:历史总体正确率。
    • recent_acc:最近 20 条历史的正确率。
    • related_concept_acc:相关知识点的历史正确率。
    • related_concept_count:相关历史题目数量。
    • related_last_correct_interval_days:距离最近一次相关正确作答的天数。
    • cur_question_error_rate:当前题目在全体学生中的错误率。

输出: history_features_lastq.jsonl

 1{
 2  "uid": "S001",
 3  "history_info": ["199条历史记录"],
 4  "related_history": ["相关知识点历史"],
 5  "question_info": "当前错题",
 6  "features": {
 7    "overall_acc": 0.80,
 8    "recent_acc": 0.65,
 9    "related_concept_acc": 1.0,
10    "related_concept_count": 5,
11    "related_last_correct_interval_days": 11,
12    "cur_question_error_rate": 0.20
13  }
14}

3. 人工构建 Gold 评测数据

输入: 学生历史、当前错题及相关统计特征。

由两名教育专家独立标注,存在分歧时由第三名专家仲裁。

3.1 Memory:生成三个历史记忆问题

专家 A 和专家 B 分别阅读学生的历史答题记录,独立设计三个问题及其标准答案

类型目标示例
Q1:信息提取检索单条历史事实10 月 11 日 Q136 的作答结果是什么?
Q2:跨记录推理综合多条历史信息10 月 11 日一共完成多少道相关知识点题目?
Q3:幻觉检测判断不存在的信息学生 Q999 的题目内容是什么?

每个问题均由专家给出标准答案,Q3 不存在的信息对应 Unknown。

3.2 Diagnosis:标注错误原因

专家根据历史证据,从四个类别中选择一个:

诊断标签含义对应教学策略
Recall Failure遗忘或知识提取失败Retrieval Practice
Conceptual Gap概念理解不足Conceptual Explanation
Procedural Error解题步骤或程序执行错误Stepwise Scaffolding
Transfer Deficit知识迁移能力不足Analogical Transfer

同时给出诊断依据 reason。

3.3 Teaching:编写参考教学回复

专家根据诊断结果和对应教学策略,编写个性化教学回复 content。

要求结合学生的真实历史表现,采用与诊断相匹配的教学方式。

最终输出: human_an_updated.jsonl

 1{
 2  "_key": "样本唯一标识",
 3  "memory": [
 4    {"id": "Q1", "query": "...", "answer": "..."},
 5    {"id": "Q2", "query": "...", "answer": "..."},
 6    {"id": "Q3", "query": "...", "answer": "Unknown"}
 7  ],
 8  "diagnosis": "Recall Failure",
 9  "reason": "历史相关题目全部正确,但长时间后在基础题上出错",
10  "strategy": "Retrieval Practice",
11  "content": "结合学生历史的参考教学回复"
12}

4. 被测 AI Tutor 推理

输入:

  • history_features_lastq.jsonl
  • human_an_updated.jsonl

根据 _key 匹配样本。

发送给被测模型:

  1. 完整的 199 条学生历史。
  2. 当前错题的信息。
  3. 三个 Memory 问题(不包含答案)。
  4. 四种诊断类型及教学策略的定义。

默认不提供预计算的统计特征,也不提供 Gold 诊断或参考教学回复。

模型一次调用完成三个任务:

 1{
 2  "memory": [
 3    {"id": "Q1", "answer": "正确"},
 4    {"id": "Q2", "answer": "3道"},
 5    {"id": "Q3", "answer": "Unknown"}
 6  ],
 7  "diagnosis": "Conceptual Gap",
 8  "reason": "学生可能没有理解面积公式",
 9  "strategy": "Conceptual Explanation",
10  "content": "模型生成的个性化教学回复"
11}

输出: preds.jsonl

5. 模型输出评测

输入:

  • preds.jsonl:模型预测结果。
  • human_an_updated.jsonl:人工 Gold 标注。
5.1 Memory Accuracy

分别比较 Q1、Q2、Q3 的模型答案与 Gold 答案。

  • 优先使用标准化字符串精确匹配。
  • 不匹配时,使用 LLM Judge 判断语义是否一致。
Memory Accuracy=正确回答数量问题总数 \text{Memory Accuracy}= \frac{\text{正确回答数量}}{\text{问题总数}}
5.2 Diagnosis Accuracy / Macro-F1

比较模型诊断类别与人工 Gold 标签。

  • 单样本:判断诊断是否正确。
  • 全数据集:计算 Accuracy 和四分类 Macro-F1。
5.3 Teaching Quality

将模型教学回复与人工参考回复交给 LLM Judge,从四个维度评分(1~5):

  1. History Utilization:是否利用学生历史。
  2. Strategy Alignment:是否符合教学策略。
  3. Coherence:教学内容是否连贯。
  4. Comprehension:教学内容是否易于理解。
Teaching Score=S1+S2+S3+S44 \text{Teaching Score}= \frac{S_1+S_2+S_3+S_4}{4}

此外计算 ROUGE-L 作为辅助指标。

输出: metrics.jsonl,以及整个测试集的汇总指标。