對於在線廣告,推薦系統和讚助搜索等各種工業應用程序,點擊率(CTR)預測是一項至關重要的任務。 Fuxictr為CTR預測提供了一個開源庫,具有可配置,可調性和可重複性的關鍵功能。我們希望該項目可以促進可重複的研究,並使該領域的研究人員和從業人員受益。
可配置:數據預處理和模型都是模塊化和可配置的。
可調:模型可以通過簡單的配置自動調整。
可重現:所有基準都可以輕鬆複製。
可擴展:它可以輕鬆地擴展到任何新型號,並支持Pytorch和Tensorflow框架。
| 不 | 出版品 | 模型 | 紙 | 基準 | 版本 |
|---|---|---|---|---|---|
| 功能交互模型 | |||||
| 1 | www'07 | LR | 預測點擊:估計新廣告的點擊率Microsoft | torch | |
| 2 | ICDM'10 | 調頻 | 分解機 | torch | |
| 3 | Cikm'13 | DSSM | 使用點擊數據Microsoft學習深層結構化語義模型,用於網絡搜索 | torch | |
| 4 | Cikm'15 | CCPM | 卷積點擊預測模型 | torch | |
| 5 | recsys'16 | FFM | CTR預測的現場感知分解機器 | torch | |
| 6 | recsys'16 | DNN | YouTube建議的深神經網絡Google | torch , tf | |
| 7 | DLRS'16 | 寬而深 | 推薦系統的廣泛學習和深度學習Google | torch , tf | |
| 8 | ICDM'16 | PNN | 用於用戶響應預測的基於產品的神經網絡 | torch | |
| 9 | KDD'16 | 深口字 | 深度交叉:網絡規模的建模無手動製作的組合功能Microsoft | torch | |
| 10 | Nips'16 | 霍夫姆 | 高階分解機 | torch | |
| 11 | ijcai'17 | DeepFM | DEEPFM:用於CTR預測的基於分解的神經網絡華為 | torch , tf | |
| 12 | Sigir'17 | NFM | 稀疏預測分析的神經分解機 | torch | |
| 13 | ijcai'17 | AFM | 注意力分解機:通過注意網絡學習特徵互動的重量 | torch | |
| 14 | ADKDD'17 | DCN | Deep&Cross Network進行廣告點擊預測Google | torch , tf | |
| 15 | www'18 | FWFM | 現場加權分解機器,用於顯示廣告宣誓,觸摸板,LinkedIn,阿里巴巴的點擊率預測 | torch | |
| 16 | KDD'18 | XDeepFM | XDEEPFM:組合推薦系統的顯式和隱式特徵交互作用Microsoft | torch | |
| 17 | Cikm'19 | 芬恩 | Fignn:通過圖神經網絡進行CTR預測的圖形神經網絡建模相互作用 | torch | |
| 18 | Cikm'19 | 自動/自動點+ | 自動點:通過自我牽手的神經網絡學習自動互動學習 | torch | |
| 19 | recsys'19 | 纖維 | fibinet:將特徵的重要性和雙線性特徵交互作用用於點擊率預測nina weibo | torch | |
| 20 | www'19 | fgcnn | 卷積神經網絡的功能生成,用於點擊率預測華為 | torch | |
| 21 | AAAI'19 | HFM/HFM+ | 全息分解機以推薦 | torch | |
| 22 | Arxiv'19 | DLRM | 深度學習推薦模型和推薦系統Facebook | torch | |
| 23 | NeuralNetworks'20 | Onn | 操作感知的用戶響應預測的神經網絡 | torch , tf | |
| 24 | AAAI'20 | afn/afn+ | 自適應分解網絡:學習自適應訂購特徵交互 | torch | |
| 25 | AAAI'20 | lorentzfm | 學習特徵與洛倫茲分校的互動eBay | torch | |
| 26 | WSDM'20 | 間 | 通過分層注意NEC實驗室,Google解釋的點擊率預測 | torch | |
| 27 | DLP-KDD'20 | flen | FLEN:利用字段用於可擴展的CTR預測騰訊 | torch | |
| 28 | Cikm'20 | Deepim | 深度互動機:一個簡單但有效的高級特徵互動模型阿里巴巴,Realai | torch | |
| 29 | www'21 | FMFM | FM^2:推薦系統的野外靜音分解機Yahoo | torch | |
| 30 | www'21 | DCN-V2 | DCN V2:改進了深層網絡和網絡規模學習的實用課程,以對系統進行排名Google | torch | |
| 31 | CIKM'21 | 注定 | 單擊率預測阿里巴巴的解開自我煽動的神經網絡 | torch | |
| 32 | CIKM'21 | EDCN | 通過平行深層CTR模型的信息共享增強明確和隱式特徵交互 | torch | |
| 33 | DLP-KDD'21 | 面具 | MASKNET:通過實例引導的Mask Sina Weibo將功能乘法引入CTR排名模型 | torch | |
| 34 | Sigir'21 | 山姆 | 再次查看CTR預測:您需要關注的一切嗎?老闆Zhipin | torch | |
| 35 | KDD'21 | aoanet | 用於在線建議的體系結構和操作自適應網絡DIDI CHUXING | torch | |
| 36 | AAAI'23 | FinalMLP | FinalMLP:CTR預測的增強的兩流MLP模型 | torch | |
| 37 | Sigir'23 | finalnet | 最終:CTR預測的分解交互層華為 | torch | |
| 38 | Sigir'23 | Eulernet | Eulernet:通過Euler的CTR預測公式的自適應特徵交互學習華為 | torch | |
| 39 | Cikm'23 | GDCN | 邁向CTR預測的更深層,更輕巧和可解釋的跨網絡Microsoft | torch | |
| 40 | ICML'24 | Wukong | Wukong:邁向大規模推薦的擴展法 | torch | |
| 行為序列建模 | |||||
| 42 | KDD'18 | 丁 | 點擊率預測的深度興趣網絡阿里巴巴 | torch | |
| 43 | AAAI'19 | 迪恩 | 點擊率預測阿里巴巴的深度興趣進化網絡 | torch | |
| 44 | DLP-KDD'19 | BST | 阿里巴巴阿里巴巴的電子商務推薦的行為序列變壓器 | torch | |
| 45 | Cikm'20 | Dmin | 點擊率預測阿里巴巴的深度多息網絡 | torch | |
| 46 | AAAI'20 | DMR | 深度匹配到個性化點擊率預測的排名模型阿里巴巴 | torch | |
| 47 | DLP-KDD'22 | ETA | 有效的長順序用戶數據建模,用於點擊率預測阿里巴巴 | torch | |
| 48 | Cikm'22 | SDIM | 對CTR預測的長期用戶行為進行建模是您所需的樣本 | torch | |
| 49 | KDD'23 | 辦理 | 交易:基於變壓器的實時用戶操作模型,用於Pinterest Pinterest的推薦 | torch | |
| 動態重量網絡 | |||||
| 50 | 神經22 | APG | APG:單擊率預測的自適應參數生成網絡阿里巴巴 | torch | |
| 51 | KDD'23 | ppnet | pepnet:參數和嵌入個性化網絡,用於注入個性化的先驗信息kuaishou | torch | |
| 多任務建模 | |||||
| 52 | Arxiv'17 | ShareBottom | 深神經網絡中多任務學習的概述 | torch | |
| 53 | KDD'18 | mmoe | 與多門學習的多任務學習中的任務關係建模 | torch | |
| 54 | recsys'20 | ple | 漸進分層提取(PLE):個性化建議的新型多任務學習(MTL)模型 | torch | |
我們在一組開放數據集上對Fuxictr模型進行了基準測試,如下所示:
fuxictr具有以下依賴性:
請通過pip install -r requirements.txt安裝其他必需的軟件包。
運行演示示例
演示目錄中提供了示例,以顯示Fuxictr的一些基本用法。用戶可以運行示例以快速啟動並了解工作流程。
cd demo
python example1_build_dataset_to_parquet.py
python example2_DeepFM_with_parquet_input.py
在微小數據上運行模型
用戶可以按照以下命令輕鬆地在模型動物園中運行每個模型,這是運行DCN的演示。此外,用戶可以修改數據集配置和模型配置文件,以便在自己的數據集或新的Hyper-Parameters上運行。更多詳細信息可以在README中找到。
cd model_zoo/DCN/DCN_torch
python run_expid.py --expid DCN_test --gpu 0
# Change `MODEL` according to the target model name
cd model_zoo/MODEL
python run_expid.py --expid MODEL_test --gpu 0
在基準數據集(例如Criteo)上運行模型
用戶可以遵循基準部分以獲取基準數據集並運行步驟以重現現有結果。請在此處查看示例:https://github.com/reczoo/bars/tree/main/main/ranking/ctr/dcnv2/dcnv2_criteo_x1
實施新模型
Fuxictr庫設計為模塊化,以便每個組件都可以根據用戶的需求覆蓋。在許多情況下,僅需要為新的自定義模型實現模型類。如果數據預處理或數據加載程序不直接適用,則還可以通過核心API覆蓋新的加載程序。我們展示了一個具體示例,該示例實現了我們最近在AAAI 2023年發表的新模型FinalMLP。
模型的調子超參數
Fuxictr當前使用多個GPU對模型的超參數進行快速網格搜索。以下示例顯示了8個具有4個GPU的實驗的網格搜索。
cd experiment
python run_param_tuner.py --config config/DCN_tiny_parquet_tuner_config.yaml --gpu 0 1 2 3 0 1 2 3
如果您發現我們的代碼或基準有助於您的研究,請引用以下論文。
歡迎加入我們的微信小組,進行任何問題和討論。如果您對推薦系統的研究和實踐感興趣,請通過我們的微信組與我們聯繫。