{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/videotree-adaptive-tree-based-video","title":"VideoTree: Adaptive Tree-based Video Representation for LLM Reasoning on Long Videos","arxiv_id":"2405.19209","date":"2024-05-29","proceeding":"CVPR 2025 1","authors":["Ziyang Wang","Shoubin Yu","Elias Stengel-Eskin","Jaehong Yoon","Feng Cheng","Gedas Bertasius","Mohit Bansal"],"abstract":"Long-form video understanding has been a challenging task due to the high redundancy in video data and the abundance of query-irrelevant information. To tackle this challenge, we propose VideoTree, a training-free framework which builds a query-adaptive and hierarchical video representation for LLM reasoning over long-form videos. First, VideoTree extracts query-relevant information from the input video through an iterative process, progressively refining the selection of keyframes based on their relevance to the query. Furthermore, VideoTree leverages the inherent hierarchical structure of long video data, which is often overlooked by existing LLM-based methods. Specifically, we incorporate multigranularity information into a tree-based representation, allowing VideoTree to extract query-relevant details from long videos in a coarse-to-fine manner. This enables the model to effectively handle a wide range of video queries with varying levels of detail. Finally, VideoTree aggregates the hierarchical query-relevant information within the tree structure and feeds it into an LLM reasoning model to answer the query. Our experiments show that our training-free method improves both reasoning accuracy and efficiency compared to existing methods. Specifically, VideoTree outperforms the existing training-free approaches on the popular EgoSchema and NExT-QA benchmarks with less inference time, achieving 61.1% and 75.6% accuracy on the test set without additional video-specific training. Moreover, on the long split of Video-MME benchmark (average 44 minutes), the training-free VideoTree framework achieves better performance than the strong proprietary GPT-4V model and other MLLMs that were extensively trained on video data.","url_abs":"https://arxiv.org/abs/2405.19209v2","url_pdf":"https://arxiv.org/pdf/2405.19209v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"videotree-adaptive-tree-based-video","repo_url":"https://github.com/Ziyang412/VideoTree","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"EgoSchema"},{"task_slug":"mme","task_name":"MME"},{"task_slug":null,"task_name":"Video MME"},{"task_slug":"video-understanding","task_name":"Video Understanding"},{"task_slug":"zeroshot-video-question-answer","task_name":"Zero-Shot Video Question Answer"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/zero-shot-video-question-answer-on-egoschema-1","task":"Zero-Shot Video Question Answer","dataset":"EgoSchema (fullset)","model":"VideoTree (GPT4)","rank_in_archive_order":9,"of":29,"metrics":{"Accuracy":"61.1"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-video-question-answer-on-egoschema","task":"Zero-Shot Video Question Answer","dataset":"EgoSchema (subset)","model":"VideoTree (GPT4)","rank_in_archive_order":4,"of":14,"metrics":{"Accuracy":"66.2"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-video-question-answer-on-intentqa","task":"Zero-Shot Video Question Answer","dataset":"IntentQA","model":"VideoTree (GPT4)","rank_in_archive_order":5,"of":13,"metrics":{"Accuracy":"66.9"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-video-question-answer-on-next-qa","task":"Zero-Shot Video Question Answer","dataset":"NExT-QA","model":"VideoTree (GPT4)","rank_in_archive_order":6,"of":27,"metrics":{"Accuracy":"73.5"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.19209","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.19209"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Ziyang412/VideoTree","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":11},"by_repo_kind":{"official":{"samples":11,"ran":11,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"a16cc02636239688","entry":"build_fewshot_examples","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"util.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a16cc02636239688"}},{"code_sha256_prefix":"b92a31685a22299f","entry":"cosine_similarity","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"depth_expansion.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/depth_expansion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b92a31685a22299f"}},{"code_sha256_prefix":"863db1147f3fdd20","entry":"find_closest_points_in_temporal_order_subsub","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"depth_expansion.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/depth_expansion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"863db1147f3fdd20"}},{"code_sha256_prefix":"4cd91b167b647601","entry":"find_closest_points_per_cluster","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"adaptive_breath_expansion.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/adaptive_breath_expansion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4cd91b167b647601"}},{"code_sha256_prefix":"3c2914cfae3c5c3a","entry":"first_char_after_anchor","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"prompts.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3c2914cfae3c5c3a"}},{"code_sha256_prefix":"dd8763aca4a7d6b7","entry":"first_char_as_answer","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"prompts.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dd8763aca4a7d6b7"}},{"code_sha256_prefix":"e561f95df17f4c8b","entry":"hierarchical_clustering_with_external_primary","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"depth_expansion.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/depth_expansion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e561f95df17f4c8b"}},{"code_sha256_prefix":"036725c05a3d96f8","entry":"identity","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"prompts.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"036725c05a3d96f8"}},{"code_sha256_prefix":"ec6d415be2b2d979","entry":"load_frame_features","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"adaptive_breath_expansion.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/adaptive_breath_expansion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ec6d415be2b2d979"}},{"code_sha256_prefix":"658682feda4928a2","entry":"load_json","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"util.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"658682feda4928a2"}},{"code_sha256_prefix":"8080055de6293a6b","entry":"load_pkl","repo":"Ziyang412/VideoTree","repo_kind":"official","path":"util.py","file_url":"https://github.com/Ziyang412/VideoTree/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8080055de6293a6b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}