毕设的进一步方案

主线和任务整理

  • 毕设:潜在事件链推理
  • 期刊:在潜在事件链之上的多智能体协同因果推理

题目:基于多智能体协同的视频因果事件推理

这周,继续复现Flipped-VQA项目(把结构看了看,彻底跑通了原论文其他几个数据集),
准备复用:

  • 现成的 NExT-QA 数据流
  • 稳定的预提取特征读取方式
  • 可直接复用的初始 answerer

关于数据集事件链具体怎么建立的方案:

把视频统一表示成 T 个 clip 单元,再从这些 clip 自适应聚合出 K 个潜在事件节点。

(我想继续调研思考一下如何聚合,暂时没想好,打算边做边想)

这样一来

  • 在 MECD 这种有事件级监督的数据上,能学到更像“真实事件”的结构(之后那个数据集也可以用同样的结构);
  • 在 NExT-QA / Causal-VidQA 这种没有人工事件边界的 QA 数据上,仍然能工作。

关于目前具体的实施方案

模块 1:Grounder

输入:

  • 问题 q
  • 选项 o_k
  • 事件节点 e1...eK

输出:

  • 每个事件节点对该选项的支持度 g_k(i)

直白讲就是:
这个选项最依赖哪几个事件节点?

第一版可以用两层 MLP 或轻量 cross-attention,先不要搞复杂。

模块 2:Causal Linker

在每个选项自己的 top-M 事件节点上判断因果边。

默认建议:

  • topM = 4
  • 只允许 i < j
  • 也就是只考虑时间向前的有向边

边分数可以写成:

p_ij^(k) = sigmoid(MLP([e_i, e_j, q, o_k, Δt]))

这一步的直觉是:
不是全视频建一张大图,而是对每个选项单独找最支持它的因果结构

先不要做完整图搜索,第一版就搜链:

  • 长度 2
  • 长度 3

链分数 = 节点支持分数之和 + 边分数之和。

这样你就能得到每个选项的一条 best chain。

模块 4:Answerer

输入:

  • 全局视频表示
  • 问题表示
  • 选项表示
  • 该选项的链摘要表示

输出:

  • 该选项最终分数

这里工程上最稳的做法是:

  • 第一版直接复用你现有 Flipped-VQA 里的 answer scoring 逻辑
  • 论文里把它叫 base answerer
  • 后面想独立出来,再换成自己的 scorer

毕设版损失

建议直接用这个:

L_thesis = L_ans + 0.2 L_chain_rank + 0.1 L_chain_mask + 0.01 L_sparse

解释一下:

  • L_ans:正常答案分类损失
  • L_chain_rank:正确答案的 best chain 要比错误答案更强
  • L_chain_mask:把预测链遮掉,正确答案应该比遮随机链更受伤
  • L_sparse:约束不要选一大堆“伪关键事件”

之后进一步的工作计划,添加模块,提升可解释性和效果,最终目标是期刊:

模块 5:Verifier

Verifier 检查三件事:

1)覆盖度

链上的节点是不是 Grounder 认为的高相关节点。

2)自洽性

链上的边是不是方向一致、分数一致为正。

3)必要性

把 best chain 上的事件 mask 掉,再看正确答案分数下降多少。
同时做一个随机 mask 对照。

定义:

  • drop_chain
  • drop_rand

你的目标是:

drop_chain > drop_rand

这一步的意义非常直接:
真正关键的因果链被拿掉后,正确答案应该更受伤。NExT-GQA 之所以对你重要,就是因为它把“证据对不对”这件事单独拉了出来;作者也明确指出,很多模型虽然 QA 分高,但 grounding 很弱。你的 Verifier 正好是在补这个缺口。([arXiv][4])

模块 6:Organizer

这一步才真正把它写成“多智能体协同”。

V1:规则版 Organizer

先不学,直接按题型路由。

在 NExT-QA 上:

  • descriptive → route 0:Answerer only
  • temporal → route 1:Grounder + Answerer
  • causal → route 2:Grounder + Causal Linker + Verifier + Answerer

在 Causal-VidQA 上:

  • description → route 0
  • explanation → route 2
  • prediction / counterfactual → route 2

这样做很自然,因为 NExT-QA 和 Causal-VidQA 本身都带有题型划分。Causal-VidQA 一共 107,600 个 QA,对 description / explanation / prediction / counterfactual 做了明确区分,这正好适合作为 Organizer 的外部验证集。

V2:学习版 Organizer

等规则版跑稳后,再做一个小分类器:

输入:

  • question text embedding

输出:

  • route 0 / 1 / 2
  • 可选预算 budget ∈ {2,4,6}

损失加一项:

L_route

再加一个轻量代价惩罚:

L_cost

于是期刊版总损失可以写成:

L_journal = L_ans + 0.2 L_rank + 0.1 L_int + 0.05 L_route + 0.01 L_cost + 0.01 L_sparse

其中如果你在 MECD 上做了 causal edge 预训练,那 L_edge 在预训练阶段单独加,不一定非要在 NExT-QA 联训时一起加。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇