La predicción de la tasa de clics (CTR) es una tarea crítica para varias aplicaciones industriales, como publicidad en línea, sistemas de recomendación y búsqueda patrocinada. FuxICTR proporciona una biblioteca de código abierto para la predicción de CTR, con características clave en configuración, sintonización y reproducibilidad. Esperamos que este proyecto pueda promover la investigación reproducible y beneficiar tanto a los investigadores como a los profesionales en este campo.
Configurable : tanto el preprocesamiento de datos como los modelos son modularizados y configurables.
Sintonizable : los modelos se pueden ajustar automáticamente a través de configuraciones fáciles.
Reproducible : todos los puntos de referencia se pueden reproducir fácilmente.
Extensible : se puede extender fácilmente a cualquier nuevo modelo, lo que respalda los marcos Pytorch y TensorFlow.
| No | Publicación | Modelo | Papel | Punto de referencia | Versión |
|---|---|---|---|---|---|
| Modelos de interacción de características | |||||
| 1 | Www'07 | LR | Predicción de clics: Estimación de la tasa de clics para nuevos anuncios Microsoft | torch | |
| 2 | ICDM'10 | FM | Máquinas de factorización | torch | |
| 3 | CIKM'13 | DSSM | Aprender modelos semánticos estructurados profundos para la búsqueda web utilizando datos de clics Microsoft | torch | |
| 4 | CIKM'15 | CCPM | Un modelo de predicción de clic convolucional | torch | |
| 5 | Recsys'16 | FFM | Máquinas de factorización de campo para la predicción CTR Criteo | torch | |
| 6 | Recsys'16 | DNN | Redes neuronales profundas para recomendaciones de YouTube Google | torch , tf | |
| 7 | Dlrs'16 | Ancho y profundo | Aprendizaje amplio y profundo para sistemas de recomendación Google | torch , tf | |
| 8 | ICDM'16 | PNN | Redes neuronales basadas en productos para la predicción de respuesta al usuario | torch | |
| 9 | KDD'16 | Profundo | Crossing profundo: modelado a escala web sin características combinatorias de forma manual Microsoft | torch | |
| 10 | NIPS'16 | HOFM | Máquinas de factorización de orden superior | torch | |
| 11 | Ijcai'17 | Profundo | Deepfm: una red neuronal basada en factorización-máquina para la predicción de CTR Huawei | torch , tf | |
| 12 | Sigir'17 | NFM | Máquinas de factorización neuronal para análisis predictivo escaso | torch | |
| 13 | Ijcai'17 | AFM | Máquinas de factorización de atención: aprendiendo el peso de las interacciones de características a través de las redes de atención | torch | |
| 14 | Adkdd'17 | DCN | Deep & Cross Network para AD Predicciones de clic en Google | torch , tf | |
| 15 | Www'18 | FWFM | Máquinas de factorización ponderadas en el campo para la predicción de la tasa de clics en el juramento de publicidad de la pantalla, TouchPal, LinkedIn, Alibaba | torch | |
| 16 | KDD'18 | xdeepfm | XDeepFM: Combinando interacciones de características explícitas e implícitas para sistemas de recomendación Microsoft | torch | |
| 17 | CIKM'19 | Fignn | FIGNN: Modelado de interacciones de características a través de redes neuronales gráficas para la predicción de CTR | torch | |
| 18 | CIKM'19 | Autoint/autoint+ | Autoint: Aprendizaje automático de interacción con características a través de redes neuronales autoaténticas | torch | |
| 19 | Recsys'19 | Fibinete | Fibinet: combinación de importancia de características e interacción de características bilineales para la predicción de la tasa de clics Sina Weibo | torch | |
| 20 | Www'19 | Fgcnn | Generación de características por red neuronal convolucional para la predicción de la tasa de clics Huawei | torch | |
| 21 | Aaai'19 | HFM/HFM+ | Máquinas de factorización holográfica para recomendación | torch | |
| 22 | Arxiv'19 | Dlrm | Modelo de recomendación de aprendizaje profundo para sistemas de personalización y recomendación Facebook | torch | |
| 23 | Neuralnetworks'20 | En | Redes neuronales conscientes de la operación para la predicción de respuesta al usuario | torch , tf | |
| 24 | Aaai'20 | AFN/AFN+ | Red de factorización adaptativa: aprendizaje de interacciones de características de orden adaptativo | torch | |
| 25 | Aaai'20 | Lorentzfm | Interacciones de características de aprendizaje con la factorización de Lorentzian eBay | torch | |
| 26 | WSDM'20 | Interhat | Predicción de tasa de clic interpretable a través de la atención jerárquica NEC Labs, Google | torch | |
| 27 | Dlp-kdd'20 | Dar vueltas | FLEN: Campo de apalancamiento para predicción CTR escalable Tencent | torch | |
| 28 | CIKM'20 | De profundidad | Máquina de interacción profunda: un modelo simple pero efectivo para interacciones de características de alto orden Alibaba, Reali | torch | |
| 29 | Www'21 | Fmfm | FM^2: Máquinas de factorización matriz de campo para sistemas de recomendación Yahoo | torch | |
| 30 | Www'21 | DCN-V2 | DCN V2: red profunda y cruzada mejorada y lecciones prácticas para el aprendizaje a escala web para clasificar los sistemas Google | torch | |
| 31 | CIKM'21 | DESTINAR | Redes neuronales autoenseñadas sin rendimiento para la predicción de la tasa de clics Alibaba | torch | |
| 32 | CIKM'21 | EDCN | Mejora de las interacciones de características explícitas e implícitas a través del intercambio de información para los modelos CTR profundos paralelos Huawei | torch | |
| 33 | Dlp-kdd'21 | Masknet | Masknet: Introducción de la multiplicación de funciones a los modelos de clasificación CTR por máscara guiada por instancia Sina Weibo | torch | |
| 34 | Sigir'21 | Sam | Mirando la predicción de CTR nuevamente: ¿es la atención todo lo que necesitas? Jefe Zhipin | torch | |
| 35 | KDD'21 | Aoanet | Arquitectura y operación Network Adaptive para recomendaciones en línea Didi Chuxing | torch | |
| 36 | Aaai'23 | FinalMLP | FinalMLP: un modelo MLP de dos transmisiones mejorado para la predicción de CTR Huawei | torch | |
| 37 | Sigir'23 | Finalnet | Final: capa de interacción factorizada para la predicción de CTR Huawei | torch | |
| 38 | Sigir'23 | Eulernet | Eulernet: aprendizaje de interacción de características adaptativas a través de la fórmula de Euler para la predicción de CTR Huawei | torch | |
| 39 | CIKM'23 | Gdcn | Hacia la red cruzada más profunda, más ligera e interpretable para la predicción de CTR Microsoft | torch | |
| 40 | ICML'24 | Wukong | Wukong: Hacia una ley de escala para recomendación a gran escala meta | torch | |
| Modelado de secuencia de comportamiento | |||||
| 42 | KDD'18 | ESTRUENDO | Red de interés profundo para la predicción de tasas de clics Alibaba | torch | |
| 43 | Aaai'19 | Dien | Red de evolución de interés profundo para la predicción de tasas de clics Alibaba | torch | |
| 44 | Dlp-kdd'19 | BST | Transformador de secuencia de comportamiento para recomendación de comercio electrónico en Alibaba Alibaba | torch | |
| 45 | CIKM'20 | Dmin | Red de múltiples intereses profundos para la predicción de tasa de clics Alibaba | torch | |
| 46 | Aaai'20 | DMR | Modelo de coincidencia profunda para clasificar para la predicción de tasa de clic personalizada Alibaba | torch | |
| 47 | Dlp-kdd'22 | ETA | Modelado de datos de usuario secuencial largo eficiente para la predicción de la tasa de clics Alibaba | torch | |
| 48 | CIKM'22 | Sdim | El muestreo es todo lo que necesita para modelar comportamientos de usuario a largo plazo para la predicción de CTR meituan | torch | |
| 49 | KDD'23 | Tramitar | Transactión: Modelo de acción del usuario real basado en transformador para recomendación en Pinterest Pinterest | torch | |
| Red de peso dinámico | |||||
| 50 | Neurips'22 | Apg | APG: Red de generación de parámetros adaptativos para la predicción de la tasa de clics Alibaba | torch | |
| 51 | KDD'23 | PPNET | Pepnet: parámetro e integración de red personalizada para infundir con información previa personalizada Kuaishou | torch | |
| Modelado de tareas múltiples | |||||
| 52 | Arxiv'17 | ShareBottom | Una descripción general del aprendizaje de tareas múltiples en redes neuronales profundas | torch | |
| 53 | KDD'18 | Mmoe | Relaciones de tareas de modelado en aprendizaje de varias tareas con la mezcla de múltiples múltiples expertos en Google | torch | |
| 54 | Recsys'20 | Ple | Extracción de capas progresivas (PLE): un nuevo modelo de aprendizaje de tareas múltiples (MTL) para recomendaciones personalizadas Tencent | torch | |
Tenemos modelos FuxICTR de referencia en un conjunto de conjuntos de datos abiertos de la siguiente manera:
Fuxictr tiene las siguientes dependencias:
Instale otros paquetes requeridos a través de pip install -r requirements.txt .
Ejecutar los ejemplos de demostración
Se proporcionan ejemplos en el directorio de demostración para mostrar algún uso básico de Fuxictr. Los usuarios pueden ejecutar los ejemplos para comenzar rápido y comprender el flujo de trabajo.
cd demo
python example1_build_dataset_to_parquet.py
python example2_DeepFM_with_parquet_input.py
Ejecutar un modelo en pequeños datos
Los usuarios pueden ejecutar fácilmente cada modelo en el zoológico del modelo siguiendo los comandos a continuación, que es una demostración para ejecutar DCN. Además, los usuarios pueden modificar los archivos de configuración del conjunto de datos y el modelo de configuración para ejecutarse en sus propios conjuntos de datos o con nuevos hiperparametros. Se pueden encontrar más detalles en el 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
Ejecute un modelo en conjuntos de datos de referencia (por ejemplo, Criteo)
Los usuarios pueden seguir la sección de referencia para obtener conjuntos de datos de referencia y ejecutar pasos para reproducir los resultados existentes. Consulte un ejemplo aquí: https://github.com/reczoo/bars/tree/main/ranking/ctr/dcnv2/dcnv2_criteo_x1
Implementar un nuevo modelo
La biblioteca FuxicTR está diseñada para modularizar, de modo que cada componente pueda ser sobrescritado por los usuarios de acuerdo con sus necesidades. En muchos casos, solo la clase de modelo debe implementarse para un nuevo modelo personalizado. Si el preprocesamiento de datos o el cargador de datos no son directamente aplicables, también se puede sobrescribir una nueva a través de las API básicas. Mostramos un ejemplo concreto que implementa nuestro nuevo modelo FinalMLP que se ha publicado recientemente en AAAI 2023.
Tune hiperparametros de un modelo
FuxICTR actualmente admite la búsqueda rápida de la cuadrícula de hiperparámetros de un modelo utilizando múltiples GPU. El siguiente ejemplo muestra la búsqueda de la cuadrícula de 8 experimentos con 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
Si encuentra útil nuestro código o puntos de referencia en su investigación, cite los siguientes documentos.
Bienvenido a unirse a nuestro grupo WeChat para cualquier pregunta y discusión. Si está interesado en la investigación y la práctica en los sistemas de recomendación, comuníquese con nuestro grupo WeChat.