{"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/the-generalized-eigenvalue-problem-as-a-nash","title":"The Symmetric Generalized Eigenvalue Problem as a Nash Equilibrium","arxiv_id":"2206.04993","date":"2022-06-10","proceeding":null,"authors":["Ian Gemp","Charlie Chen","Brian McWilliams"],"abstract":"The symmetric generalized eigenvalue problem (SGEP) is a fundamental concept in numerical linear algebra. It captures the solution of many classical machine learning problems such as canonical correlation analysis, independent components analysis, partial least squares, linear discriminant analysis, principal components and others. Despite this, most general solvers are prohibitively expensive when dealing with streaming data sets (i.e., minibatches) and research has instead concentrated on finding efficient solutions to specific problem instances. In this work, we develop a game-theoretic formulation of the top-$k$ SGEP whose Nash equilibrium is the set of generalized eigenvectors. We also present a parallelizable algorithm with guaranteed asymptotic convergence to the Nash. Current state-of-the-art methods require $O(d^2k)$ runtime complexity per iteration which is prohibitively expensive when the number of dimensions ($d$) is large. We show how to modify this parallel approach to achieve $O(dk)$ runtime complexity. Empirically we demonstrate that this resulting algorithm is able to solve a variety of SGEP problem instances including a large-scale analysis of neural network activations.","url_abs":"https://arxiv.org/abs/2206.04993v2","url_pdf":"https://arxiv.org/pdf/2206.04993v2.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":[],"tasks":[{"task_slug":"2k","task_name":"2k"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2206.04993","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.04993"}},"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":"deterministic:regex_extraction","url":"https://github.com/deepmind/eigengame","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"found_in_text":{"samples":6,"ran":0,"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":"c12c16f5e0f85b9a","entry":"create_sharded_identity","repo":"deepmind/eigengame","repo_kind":"found_in_text","path":"eigengame/eg_gradients.py","file_url":"https://github.com/deepmind/eigengame/blob/HEAD/eigengame/eg_gradients.py","link_basis":"harvester_set","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":"c12c16f5e0f85b9a"}},{"code_sha256_prefix":"06052f1a34d1ea55","entry":"create_sharded_mask","repo":"deepmind/eigengame","repo_kind":"found_in_text","path":"eigengame/eg_gradients.py","file_url":"https://github.com/deepmind/eigengame/blob/HEAD/eigengame/eg_gradients.py","link_basis":"harvester_set","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":"06052f1a34d1ea55"}},{"code_sha256_prefix":"13c3b743e22f5450","entry":"decaying_schedule_with_warmup","repo":"deepmind/eigengame","repo_kind":"found_in_text","path":"eigengame/eg_experiment.py","file_url":"https://github.com/deepmind/eigengame/blob/HEAD/eigengame/eg_experiment.py","link_basis":"harvester_set","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":"13c3b743e22f5450"}},{"code_sha256_prefix":"e3a3b89a6b077d47","entry":"get_spherical_gradients","repo":"deepmind/eigengame","repo_kind":"found_in_text","path":"eigengame/eg_utils.py","file_url":"https://github.com/deepmind/eigengame/blob/HEAD/eigengame/eg_utils.py","link_basis":"harvester_set","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":"e3a3b89a6b077d47"}},{"code_sha256_prefix":"02b593f810e5090d","entry":"init_aux_variables","repo":"deepmind/eigengame","repo_kind":"found_in_text","path":"eigengame/eg_utils.py","file_url":"https://github.com/deepmind/eigengame/blob/HEAD/eigengame/eg_utils.py","link_basis":"harvester_set","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":"02b593f810e5090d"}},{"code_sha256_prefix":"dd5bb5d7aa8125fb","entry":"normalize_eigenvectors","repo":"deepmind/eigengame","repo_kind":"found_in_text","path":"eigengame/eg_utils.py","file_url":"https://github.com/deepmind/eigengame/blob/HEAD/eigengame/eg_utils.py","link_basis":"harvester_set","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":"dd5bb5d7aa8125fb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}