Instructions to use Mateo-Rua/embeddings-productos-ecommerce-es with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use Mateo-Rua/embeddings-productos-ecommerce-es with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("Mateo-Rua/embeddings-productos-ecommerce-es") sentences = [ "Esa es una persona feliz", "Ese es un perro feliz", "Esa es una persona muy feliz", "Hoy es un día soleado" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
🔍 Embeddings de Productos para E-commerce en Español
Modelo de embeddings que convierte títulos de productos en vectores semánticos de 384 dimensiones, de forma que productos similares quedan cerca en el espacio vectorial. Diseñado para los tres pilares de un marketplace moderno como Mercado Libre, Amazon o Falabella:
- 🔎 Búsqueda semántica — encuentra productos por significado, no solo por palabras exactas
- 🛒 Recomendación — "quien vio esto, también podría querer estos otros"
- 🔗 Detección de duplicados y agrupación automática de catálogo
💡 Por qué importa
Una búsqueda tradicional falla si el usuario escribe "zapatillas para correr" y el producto dice "running Nike": no comparten palabras. Este modelo entiende que significan lo mismo. En pruebas reales agrupó zapatillas de marcas distintas bajo el concepto "correr", reconoció celulares Samsung sin ver la palabra "celular", y distinguió un teclado gamer (Razer, HyperX) de un teclado musical — matiz que los modelos genéricos confunden.
📊 Rendimiento
Se compararon dos modelos base multilingües, cada uno antes y después del fine-tuning con contrastive learning. Métricas de retrieval sobre un test independiente (¿los vecinos más cercanos de un producto pertenecen a su misma categoría?):
| Modelo | Recall@1 | Recall@5 | Recall@10 | NDCG@10 |
|---|---|---|---|---|
| MiniLM base | 0.401 | 0.566 | 0.641 | 0.493 |
| MiniLM fine-tuned | 0.734 | 0.853 | 0.890 | 0.796 |
| E5 base | 0.562 | 0.753 | 0.802 | 0.656 |
| E5 fine-tuned (este modelo) 🏆 | 0.795 | 0.893 | 0.921 | 0.844 |
Recall@10 de 0.921: dado un producto, el 92% de las veces hay uno de su misma categoría entre sus 10 vecinos más cercanos. El fine-tuning mejoró al modelo base en +23 puntos de Recall@1.
🚀 Uso
from sentence_transformers import SentenceTransformer
modelo = SentenceTransformer("Mateo-Rua/embeddings-productos-ecommerce-es")
productos = [
"Celular Samsung Galaxy S10 128gb",
"Zapatillas Nike Running Air Max",
"Teclado Mecánico Gamer Razer",
]
embeddings = modelo.encode(productos, normalize_embeddings=True)
# Similitud entre productos
similitudes = modelo.similarity(embeddings, embeddings)
print(similitudes)
🔧 Cómo se entrenó
- Modelo base: intfloat/multilingual-e5-small
- Método: contrastive learning con
MultipleNegativesRankingLoss— acerca productos de la misma categoría y aleja los de categorías distintas (los negativos se generan in-batch) - Datos: 100.000 títulos
en español del MeLi Data Challenge 2019, filtrados por calidad (
reliable), en 682 categorías → 25.797 pares de entrenamiento - Configuración: 1 época, batch 64 — suficiente para un salto grande de rendimiento sin sobreajustar, priorizando la generalización a productos nuevos
⚙️ Especificaciones técnicas
- Tipo: Sentence Transformer
- Dimensionalidad de salida: 384 dimensiones
- Longitud máxima de secuencia: 512 tokens
- Función de similitud: coseno
- Modalidad: texto
SentenceTransformer(
(0): Transformer({'architecture': 'BertModel'})
(1): Pooling({'embedding_dimension': 384, 'pooling_mode': 'mean'})
(2): Normalize()
)
⚠️ Limitaciones
- Optimizado para títulos cortos de productos en español; puede rendir distinto en textos largos
- Hereda ambigüedades del catálogo de entrenamiento (términos con doble significado según dominio)
- Datos de 2019: categorías o marcas muy recientes pueden estar subrepresentadas
- Solo español; para portugués se recomienda re-entrenar con datos en ese idioma
Autor
Mateo Rúa — Data Scientist · Medellín, Colombia GitHub · LinkedIn · Hugging Face
- Downloads last month
- -
Model tree for Mateo-Rua/embeddings-productos-ecommerce-es
Base model
intfloat/multilingual-e5-small