{"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/hyperparameter-optimization-can-even-be","title":"Hyperparameter Optimization Can Even be Harmful in Off-Policy Learning and How to Deal with It","arxiv_id":"2404.15084","date":"2024-04-23","proceeding":null,"authors":["Yuta Saito","Masahiro Nomura"],"abstract":"There has been a growing interest in off-policy evaluation in the literature such as recommender systems and personalized medicine. We have so far seen significant progress in developing estimators aimed at accurately estimating the effectiveness of counterfactual policies based on biased logged data. However, there are many cases where those estimators are used not only to evaluate the value of decision making policies but also to search for the best hyperparameters from a large candidate space. This work explores the latter hyperparameter optimization (HPO) task for off-policy learning. We empirically show that naively applying an unbiased estimator of the generalization performance as a surrogate objective in HPO can cause an unexpected failure, merely pursuing hyperparameters whose generalization performance is greatly overestimated. We then propose simple and computationally efficient corrections to the typical HPO procedure to deal with the aforementioned issues simultaneously. Empirical investigations demonstrate the effectiveness of our proposed HPO algorithm in situations where the typical procedure fails severely.","url_abs":"https://arxiv.org/abs/2404.15084v1","url_pdf":"https://arxiv.org/pdf/2404.15084v1.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":"decision-making","task_name":"Decision Making"},{"task_slug":"hyperparameter-optimization","task_name":"Hyperparameter Optimization"},{"task_slug":"off-policy-evaluation","task_name":"Off-policy evaluation"},{"task_slug":"recommendation-systems","task_name":"Recommendation Systems"},{"task_slug":null,"task_name":"counterfactual"}],"methods":[{"method_slug":"hpo","method_name":"HPO"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.15084","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.15084"}},"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/st-tech/zr-obp","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":4,"unverified":5},"by_repo_kind":{"found_in_text":{"samples":9,"ran":4,"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":"c923dce25aad53dd","entry":"convert_to_action_dist","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/utils.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c923dce25aad53dd"}},{"code_sha256_prefix":"a1f2bd7d1acda181","entry":"estimate_confidence_interval_by_bootstrap","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/utils.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a1f2bd7d1acda181"}},{"code_sha256_prefix":"5ae885b38baf7e63","entry":"sample_action_fast","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/utils.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5ae885b38baf7e63"}},{"code_sha256_prefix":"4fa7b27a8c130446","entry":"sample_random_uniform_coefficients","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/dataset/synthetic.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/dataset/synthetic.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4fa7b27a8c130446"}},{"code_sha256_prefix":"0b2a873bf9ce492b","entry":"linear_behavior_policy_continuous","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/dataset/synthetic_continuous.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/dataset/synthetic_continuous.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":"0b2a873bf9ce492b"}},{"code_sha256_prefix":"8030be7b385db03a","entry":"linear_reward_funcion_continuous","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/dataset/synthetic_continuous.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/dataset/synthetic_continuous.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":"8030be7b385db03a"}},{"code_sha256_prefix":"628f213ec1c901a2","entry":"logistic_polynomial_reward_function","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/dataset/synthetic.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/dataset/synthetic.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":"628f213ec1c901a2"}},{"code_sha256_prefix":"99116d6ac9c6fa92","entry":"logistic_reward_function","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/dataset/synthetic.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/dataset/synthetic.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":"99116d6ac9c6fa92"}},{"code_sha256_prefix":"ad68c45f6b6ffe98","entry":"quadratic_reward_funcion_continuous","repo":"st-tech/zr-obp","repo_kind":"found_in_text","path":"obp/dataset/synthetic_continuous.py","file_url":"https://github.com/st-tech/zr-obp/blob/HEAD/obp/dataset/synthetic_continuous.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":"ad68c45f6b6ffe98"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}