{"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/low-rank-bandit-methods-for-high-dimensional","title":"Low-Rank Bandit Methods for High-Dimensional Dynamic Pricing","arxiv_id":"1801.10242","date":"2018-01-30","proceeding":"NeurIPS 2019 12","authors":["Jonas Mueller","Vasilis Syrgkanis","Matt Taddy"],"abstract":"We consider dynamic pricing with many products under an evolving but low-dimensional demand model. Assuming the temporal variation in cross-elasticities exhibits low-rank structure based on fixed (latent) features of the products, we show that the revenue maximization problem reduces to an online bandit convex optimization with side information given by the observed demands. We design dynamic pricing algorithms whose revenue approaches that of the best fixed price vector in hindsight, at a rate that only depends on the intrinsic rank of the demand model and not the number of products. Our approach applies a bandit convex optimization algorithm in a projected low-dimensional space spanned by the latent product features, while simultaneously learning this span via online singular value decomposition of a carefully-crafted matrix containing the observed demands.","url_abs":"https://arxiv.org/abs/1801.10242v2","url_pdf":"https://arxiv.org/pdf/1801.10242v2.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":"low-rank-bandit-methods-for-high-dimensional","repo_url":"https://github.com/jwmueller/BanditDynamicPricing","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"high","task_name":"Vocal Bursts Intensity Prediction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1801.10242","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1801.10242"}},"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/jwmueller/BanditDynamicPricing","reach":null}],"summary":{"ran_fixture":2,"unverified":1},"by_repo_kind":{"listed":{"samples":3,"ran":2,"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":"ada9969a8479276c","entry":"GDG","repo":"jwmueller/BanditDynamicPricing","repo_kind":"listed","path":"BanditPricing.py","file_url":"https://github.com/jwmueller/BanditDynamicPricing/blob/HEAD/BanditPricing.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ada9969a8479276c"}},{"code_sha256_prefix":"4b5d64da1e73de1e","entry":"OPOK","repo":"jwmueller/BanditDynamicPricing","repo_kind":"listed","path":"BanditPricing.py","file_url":"https://github.com/jwmueller/BanditDynamicPricing/blob/HEAD/BanditPricing.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4b5d64da1e73de1e"}},{"code_sha256_prefix":"963ac60a28d42f89","entry":"OPOKprevprice","repo":"jwmueller/BanditDynamicPricing","repo_kind":"listed","path":"BanditPricing.py","file_url":"https://github.com/jwmueller/BanditDynamicPricing/blob/HEAD/BanditPricing.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":"963ac60a28d42f89"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}