{"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/autofis-automatic-feature-interaction","title":"AutoFIS: Automatic Feature Interaction Selection in Factorization Models for Click-Through Rate Prediction","arxiv_id":"2003.11235","date":"2020-03-25","proceeding":null,"authors":["Bin Liu","Chenxu Zhu","Guilin Li","Wei-Nan Zhang","Jincai Lai","Ruiming Tang","Xiuqiang He","Zhenguo Li","Yong Yu"],"abstract":"Learning feature interactions is crucial for click-through rate (CTR) prediction in recommender systems. In most existing deep learning models, feature interactions are either manually designed or simply enumerated. However, enumerating all feature interactions brings large memory and computation cost. Even worse, useless interactions may introduce noise and complicate the training process. In this work, we propose a two-stage algorithm called Automatic Feature Interaction Selection (AutoFIS). AutoFIS can automatically identify important feature interactions for factorization models with computational cost just equivalent to training the target model to convergence. In the \\emph{search stage}, instead of searching over a discrete set of candidate feature interactions, we relax the choices to be continuous by introducing the architecture parameters. By implementing a regularized optimizer over the architecture parameters, the model can automatically identify and remove the redundant feature interactions during the training process of the model. In the \\emph{re-train stage}, we keep the architecture parameters serving as an attention unit to further boost the performance. Offline experiments on three large-scale datasets (two public benchmarks, one private) demonstrate that AutoFIS can significantly improve various FM based models. AutoFIS has been deployed onto the training platform of Huawei App Store recommendation service, where a 10-day online A/B test demonstrated that AutoFIS improved the DeepFM model by 20.3\\% and 20.1\\% in terms of CTR and CVR respectively.","url_abs":"https://arxiv.org/abs/2003.11235v3","url_pdf":"https://arxiv.org/pdf/2003.11235v3.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":"autofis-automatic-feature-interaction","repo_url":"https://github.com/zhuchenxv/AutoFIS","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"autofis-automatic-feature-interaction","repo_url":"https://github.com/lucasthim/auto-fuzzy","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"paper_slug":"autofis-automatic-feature-interaction","repo_url":"https://github.com/MindSpore-scientific-2/code-9/tree/main/Automatic-Feature-Interaction","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"autofis-automatic-feature-interaction","repo_url":"https://github.com/MindSpore-scientific/code-12/tree/main/Alexnet-ABeffect","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"autofis-automatic-feature-interaction","repo_url":"https://github.com/PaddlePaddle/PaddleRec/tree/master/models/rank/autofis","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":null},{"paper_slug":"autofis-automatic-feature-interaction","repo_url":"https://github.com/renmada/PaddleRec/tree/autofis/models/rank/autofis","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"click-through-rate-prediction","task_name":"Click-Through Rate Prediction"},{"task_slug":"recommendation-systems","task_name":"Recommendation Systems"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/click-through-rate-prediction-on-criteo","task":"Click-Through Rate Prediction","dataset":"Criteo","model":"AutoDeepFM(3rd)","rank_in_archive_order":32,"of":39,"metrics":{"AUC":"0.8010","Log Loss":"0.5405"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.11235","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.11235"}},"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/lucasthim/auto-fuzzy","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PaddlePaddle/PaddleRec/tree/master/models/rank/autofis","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-scientific/code-12/tree/main/Alexnet-ABeffect","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/renmada/PaddleRec/tree/autofis/models/rank/autofis","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-scientific-2/code-9/tree/main/Automatic-Feature-Interaction","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zhuchenxv/AutoFIS","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"unverified":23},"by_repo_kind":{"listed":{"samples":24,"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":0,"samples":[{"code_sha256_prefix":"bf6088a6a68ef09c","entry":"convert_by_vocab","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/Beauty/data_augment_candi_gen.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/Beauty/data_augment_candi_gen.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bf6088a6a68ef09c"}},{"code_sha256_prefix":"bb3abf278ffb87ad","entry":"activation_func","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/card_func.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/card_func.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"bb3abf278ffb87ad"}},{"code_sha256_prefix":"164202595da6a703","entry":"build_map","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/amazonElec_Din/remap_id.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/amazonElec_Din/remap_id.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":"164202595da6a703"}},{"code_sha256_prefix":"2b2f31754782bbf6","entry":"card_func","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/card_func.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/card_func.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2b2f31754782bbf6"}},{"code_sha256_prefix":"89ad1d70567c19ee","entry":"card_hybrid_func","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/card_func.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/card_func.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"89ad1d70567c19ee"}},{"code_sha256_prefix":"5e55f3efc3e2a2f8","entry":"check_duplicate_rules","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/utils.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5e55f3efc3e2a2f8"}},{"code_sha256_prefix":"40f27ab16a8578a7","entry":"check_if_inside","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/utils.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"40f27ab16a8578a7"}},{"code_sha256_prefix":"3e1f263053e0bc1c","entry":"create_NETFLIX_data_timesplit","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/Netflix_deeprec/netflix_data_convert.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/Netflix_deeprec/netflix_data_convert.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":"3e1f263053e0bc1c"}},{"code_sha256_prefix":"928d8fadc3a9fe9b","entry":"data_partition","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/Beauty/data_augment_candi_gen.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/Beauty/data_augment_candi_gen.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":"928d8fadc3a9fe9b"}},{"code_sha256_prefix":"a0b7f1e78ffff426","entry":"find_rules_by_antecedent","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/changeParameterAutoMFIS.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/changeParameterAutoMFIS.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a0b7f1e78ffff426"}},{"code_sha256_prefix":"b0a4669173a5fc3d","entry":"fun1","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/census/data_preparation.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/census/data_preparation.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":"b0a4669173a5fc3d"}},{"code_sha256_prefix":"4b20e0a2441ecb28","entry":"fun2","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/census/data_preparation.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/census/data_preparation.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":"4b20e0a2441ecb28"}},{"code_sha256_prefix":"e192b64a7c6ac2de","entry":"load_graph","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/AmazonBook/preprocess.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/AmazonBook/preprocess.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":"e192b64a7c6ac2de"}},{"code_sha256_prefix":"17d533ffea6cedc9","entry":"mape","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/changeParameterAutoMFIS.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/changeParameterAutoMFIS.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"17d533ffea6cedc9"}},{"code_sha256_prefix":"e4dbe9646176983b","entry":"printable_text","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/Beauty/data_augment_candi_gen.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/Beauty/data_augment_candi_gen.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":"e4dbe9646176983b"}},{"code_sha256_prefix":"76b49ab2604e48fe","entry":"rearranje_rules","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/utils.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"76b49ab2604e48fe"}},{"code_sha256_prefix":"58f15678741b6ea5","entry":"smape","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/changeParameterAutoMFIS.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/changeParameterAutoMFIS.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"58f15678741b6ea5"}},{"code_sha256_prefix":"9b75a8fa7b3409a5","entry":"tnorm","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/tnorm.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/tnorm.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"9b75a8fa7b3409a5"}},{"code_sha256_prefix":"655170477e08f166","entry":"tnorm_minimum","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/tnorm.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/tnorm.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"655170477e08f166"}},{"code_sha256_prefix":"a405b1e8e770a992","entry":"tnorm_product","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/tnorm.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/tnorm.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a405b1e8e770a992"}},{"code_sha256_prefix":"37ad8d6ac78854dd","entry":"to_df","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/amazonElec_Din/convert_pd.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/amazonElec_Din/convert_pd.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":"37ad8d6ac78854dd"}},{"code_sha256_prefix":"f97b69dd2097cade","entry":"trapmf","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/basicfuzzy.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/basicfuzzy.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"f97b69dd2097cade"}},{"code_sha256_prefix":"e900c0356c108ee1","entry":"trimf","repo":"lucasthim/auto-fuzzy","repo_kind":"listed","path":"autoMFIS/basicfuzzy.py","file_url":"https://github.com/lucasthim/auto-fuzzy/blob/HEAD/autoMFIS/basicfuzzy.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"e900c0356c108ee1"}},{"code_sha256_prefix":"5d079a1802fd6cb9","entry":"word_count","repo":"renmada/PaddleRec","repo_kind":"listed","path":"datasets/ag_news/text2paddle.py","file_url":"https://github.com/renmada/PaddleRec/blob/HEAD/datasets/ag_news/text2paddle.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":"5d079a1802fd6cb9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}