{"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/loss-rescaling-vqa-revisiting-language-prior","title":"Loss re-scaling VQA: Revisiting the LanguagePrior Problem from a Class-imbalance View","arxiv_id":"2010.16010","date":"2020-10-30","proceeding":null,"authors":["Yangyang Guo","Liqiang Nie","Zhiyong Cheng","Qi Tian","Min Zhang"],"abstract":"Recent studies have pointed out that many well-developed Visual Question Answering (VQA) models are heavily affected by the language prior problem, which refers to making predictions based on the co-occurrence pattern between textual questions and answers instead of reasoning visual contents. To tackle it, most existing methods focus on enhancing visual feature learning to reduce this superficial textual shortcut influence on VQA model decisions. However, limited effort has been devoted to providing an explicit interpretation for its inherent cause. It thus lacks a good guidance for the research community to move forward in a purposeful way, resulting in model construction perplexity in overcoming this non-trivial problem. In this paper, we propose to interpret the language prior problem in VQA from a class-imbalance view. Concretely, we design a novel interpretation scheme whereby the loss of mis-predicted frequent and sparse answers of the same question type is distinctly exhibited during the late training phase. It explicitly reveals why the VQA model tends to produce a frequent yet obviously wrong answer, to a given question whose right answer is sparse in the training set. Based upon this observation, we further develop a novel loss re-scaling approach to assign different weights to each answer based on the training data statistics for computing the final loss. We apply our approach into three baselines and the experimental results on two VQA-CP benchmark datasets evidently demonstrate its effectiveness. In addition, we also justify the validity of the class imbalance interpretation scheme on other computer vision tasks, such as face recognition and image classification.","url_abs":"https://arxiv.org/abs/2010.16010v4","url_pdf":"https://arxiv.org/pdf/2010.16010v4.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":"loss-rescaling-vqa-revisiting-language-prior","repo_url":"https://github.com/guoyang9/class-imbalance-VQA","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"face-recognition","task_name":"Face Recognition"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"question-answering","task_name":"Question Answering"},{"task_slug":"visual-question-answering-1","task_name":"Visual Question Answering"},{"task_slug":"visual-question-answering","task_name":"Visual Question Answering (VQA)"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2010.16010","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2010.16010"}},"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/guoyang9/class-imbalance-VQA","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"official":{"samples":6,"ran":1,"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":"4bd23f3562cfbd1c","entry":"elementwise_logsumexp","repo":"guoyang9/class-imbalance-VQA","repo_kind":"official","path":"utils/losses.py","file_url":"https://github.com/guoyang9/class-imbalance-VQA/blob/HEAD/utils/losses.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":2,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4bd23f3562cfbd1c"}},{"code_sha256_prefix":"5250520f3498ea70","entry":"compute_score_with_logits","repo":"guoyang9/class-imbalance-VQA","repo_kind":"official","path":"train-css.py","file_url":"https://github.com/guoyang9/class-imbalance-VQA/blob/HEAD/train-css.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5250520f3498ea70"}},{"code_sha256_prefix":"c0ea72864a818321","entry":"convert_sigmoid_logits_to_binary_logprobs","repo":"guoyang9/class-imbalance-VQA","repo_kind":"official","path":"utils/losses.py","file_url":"https://github.com/guoyang9/class-imbalance-VQA/blob/HEAD/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c0ea72864a818321"}},{"code_sha256_prefix":"bd13bf1e7cf15819","entry":"cross_entropy_loss","repo":"guoyang9/class-imbalance-VQA","repo_kind":"official","path":"utils/losses.py","file_url":"https://github.com/guoyang9/class-imbalance-VQA/blob/HEAD/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bd13bf1e7cf15819"}},{"code_sha256_prefix":"b82f764aadc77b83","entry":"mask_softmax","repo":"guoyang9/class-imbalance-VQA","repo_kind":"official","path":"modules/attention.py","file_url":"https://github.com/guoyang9/class-imbalance-VQA/blob/HEAD/modules/attention.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b82f764aadc77b83"}},{"code_sha256_prefix":"1c77d8d458f0dcaa","entry":"saved_for_eval","repo":"guoyang9/class-imbalance-VQA","repo_kind":"official","path":"train-css.py","file_url":"https://github.com/guoyang9/class-imbalance-VQA/blob/HEAD/train-css.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1c77d8d458f0dcaa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}