Papers › Glance and Focus: Memory Prompting for Multi-Event Video Question Answering

Glance and Focus: Memory Prompting for Multi-Event Video Question Answering

3 Jan 2024NeurIPS 2023 11arXiv:2401.01529archive 2025-07-28

Ziyi Bai, Ruiping Wang, Xilin Chen

Video Question Answering (VideoQA) has emerged as a vital tool to evaluate agents' ability to understand human daily behaviors. Despite the recent success of large vision language models in many multi-modal tasks, complex situation reasoning over videos involving multiple human-object interaction events still remains challenging. In contrast, humans can easily tackle it by using a series of episode memories as anchors to quickly locate question-related key moments for reasoning. To mimic this effective reasoning strategy, we propose the Glance-Focus model. One simple way is to apply an action detection model to predict a set of actions as key memories. However, these actions within a closed set vocabulary are hard to generalize to various video domains. Instead of that, we train an Encoder-Decoder to generate a set of dynamic event memories at the glancing stage. Apart from using supervised bipartite matching to obtain the event memories, we further design an unsupervised memory generation method to get rid of dependence on event annotations. Next, at the focusing stage, these event memories act as a bridge to establish the correlation between the questions with high-level event concepts and low-level lengthy video content. Given the question, the model first focuses on the generated key event memory, then focuses on the most relevant moment for reasoning through our designed multi-level cross-attention mechanism. We conduct extensive experiments on four Multi-Event VideoQA benchmarks including STAR, EgoTaskQA, AGQA, and NExT-QA. Our proposed model achieves state-of-the-art results, surpassing current large models in various challenging reasoning tasks. The code and models are available at https://github.com/ByZ0e/Glance-Focus.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2401.01529")

Code

Syntology Ran 9 of 18 code samples harvested from 1 repository linked to this paper; 9 have no recorded run. Of those that ran: 1 ran · violated contract; 8 ran with no contract checked.

By repository: official repository: 18 samples from 1 repository, 9 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

byz0e/glance-focus officialmentioned in papermentioned on GitHubpytorchMIT report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

18 samples harvested; 9 ran; 0 honoured the contract we drafted; 9 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · violated contract
8ran
9unverified

Licence: 0 of the 18 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from byz0e/glance-focus. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

FCNet byz0e/glance-focus/model/glance_focus.py official repository ran · metamorphic tier: deterministic fingerprinted MIT (permissive) · d725dcf4cf20da7f · report
GF byz0e/glance-focus/model/glance_focus.py official repository ran · metamorphic tier: deterministic MIT (permissive) · 440bd21060030be0 · report
chunk_list ByZ0e/Glance-Focus/dataset/agqa.py official repository ran MIT (permissive) · c61a34a3c9e0df91 · report
collate_func ByZ0e/Glance-Focus/dataset/egotaskqa.py official repository ran MIT (permissive) · 6941a4a46f03fa07 · report
flat_list_of_lists ByZ0e/Glance-Focus/dataset/nextqa.py official repository ran MIT (permissive) · cef10190a6f8f7e9 · report
span_cxw_to_xx ByZ0e/Glance-Focus/utils/span_utils.py official repository ran · violated contract fingerprinted MIT (permissive) · b7639c2e8b83837b · report
span_xx_to_cxw ByZ0e/Glance-Focus/dataset/egotaskqa.py official repository ran fingerprinted MIT (permissive) · 93d1fd5afccb1ea1 · report
tokenize ByZ0e/Glance-Focus/dataset/nextqa.py official repository ran MIT (permissive) · c31fe80a1b2ba813 · report
videoqa_collate_fn ByZ0e/Glance-Focus/dataset/nextqa.py official repository ran MIT (permissive) · bab1acae729c21cf · report
build_transformer ByZ0e/Glance-Focus/model/transformer_gf.py official repository unverified MIT (permissive) · e66b5e8b24dfea32 · report
load_imgs ByZ0e/Glance-Focus/utils/basic_utils.py official repository unverified MIT (permissive) · 1eee3af921bc5d88 · report
load_json ByZ0e/Glance-Focus/utils/basic_utils.py official repository unverified MIT (permissive) · bace1acf5a748097 · report
load_pickle ByZ0e/Glance-Focus/utils/basic_utils.py official repository unverified MIT (permissive) · 7de9d66696a307eb · report
mk_input_group ByZ0e/Glance-Focus/dataset/agqa.py official repository unverified MIT (permissive) · 6381e6df15302a0e · report
repeat_tensor_rows ByZ0e/Glance-Focus/dataset/agqa.py official repository unverified MIT (permissive) · bffb542b7e13c786 · report
sorter byz0e/glance-focus/train_glance_focus_sup.py official repository unverified MIT (permissive) · 0b0c5cf51bc1e61f · report
span_xx_to_cxw ByZ0e/Glance-Focus/utils/span_utils.py official repository unverified MIT (permissive) · 7114f025044af9b4 · report
temporal_iou ByZ0e/Glance-Focus/utils/span_utils.py official repository unverified MIT (permissive) · e4ae5582a2533cdb · report

Tasks

Action DetectionHuman-Object Interaction DetectionQuestion AnsweringVideo Question Answering

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Question Answering EgoTaskQA GF(sup) Direct 44.27 #2 of 4 Archive leaderboard report
Question Answering EgoTaskQA GF(uns) Direct 43.06 #3 of 4 Archive leaderboard report
Video Question Answering AGQA 2.0 balanced GF (sup) - Faster RCNN Average Accuracy 55.08 #1 of 8 Archive leaderboard report
Video Question Answering AGQA 2.0 balanced GF (uns) - S3D Average Accuracy 53.33 #3 of 8 Archive leaderboard report
Video Question Answering AGQA 2.0 balanced AIO - ViT Average Accuracy 48.59 #7 of 8 Archive leaderboard report
Video Question Answering NExT-QA GF Accuracy 58.83 #38 of 47 Archive leaderboard report
Video Question Answering STAR Benchmark GF(sup) Average Accuracy 53.94 #5 of 17 Archive leaderboard report
Video Question Answering STAR Benchmark GF(uns) Average Accuracy 53.86 #6 of 17 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

SET

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections