Un nuovo campione
Lo scorso fine settimana è successo qualcosa che internamente chiamiamo un “Cambio di Regime”: il nostro modello di rilevamento prezzi basato su LightGBM è stato sostituito da un modello CatBoost. Sembra tecnico — e lo è. Ma gli effetti sono direttamente percepibili: il rilevamento dei prezzi sulle pagine dei vostri prodotti è appena diventato più preciso.
Per celebrare l’occasione, vogliamo darvi uno sguardo dietro le quinte su come funziona il nostro rilevamento prezzi basato sull’IA, come addestriamo i nostri modelli e perché CatBoost ora esce vincitore.
Il problema: un numero tra tanti
Una tipica pagina prodotto contiene decine di numeri: ID articolo, valutazioni, costi di spedizione, quantità, prezzi barrati, prezzi delle varianti. Il prezzo di acquisto effettivo è solo uno di questi. Il nostro modello deve scegliere quello giusto tra tutti questi candidati — su qualsiasi sito web, indipendentemente dal layout, dalla lingua o dal sistema del negozio.
Come funziona la nostra pipeline
Il rilevamento dei prezzi si svolge in diverse fasi:
Fase 1: Raccolta dei candidati
Quando aggiungi un URL da monitorare, il nostro sistema analizza l’intera struttura della pagina. Ogni elemento che potrebbe contenere un prezzo viene identificato. Utilizziamo più fonti in parallelo:
- Dati strutturati: Markup JSON-LD e Schema.org che molti negozi forniscono per i motori di ricerca.
- Analisi del DOM: Ogni elemento di testo viene esaminato alla ricerca di pattern simili a prezzi — numeri con simboli di valuta, separatori decimali, ecc.
- Estrazione JavaScript: Per i negozi con prodotti configurabili (ad es. taglie diverse), estraiamo i prezzi delle varianti direttamente dal JavaScript incorporato.
Fase 2: Estrazione delle caratteristiche
Per ogni candidato prezzo, calcoliamo circa due dozzine di caratteristiche che aiutano il modello a distinguere il prezzo reale dal rumore:
- Contesto HTML: L’elemento circostante contiene parole come “prezzo”, “offerta” o “attuale”? Il testo è enfatizzato visivamente (grassetto, carattere grande)?
- Posizione nella pagina: Quanto è profondamente annidato l’elemento nel DOM? Dove si trova rispetto agli altri candidati?
- Contesto statistico: Come si confronta il valore con gli altri numeri della pagina? È un valore anomalo o rientra in un intervallo di prezzi tipico?
- Segnali specifici del negozio: Quanto bene il modello rileva storicamente i prezzi su questo dominio? Alcuni negozi sono più difficili di altri.
Fase 3: Previsione
Tutti i candidati con le loro caratteristiche vengono inviati al nostro servizio di ML. Il modello assegna a ciascun candidato una probabilità: “Quanto sono sicuro che questo sia il prezzo effettivo del prodotto?” Il candidato con il punteggio più alto vince.
Addestramento: come impara il modello
Il nostro modello impara dai dati reali degli utenti. Ogni volta che confermi o correggi un prezzo, quel feedback torna come segnale di addestramento. La corrispondenza “questo numero su questa pagina è il prezzo corretto” diventa un esempio etichettato per il prossimo ciclo di addestramento.
La sfida: tra tutti i candidati di una pagina, tipicamente solo uno è il prezzo corretto — il rapporto è circa 1:50. Questo squilibrio deve essere tenuto in considerazione durante l’addestramento, altrimenti il modello impara semplicemente a classificare tutto come “non è un prezzo”.
Addestriamo regolarmente più tipi di modelli in parallelo e confrontiamo le loro prestazioni su un set di test separato. Il set di test è rigorosamente suddiviso per pagina — il modello non viene mai testato su pagine che ha visto durante l’addestramento.
Perché ha vinto CatBoost
Nel nostro ultimo confronto tra modelli, CatBoost ha superato il precedente modello LightGBM (in produzione da gennaio) nelle metriche chiave:
- Precisione Top-1 dell’80%: Per 4 pagine prodotto su 5, il modello identifica il prezzo corretto al primo tentativo.
- Precisione Top-3 dell’84%: Considerando i tre migliori candidati, il prezzo corretto è quasi sempre tra di essi.
Cosa rende CatBoost migliore? Due fattori spiccano:
Migliore gestione dello squilibrio delle classi. CatBoost ha una strategia integrata per il bilanciamento automatico dei pesi delle classi che funziona in modo più robusto nella pratica rispetto alla calibrazione manuale necessaria per LightGBM.
Elaborazione più intelligente delle caratteristiche categoriali. Caratteristiche come il tipo di tag HTML o la fonte del candidato (JSON-LD vs. testo DOM vs. JavaScript) vengono elaborate nativamente da CatBoost, senza che dobbiamo codificarle manualmente come numeri. Questo riduce la perdita di informazione.
Riaddestramento automatico
La nostra pipeline non addestra i modelli una sola volta — lo fa continuamente. Ogni giorno, il miglior modello attuale viene riaddestrato con nuovi dati. Una volta alla settimana, viene eseguito un confronto completo di tutte le configurazioni dei modelli — è così che abbiamo scoperto il “Cambio di Regime” verso CatBoost.
Il servizio di rilevamento che esegue il rilevamento dei prezzi in tempo reale carica automaticamente i nuovi modelli. Dalla scoperta di un modello migliore al suo deployment in produzione passano solo pochi minuti.
Cosa significa questo per te
In breve: migliore rilevamento dei prezzi, meno correzioni manuali necessarie. Dovresti notare miglioramenti soprattutto nei negozi con layout di pagina complessi, molteplici varianti di prezzo o presentazioni insolite.
Quando il modello è incerto, lo vedrai nell’indicatore di affidabilità durante la creazione del tracker. In quei casi, puoi semplicemente confermare il prezzo manualmente — e allo stesso tempo aiutare il modello a imparare per il suo prossimo ciclo di addestramento.
Provalo e crea il tuo prossimo tracker — CatBoost ora gestisce il rilevamento dei prezzi.
