{"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/scalable-sampling-for-nonsymmetric-1","title":"Scalable Sampling for Nonsymmetric Determinantal Point Processes","arxiv_id":"2201.08417","date":"2022-01-20","proceeding":"ICLR 2022 4","authors":["Insu Han","Mike Gartrell","Jennifer Gillenwater","Elvis Dohmatob","Amin Karbasi"],"abstract":"A determinantal point process (DPP) on a collection of $M$ items is a model, parameterized by a symmetric kernel matrix, that assigns a probability to every subset of those items. Recent work shows that removing the kernel symmetry constraint, yielding nonsymmetric DPPs (NDPPs), can lead to significant predictive performance gains for machine learning applications. However, existing work leaves open the question of scalable NDPP sampling. There is only one known DPP sampling algorithm, based on Cholesky decomposition, that can directly apply to NDPPs as well. Unfortunately, its runtime is cubic in $M$, and thus does not scale to large item collections. In this work, we first note that this algorithm can be transformed into a linear-time one for kernels with low-rank structure. Furthermore, we develop a scalable sublinear-time rejection sampling algorithm by constructing a novel proposal distribution. Additionally, we show that imposing certain structural constraints on the NDPP kernel enables us to bound the rejection rate in a way that depends only on the kernel rank. In our experiments we compare the speed of all of these samplers for a variety of real-world tasks.","url_abs":"https://arxiv.org/abs/2201.08417v2","url_pdf":"https://arxiv.org/pdf/2201.08417v2.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":"scalable-sampling-for-nonsymmetric-1","repo_url":"https://github.com/insuhan/nonsymmetric-dpp-sampling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"scalable-sampling-for-nonsymmetric-1","repo_url":"https://github.com/insuhan/ndpp-mcmc-sampling","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"point-processes","task_name":"Point Processes"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2201.08417","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2201.08417"}},"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/cgartrel/scalable-nonsymmetric-DPPs","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/insuhan/nonsymmetric-dpp-sampling","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/insuhan/ndpp-mcmc-sampling","reach":null}],"summary":{"ran_draft_wrong":3,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1},"found_in_text":{"samples":1,"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":"bc29204cbb1f28dd","entry":"rejection_sampling_ndpp","repo":"insuhan/nonsymmetric-dpp-sampling","repo_kind":"official","path":"sampling/rejection_sampling.py","file_url":"https://github.com/insuhan/nonsymmetric-dpp-sampling/blob/HEAD/sampling/rejection_sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc29204cbb1f28dd"}},{"code_sha256_prefix":"7ef05ef3700151b8","entry":"tree_sampling_dpp","repo":"insuhan/nonsymmetric-dpp-sampling","repo_kind":"official","path":"sampling/rejection_sampling.py","file_url":"https://github.com/insuhan/nonsymmetric-dpp-sampling/blob/HEAD/sampling/rejection_sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7ef05ef3700151b8"}},{"code_sha256_prefix":"b2d09fcf4adc9005","entry":"update_query_matrix","repo":"insuhan/nonsymmetric-dpp-sampling","repo_kind":"official","path":"sampling/rejection_sampling.py","file_url":"https://github.com/insuhan/nonsymmetric-dpp-sampling/blob/HEAD/sampling/rejection_sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b2d09fcf4adc9005"}},{"code_sha256_prefix":"e516066bb6b946e8","entry":"NonSymmetricDPPSampler","repo":"cgartrel/scalable-nonsymmetric-DPPs","repo_kind":"found_in_text","path":"src/nonsymmetric_dpp_sampling.py","file_url":"https://github.com/cgartrel/scalable-nonsymmetric-DPPs/blob/HEAD/src/nonsymmetric_dpp_sampling.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e516066bb6b946e8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}