{"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/a-contextual-bandit-approach-to-personalized","title":"A Contextual-Bandit Approach to Personalized News Article Recommendation","arxiv_id":"1003.0146","date":"2010-02-28","proceeding":null,"authors":["Lihong Li","Wei Chu","John Langford","Robert E. Schapire"],"abstract":"Personalized web services strive to adapt their services (advertisements,\nnews articles, etc) to individual users by making use of both content and user\ninformation. Despite a few recent advances, this problem remains challenging\nfor at least two reasons. First, web service is featured with dynamically\nchanging pools of content, rendering traditional collaborative filtering\nmethods inapplicable. Second, the scale of most web services of practical\ninterest calls for solutions that are both fast in learning and computation.\n  In this work, we model personalized recommendation of news articles as a\ncontextual bandit problem, a principled approach in which a learning algorithm\nsequentially selects articles to serve users based on contextual information\nabout the users and articles, while simultaneously adapting its\narticle-selection strategy based on user-click feedback to maximize total user\nclicks.\n  The contributions of this work are three-fold. First, we propose a new,\ngeneral contextual bandit algorithm that is computationally efficient and well\nmotivated from learning theory. Second, we argue that any bandit algorithm can\nbe reliably evaluated offline using previously recorded random traffic.\nFinally, using this offline evaluation method, we successfully applied our new\nalgorithm to a Yahoo! Front Page Today Module dataset containing over 33\nmillion events. Results showed a 12.5% click lift compared to a standard\ncontext-free bandit algorithm, and the advantage becomes even greater when data\ngets more scarce.","url_abs":"http://arxiv.org/abs/1003.0146v2","url_pdf":"http://arxiv.org/pdf/1003.0146v2.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":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/Andy-TK/COMP90051_Project1","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/TenglunTan/Multi-armed-bandits","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/UnknownUnit/Bandits_project","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/akhadangi/Multi-armed-Bandits","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/antonismand/Personalized-News-Recommendation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/danilprov/batch-bandits","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/facebookresearch/ReAgent","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/informagi/AQA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/louis-monier/recommendation_engine","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/yanyangbaobeiIsEmma/Reinforcement-Learning-Contextual-Bandits","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/ray-project/ray/tree/master/rllib","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null},{"paper_slug":"a-contextual-bandit-approach-to-personalized","repo_url":"https://github.com/zhangluoyang/LinUCB","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"gone","observed_at":"2026-09-18","how":"tree_404+repo_404"}}],"tasks":[{"task_slug":"articles","task_name":"Articles"},{"task_slug":"collaborative-filtering","task_name":"Collaborative Filtering"},{"task_slug":"learning-theory","task_name":"Learning Theory"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1003.0146","atlas_url":"https://app.syntology.ai/?focus=1003.0146","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1003.0146"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/danilprov/batch-bandits","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/louis-monier/recommendation_engine","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/informagi/AQA","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TenglunTan/Multi-armed-bandits","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ray-project/ray/tree/master/rllib","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/UnknownUnit/Bandits_project","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/akhadangi/Multi-armed-Bandits","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/antonismand/Personalized-News-Recommendation","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zhangluoyang/LinUCB","reach":{"status":"gone","observed_at":"2026-09-18","how":"tree_404+repo_404"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yanyangbaobeiIsEmma/Reinforcement-Learning-Contextual-Bandits","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/facebookresearch/ReAgent","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Andy-TK/COMP90051_Project1","reach":{"status":"ok"}}],"summary":{"ran":1,"unverified":2},"by_repo_kind":{"listed":{"samples":3,"ran":1,"repositories":2}},"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":1,"samples":[{"code_sha256_prefix":"2df4798ead73ae05","entry":"BaseAgent","repo":"danilprov/batch-bandits","repo_kind":"listed","path":"CMAB/LinUCB.py","file_url":"https://github.com/danilprov/batch-bandits/blob/HEAD/CMAB/LinUCB.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":"2df4798ead73ae05"}},{"code_sha256_prefix":"95478b0eca18768a","entry":"LinUCB","repo":"antonismand/Personalized-News-Recommendation","repo_kind":"listed","path":"bandits.py","file_url":"https://github.com/antonismand/Personalized-News-Recommendation/blob/HEAD/bandits.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"95478b0eca18768a"}},{"code_sha256_prefix":"d7a419719dce112e","entry":"LinUCBAgent","repo":"danilprov/batch-bandits","repo_kind":"listed","path":"CMAB/LinUCB.py","file_url":"https://github.com/danilprov/batch-bandits/blob/HEAD/CMAB/LinUCB.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":"d7a419719dce112e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}