การทำนายอัตราการคลิกผ่าน (CTR) เป็นงานที่สำคัญสำหรับแอปพลิเคชันอุตสาหกรรมต่างๆเช่นการโฆษณาออนไลน์ระบบแนะนำและการค้นหาที่ได้รับการสนับสนุน FUXICTR ให้บริการไลบรารีโอเพนซอร์ซสำหรับการทำนาย CTR พร้อมคุณสมบัติที่สำคัญในการกำหนดค่าความสามารถในการปรับแต่งและการทำซ้ำ เราหวังว่าโครงการนี้จะส่งเสริมการวิจัยที่ทำซ้ำได้และเป็นประโยชน์ต่อทั้งนักวิจัยและผู้ปฏิบัติงานในสาขานี้
สามารถกำหนดค่าได้ : การประมวลผลข้อมูลล่วงหน้าและแบบจำลองนั้นเป็นแบบแยกส่วนและกำหนดค่าได้
ปรับได้ : รุ่นสามารถปรับได้โดยอัตโนมัติผ่านการกำหนดค่าที่ง่าย
ทำซ้ำได้ : มาตรฐานทั้งหมดสามารถทำซ้ำได้ง่าย
Extensible : สามารถขยายไปยังรุ่นใหม่ได้อย่างง่ายดายรองรับทั้งเฟรมเวิร์ก Pytorch และ Tensorflow
| เลขที่ | สิ่งพิมพ์ | แบบอย่าง | กระดาษ | เกณฑ์มาตรฐาน | รุ่น |
|---|---|---|---|---|---|
| รูปแบบการโต้ตอบคุณสมบัติ | |||||
| 1 | www'07 | LR | การทำนายการคลิก: การประมาณอัตราการคลิกผ่านสำหรับโฆษณาใหม่ Microsoft | torch | |
| 2 | icdm'10 | FM | เครื่องแยกส่วน | torch | |
| 3 | cikm'13 | DSSM | เรียนรู้โมเดลความหมายที่มีโครงสร้างลึกสำหรับการค้นหาเว็บโดยใช้ข้อมูล clickthrough microsoft | torch | |
| 4 | cikm'15 | CCPM | รูปแบบการทำนายการคลิกแบบ convolutional | torch | |
| 5 | recsys'16 | FFM | เครื่องผสมแบบแยกส่วนที่รับรู้สำหรับการทำนาย CTR CRITEO | torch | |
| 6 | recsys'16 | DNN | เครือข่ายประสาทลึกสำหรับคำแนะนำ YouTube Google | torch , tf | |
| 7 | dlrs'16 | กว้างและลึก | การเรียนรู้ที่กว้างและลึกสำหรับระบบผู้แนะนำ Google | torch , tf | |
| 8 | icdm'16 | PNN | เครือข่ายประสาทตามผลิตภัณฑ์สำหรับการทำนายการตอบสนองของผู้ใช้ | torch | |
| 9 | kdd'16 | การตัดลึก | Deep Crossing: การสร้างแบบจำลองเว็บระดับโดยไม่มีคุณสมบัติ combinatorial ที่สร้างขึ้นด้วยตนเอง Microsoft | torch | |
| 10 | nips'16 | Hofm | เครื่องแยกส่วนที่สูงขึ้น | torch | |
| 11 | ijcai'17 | DeepFM | DeepFM: เครือข่ายประสาทที่ใช้เครื่องผสมแบบปัจจัยสำหรับการทำนาย CTR Huawei | 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 | เครื่องผสมแบบฟิลด์น้ำหนักสำหรับการทำนายอัตราการคลิกผ่านในการแสดง คำสาบานโฆษณา, TouchPal, LinkedIn, Alibaba | torch | |
| 16 | kdd'18 | xdeepfm | XDEEPFM: การรวมการโต้ตอบคุณลักษณะที่ชัดเจนและโดยนัยสำหรับระบบแนะนำ Microsoft | torch | |
| 17 | cikm'19 | เจ้าชู้ | Fignn: การสร้างแบบจำลองคุณสมบัติการโต้ตอบผ่านเครือข่ายประสาทกราฟสำหรับการทำนาย CTR | torch | |
| 18 | cikm'19 | autoint/autoint+ | Autoint: การเรียนรู้การโต้ตอบกับคุณสมบัติอัตโนมัติผ่านเครือข่ายประสาทเทียมด้วยตนเอง | torch | |
| 19 | recsys'19 | การทำให้เป็นเส้นประสาท | Fibinet: การรวมคุณสมบัติความสำคัญและการโต้ตอบคุณสมบัติ bilinear สำหรับการทำนายอัตราการคลิกผ่าน Sina 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 | คุณลักษณะการเรียนรู้การโต้ตอบกับ lorentzian factorization eBay | torch | |
| 26 | wsdm'20 | ระหว่างกัน | การทำนายอัตราการคลิกผ่านที่ตีความได้ผ่านความสนใจแบบลำดับชั้น NEC Labs, Google | torch | |
| 27 | dlp-kdd'20 | ขนาบ | FLEN: ฟิลด์การใช้ประโยชน์สำหรับการทำนาย CTR ที่ปรับขนาดได้ Tencent | torch | |
| 28 | cikm'20 | ลึกล้ำ | เครื่องโต้ตอบลึก: โมเดลที่เรียบง่าย แต่มีประสิทธิภาพสำหรับการโต้ตอบคุณลักษณะที่มีลำดับสูง Alibaba, Realai | torch | |
| 29 | www'21 | FMFM | fm^2: เครื่องแยกส่วนประกอบของฟิลด์-เมทริกซ์สำหรับระบบผู้แนะนำ yahoo | torch | |
| 30 | www'21 | DCN-V2 | DCN V2: ปรับปรุงเครือข่าย Deep & Cross และบทเรียนที่ใช้งานได้จริงสำหรับการเรียนรู้ระดับเว็บเพื่อจัดอันดับระบบ Google | torch | |
| 31 | cikm'21 | ชะลอ | เครือข่ายประสาทเทียมที่มีความมุ่งมั่นด้วยตนเองสำหรับการทำนายอัตราการคลิกผ่านอาลี บาบา | torch | |
| 32 | cikm'21 | EDCN | เพิ่มการโต้ตอบคุณสมบัติที่ชัดเจนและโดยนัยผ่านการแบ่งปันข้อมูลสำหรับรุ่น CTR ลึกแบบขนาน Huawei | torch | |
| 33 | dlp-kdd'21 | Masknet | Masknet: แนะนำการคูณอย่างชาญฉลาดในรูปแบบการจัดอันดับ CTR โดยหน้ากากที่นำด้วยอินสแตนซ์ Sina Weibo | torch | |
| 34 | Sigir'21 | แซม | มองไปที่การทำนาย CTR อีกครั้ง: ความสนใจทั้งหมดที่คุณต้องการหรือไม่? เจ้านาย Zhipin | torch | |
| 35 | kdd'21 | เครื่องราง | สถาปัตยกรรมและการดำเนินการเครือข่ายการปรับตัวสำหรับคำแนะนำออนไลน์ didi chuxing | torch | |
| 36 | aaai'23 | FinalMLP | FinalMLP: โมเดล MLP สองสตรีมที่ปรับปรุงแล้วสำหรับการทำนาย CTR Huawei | torch | |
| 37 | Sigir'23 | Finalnet | ขั้นสุดท้าย: เลเยอร์ปฏิสัมพันธ์แบบแยกส่วนสำหรับการทำนาย CTR Huawei | torch | |
| 38 | Sigir'23 | ออยน์เน็ต | eulernet: คุณลักษณะการเรียนรู้การเรียนรู้การเรียนรู้ผ่านสูตรของออยเลอร์สำหรับการทำนาย CTR Huawei | torch | |
| 39 | cikm'23 | GDCN | ไปสู่เครือข่ายข้ามที่ลึกกว่าเบาและตีความได้สำหรับการทำนาย CTR Microsoft | torch | |
| 40 | icml'24 | คนโง่ | 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 | กทพ. | การสร้างแบบจำลองข้อมูลผู้ใช้ตามลำดับที่มีประสิทธิภาพสำหรับการทำนายอัตราการคลิกผ่าน อาลีบาบา | torch | |
| 48 | cikm'22 | SDIM | การสุ่มตัวอย่างเป็นสิ่งที่คุณต้องการในการสร้างแบบจำลองพฤติกรรมผู้ใช้ระยะยาวสำหรับการทำนาย CTR Meituan | torch | |
| 49 | kdd'23 | ทำธุรกรรม | ธุรกรรม: รูปแบบการกระทำของผู้ใช้เรียลไทม์ที่ใช้หม้อแปลงเพื่อแนะนำที่ Pinterest Pinterest | torch | |
| เครือข่ายน้ำหนักแบบไดนามิก | |||||
| 50 | Neurips'22 | APG | APG: เครือข่ายการสร้างพารามิเตอร์แบบปรับตัวสำหรับการทำนายอัตราการคลิกผ่าน อาลีบาบา | torch | |
| 51 | kdd'23 | PPNET | Pepnet: พารามิเตอร์และการฝังเครือข่ายส่วนบุคคลสำหรับการผสมผสานกับข้อมูลก่อนหน้าส่วนบุคคล Kuaishou | torch | |
| การสร้างแบบจำลองหลายงาน | |||||
| 52 | arxiv'17 | sharebottom | ภาพรวมของการเรียนรู้แบบหลายงานในเครือข่ายประสาทลึก | torch | |
| 53 | kdd'18 | mmoe | การสร้างแบบจำลองงานความสัมพันธ์ในการเรียนรู้แบบหลายงานด้วยการผสมผสานแบบหลายประตูของ experts google | torch | |
| 54 | recsys'20 | การใช้ | Progressive Layered Extraction (PLE): แบบจำลองการเรียนรู้แบบหลายงาน (MTL) นวนิยายสำหรับคำแนะนำส่วนบุคคล Tencent | 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 นอกจากนี้ผู้ใช้สามารถแก้ไขไฟล์กำหนดค่าชุดข้อมูลและรูปแบบการกำหนดค่าแบบจำลองเพื่อเรียกใช้ในชุดข้อมูลของตนเองหรือด้วยพารามิเตอร์ไฮเปอร์ใหม่ รายละเอียดเพิ่มเติมสามารถพบได้ใน 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/ranking/ctr/dcnv2/dcnv2_criteo_x1
ใช้โมเดลใหม่
ไลบรารี FUXICTR ได้รับการออกแบบให้เป็นแบบแยกส่วนเพื่อให้ผู้ใช้ทุกองค์ประกอบสามารถเขียนทับได้ตามความต้องการของพวกเขา ในหลายกรณีเฉพาะคลาสโมเดลเท่านั้นที่จะต้องใช้สำหรับโมเดลที่ปรับแต่งใหม่ หากการประมวลผลข้อมูลล่วงหน้าหรือตัวโหลดข้อมูลไม่สามารถใช้งานได้โดยตรงเราก็สามารถเขียนทับตัวใหม่ผ่าน API หลักได้ เราแสดงตัวอย่างที่เป็นรูปธรรมซึ่งใช้โมเดล FinalMLP ใหม่ของเราที่ได้รับการตีพิมพ์เมื่อเร็ว ๆ นี้ใน AAAI 2023
ปรับพารามิเตอร์ไฮเปอร์ของแบบจำลอง
ปัจจุบัน 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
หากคุณพบว่ารหัสหรือมาตรฐานของเรามีประโยชน์ในการวิจัยของคุณโปรดอ้างอิงเอกสารต่อไปนี้
ยินดีต้อนรับสู่เข้าร่วมกลุ่ม WeChat ของเราสำหรับคำถามและการอภิปรายใด ๆ หากคุณมีความสนใจในการวิจัยและฝึกฝนในระบบผู้แนะนำโปรดติดต่อผ่านกลุ่ม WeChat ของเรา