Raccomandare contenuti utilizzando la ricerca vettoriale semantica
Con il 71% degli americani che ricevono le raccomandazioni di notizie dalle piattaforme sociali, i contenuti personalizzati sono diventati rapidamente il modo in cui vengono scoperti i nuovi media. Sia che le persone cerchino argomenti specifici, sia che interagiscano con i contenuti consigliati, tutto ciò che gli utenti vedono è ottimizzato dagli algoritmi per migliorare il tasso di clic (CTR), il coinvolgimento e la pertinenza. Sohu è un gruppo cinese di media, video, ricerca e giochi online quotato al NASDAQ. Ha sfruttato Milvus, un database vettoriale open-source realizzato da Zilliz, per costruire un motore di ricerca vettoriale semantico all'interno della sua app di notizie. Questo articolo spiega come l'azienda ha utilizzato i profili degli utenti per affinare nel tempo le raccomandazioni di contenuti personalizzati, migliorando l'esperienza e il coinvolgimento degli utenti.
Raccomandare contenuti utilizzando la ricerca vettoriale semantica
I profili degli utenti di Sohu News sono costruiti a partire dalla cronologia di navigazione e vengono modificati man mano che gli utenti cercano e interagiscono con i contenuti di notizie. Il sistema di raccomandazione di Sohu utilizza la ricerca vettoriale semantica per trovare articoli di notizie rilevanti. Il sistema funziona identificando una serie di tag che dovrebbero essere di interesse per ogni utente in base alla cronologia di navigazione. Quindi cerca rapidamente gli articoli pertinenti e ordina i risultati in base alla popolarità (misurata dal CTR medio), prima di servirli agli utenti.
Solo il New York Times pubblica 230 contenuti al giorno, il che dà un'idea dell'entità dei nuovi contenuti che un sistema di raccomandazione efficace deve essere in grado di elaborare. L'acquisizione di grandi volumi di notizie richiede una ricerca di similarità al millisecondo e una corrispondenza oraria dei tag ai nuovi contenuti. Sohu ha scelto Milvus perché elabora in modo efficiente e accurato enormi insiemi di dati, riduce l'uso della memoria durante la ricerca e supporta implementazioni ad alte prestazioni.
Comprendere il flusso di lavoro di un sistema di raccomandazione delle notizie
La raccomandazione di contenuti basata sulla ricerca semantica vettoriale di Sohu si basa sul Deep Structured Semantic Model (DSSM), che utilizza due reti neurali per rappresentare le query degli utenti e gli articoli di notizie come vettori. Il modello calcola la somiglianza del coseno dei due vettori semantici, quindi il gruppo di notizie più simile viene inviato al pool di candidati alla raccomandazione. Successivamente, gli articoli di notizie vengono classificati in base al loro CTR stimato e quelli con il più alto tasso di click-through previsto vengono mostrati agli utenti.
Codifica degli articoli di notizie in vettori semantici con BERT-as-service
Per codificare gli articoli di notizie in vettori semantici, il sistema utilizza lo strumento BERT-as-service. Se il numero di parole di un contenuto supera i 512 durante l'utilizzo di questo modello, si verifica una perdita di informazioni durante il processo di incorporazione. Per ovviare a questo problema, il sistema estrae prima un riassunto e lo codifica in un vettore semantico a 768 dimensioni. Quindi vengono estratti i due argomenti più rilevanti da ogni articolo di cronaca e vengono identificati i corrispondenti vettori di argomenti pre-addestrati (200 dimensioni) in base all'ID dell'argomento. Successivamente, i vettori argomento vengono uniti al vettore semantico a 768 dimensioni estratto dal sommario dell'articolo, formando un vettore semantico a 968 dimensioni.
I nuovi contenuti arrivano continuamente attraverso Kafta e vengono convertiti in vettori semantici prima di essere inseriti nel database Milvus.
Estrazione di tag semanticamente simili dai profili degli utenti con BERT-as-service
L'altra rete neurale del modello è il vettore semantico degli utenti. I tag semanticamente simili (ad esempio, coronavirus, covid, COVID-19, pandemia, nuovo ceppo, polmonite) vengono estratti dai profili degli utenti in base agli interessi, alle query di ricerca e alla cronologia di navigazione. L'elenco dei tag acquisiti viene ordinato per peso e i primi 200 vengono suddivisi in diversi gruppi semantici. Le permutazioni dei tag all'interno di ciascun gruppo semantico vengono utilizzate per generare nuove frasi di tag, che vengono poi codificate in vettori semantici attraverso il servizio BERT-as-service.
Per ogni profilo utente, gli insiemi di frasi tag hanno un corrispondente insieme di argomenti, contrassegnati da un peso che indica il livello di interesse dell'utente. I primi due argomenti di tutti gli argomenti rilevanti vengono selezionati e codificati dal modello di apprendimento automatico (ML) per essere inseriti nel vettore semantico dei tag corrispondente, formando un vettore semantico utente a 968 dimensioni. Anche se il sistema genera gli stessi tag per utenti diversi, i diversi pesi per i tag e gli argomenti corrispondenti, così come la varianza esplicita tra i vettori di argomenti di ciascun utente, assicurano che le raccomandazioni siano uniche.
Il sistema è in grado di fornire raccomandazioni personalizzate sulle notizie calcolando la similarità del coseno dei vettori semantici estratti sia dai profili degli utenti sia dagli articoli di notizie.
Sohu01.jpg
Calcolo di nuovi vettori semantici del profilo utente e loro inserimento in Milvus
I vettori del profilo semantico degli utenti vengono calcolati ogni giorno, con i dati del periodo precedente di 24 ore elaborati la sera successiva. I vettori vengono inseriti singolarmente in Milvus e sottoposti al processo di interrogazione per fornire agli utenti risultati rilevanti sulle notizie. Il contenuto delle notizie è intrinsecamente attuale, per cui il calcolo deve essere eseguito ogni ora per generare un newsfeed attuale che contenga contenuti con un alto tasso di clic previsto e rilevanti per gli utenti. I contenuti delle notizie sono inoltre ordinati in partizioni per data e le notizie vecchie vengono eliminate ogni giorno.
Riduzione del tempo di estrazione dei vettori semantici da giorni a ore
Il recupero dei contenuti utilizzando i vettori semantici richiede la conversione di decine di milioni di frasi di tag in vettori semantici ogni giorno. Si tratta di un processo lungo che richiederebbe giorni per essere completato anche se eseguito con unità di elaborazione grafica (GPU), che accelerano questo tipo di calcolo. Per superare questo problema tecnico, i vettori semantici dell'incorporazione precedente devono essere ottimizzati in modo che, quando emergono frasi di tag simili, i vettori semantici corrispondenti vengano recuperati direttamente.
Il vettore semantico dell'insieme di frasi tag esistente viene memorizzato e un nuovo insieme di frasi tag generato giornalmente viene codificato in vettori MinHash. La distanza di Jaccard viene utilizzata per calcolare la somiglianza tra il vettore MinHash della nuova frase tag e il vettore della frase tag salvata. Se la distanza di Jaccard supera una soglia predefinita, i due set sono considerati simili. Se la soglia di somiglianza è soddisfatta, le nuove frasi possono sfruttare le informazioni semantiche delle incorporazioni precedenti. Secondo i test, una distanza superiore a 0,8 dovrebbe garantire un'accuratezza sufficiente per la maggior parte delle situazioni.
Grazie a questo processo, la conversione giornaliera delle decine di milioni di vettori di cui sopra si riduce da giorni a circa due ore. Anche se altri metodi di memorizzazione dei vettori semantici potrebbero essere più appropriati a seconda dei requisiti specifici del progetto, il calcolo della somiglianza tra due frasi tag utilizzando la distanza di Jaccard in un database Milvus rimane un metodo efficiente e accurato in un'ampia varietà di scenari.
Sohu02.jpg
Superare i "casi negativi" della classificazione dei testi brevi
Quando si classifica un testo di notizie, gli articoli brevi hanno meno caratteristiche da estrarre rispetto a quelli più lunghi. Per questo motivo, gli algoritmi di classificazione falliscono quando contenuti di lunghezza diversa vengono sottoposti allo stesso classificatore. Milvus aiuta a risolvere questo problema cercando più informazioni di classificazione di testi lunghi con semantica simile e punteggi affidabili, quindi utilizzando un meccanismo di voto per modificare la classificazione dei testi brevi.
Identificare e risolvere gli errori di classificazione del testo breve
La classificazione precisa di ogni articolo di cronaca è fondamentale per fornire raccomandazioni utili sui contenuti. Poiché gli articoli brevi hanno meno caratteristiche, l'applicazione dello stesso classificatore a notizie di lunghezza diversa comporta un tasso di errore più elevato per la classificazione dei testi brevi. L'etichettatura umana è troppo lenta e imprecisa per questo compito, quindi BERT-as-service e Milvus vengono utilizzati per identificare rapidamente i testi brevi mal classificati in lotti, riclassificarli correttamente e utilizzare i lotti di dati come corpus per l'addestramento contro questo problema.
BERT-as-service viene utilizzato per codificare in vettori semantici un numero totale di cinque milioni di articoli di notizie lunghe con un punteggio del classificatore superiore a 0,9. Dopo aver inserito gli articoli di testo lunghi in Milvus, le notizie di testo brevi vengono codificate in vettori semantici. Ogni vettore semantico di notizie brevi viene utilizzato per interrogare il database Milvus e ottenere i primi 20 articoli di notizie lunghe con la più alta somiglianza di coseno con le notizie brevi di destinazione. Se 18 delle 20 notizie lunghe più simili dal punto di vista semantico sembrano rientrare nella stessa classificazione e questa differisce da quella delle notizie brevi interrogate, la classificazione delle notizie brevi è considerata errata e deve essere corretta per allinearsi ai 18 articoli di notizie lunghe.
Questo processo identifica e corregge rapidamente le classificazioni imprecise dei testi brevi. Le statistiche di campionamento casuale mostrano che dopo la correzione delle classificazioni dei testi brevi, l'accuratezza complessiva della classificazione del testo supera il 95%. Sfruttando la classificazione di testi lunghi ad alta affidabilità per correggere la classificazione di testi brevi, la maggior parte dei casi di cattiva classificazione viene corretta in breve tempo. Questo offre anche un buon corpus per l'addestramento di un classificatore di testi brevi.
.
Milvus è in grado di fornire raccomandazioni di contenuti giornalistici in tempo reale e altro ancora
Milvus ha migliorato notevolmente le prestazioni in tempo reale del sistema di raccomandazione delle notizie di Sohu e ha anche rafforzato l'efficienza dell'identificazione dei testi brevi mal classificati. Se siete interessati a saperne di più su Milvus e sulle sue varie applicazioni, leggete il nostro blog:
- Comprendere il flusso di lavoro di un sistema di raccomandazione delle notizie
- Superare i "casi negativi" della classificazione dei testi brevi
- Milvus è in grado di fornire raccomandazioni di contenuti giornalistici in tempo reale e altro ancora
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word