Come funziona la funzione Raccomandazione Amazon?


144

Quale tecnologia si trova dietro gli schermi della tecnologia delle raccomandazioni di Amazon? Credo che la raccomandazione di Amazon sia attualmente la migliore sul mercato, ma come ci forniscono raccomandazioni così rilevanti?

Di recente, siamo stati coinvolti in progetti di tipo analogo di raccomandazione, ma sicuramente vorremmo conoscere l'entrata e l'uscita della tecnologia delle raccomandazioni di Amazon da un punto di vista tecnico.

Qualsiasi input sarebbe molto apprezzato.

Aggiornare:

Questo brevetto spiega come vengono fatte raccomandazioni personalizzate ma non è molto tecnico, quindi sarebbe davvero bello se potessero essere fornite alcune intuizioni.

Dai commenti di Dave, l' analisi dell'affinità costituisce la base per questo tipo di motori di raccomandazione. Anche qui ci sono alcune buone letture sull'argomento

  1. Demistificazione dell'analisi del paniere di mercato
  2. Analisi del paniere di mercato
  3. Analisi di affinità

Lettura consigliata:

  1. Data mining: concetti e tecnica

3
Hai provato a setacciare la loro pila di brevetti? google.com/patents
Dolph,

Sì, ho esaminato il brevetto ma non è molto tecnico e quindi apprezzerei alcune intuizioni sull'aspetto tecnico del meccanismo
Rachel,

1
@Dave: questa domanda è aperta ora e apprezzerei molto se tu potessi dare qualche informazione in più sulla tecnologia alla base dell'architettura e delle funzionalità del motore di raccomandazione che Amazon utilizza per fornire consigli.
Rachel,

1
Non definirei il sistema di raccomandazioni di Amazon "il migliore" o addirittura utile. Ordina un mouse, suggerisce di acquistarne anche un altro. Perché un utente normale avrebbe bisogno di due topi contemporaneamente ???

1
@Rachel: Dato che sai che il sistema di Amazon è brevettato e vuoi sviluppare qualcosa di simile, non darei nemmeno un'occhiata ai loro brevetti --- e ovviamente non guardarli non ti protegge neanche, ma è un inizio.

Risposte:


105

È sia un'arte che una scienza. Tipici campi di studio ruotano attorno all'analisi del paniere di mercato (anche chiamata analisi di affinità) che è un sottoinsieme del campo del data mining. I componenti tipici di un tale sistema includono l'identificazione degli elementi principali del conducente e l'identificazione degli elementi di affinità (vendita di accessori, vendita incrociata).

Tieni a mente le fonti di dati che devono estrarre ...

  1. Carrelli della spesa acquistati = soldi veri da persone reali spesi per oggetti reali = dati potenti e molto.
  2. Oggetti aggiunti ai carrelli ma abbandonati.
  3. Esperimenti sui prezzi online (test A / B, ecc.) In cui offrono gli stessi prodotti a prezzi diversi e vedono i risultati
  4. Esperimenti di packaging (test A / B, ecc.) In cui offrono prodotti diversi in "fasci" diversi o scontano vari abbinamenti di articoli
  5. Liste dei desideri - cosa c'è su di loro appositamente per te - e in generale può essere trattata in modo simile a un altro flusso di dati di analisi del paniere
  6. Siti di riferimento (l'identificazione del luogo di provenienza può suggerire altri elementi di interesse)
  7. Tempi di permanenza (quanto tempo prima di fare clic indietro e scegliere un altro elemento)
  8. Valutazioni da te o da quelli nel tuo social network / cerchie di acquisto - se valuti le cose che ti piacciono ottieni più di quello che ti piace e se confermi con il pulsante "lo possiedo già" creano un profilo molto completo di te
  9. Informazioni demografiche (indirizzo di spedizione, ecc.): Sanno cosa è popolare nella tua zona generale per i tuoi figli, te stesso, il tuo coniuge, ecc.
  10. segmentazione utente = hai comprato 3 libri in mesi separati per un bambino? probabilmente avere un figlio o più .. ecc.
  11. Dati click-through marketing diretto: hai ricevuto un'email da loro e fai clic? Sanno quale email era e cosa hai cliccato e se l'hai acquistata di conseguenza.
  12. Percorsi di clic in sessione: cosa hai visualizzato indipendentemente dal fatto che sia stato inserito nel carrello
  13. Numero di volte in cui un articolo è stato visualizzato prima dell'acquisto finale
  14. Se hai a che fare con un negozio di mattoni e malta potrebbero avere anche la cronologia degli acquisti fisici da cui partire (ad es. Giocattoli o qualcosa che è online e anche un negozio fisico)
  15. ecc. ecc. ecc.

Fortunatamente le persone si comportano allo stesso modo in modo aggregato, quindi più conoscono la popolazione acquirente in generale, meglio sanno cosa venderanno e non venderanno e con ogni transazione e ogni valutazione / lista dei desideri aggiungi / naviga sanno come personalizzare più personalmente le raccomandazioni. Tieni presente che questo è probabilmente solo un piccolo esempio della serie completa di influenze di ciò che finisce nelle raccomandazioni, ecc.

Ora non ho alcuna conoscenza interna di come Amazon fa affari (non ho mai lavorato lì) e tutto ciò che sto facendo è parlare di approcci classici al problema del commercio online: ero il PM che lavorava sul data mining e sull'analisi per Microsoft prodotto chiamato Commerce Server. Abbiamo spedito a Commerce Server gli strumenti che consentivano alle persone di costruire siti con funzionalità simili .... ma maggiore è il volume delle vendite, migliori sono i dati, migliore è il modello - e Amazon è GRANDE. Posso solo immaginare quanto sia divertente giocare con i modelli con così tanti dati in un sito orientato al commercio. Ora molti di questi algoritmi (come il predittore iniziato nel server di commercio) sono passati a vivere direttamente in Microsoft SQL .

I quattro grandi modi che dovresti avere sono:

  1. Amazon (o qualsiasi rivenditore) sta esaminando i dati aggregati per tonnellate di transazioni e tonnellate di persone ... questo consente loro anche di raccomandare abbastanza bene agli utenti anonimi sul loro sito.
  2. Amazon (o qualsiasi rivenditore specializzato) sta monitorando il comportamento e gli acquisti di chiunque abbia effettuato l'accesso e lo utilizzi per perfezionare ulteriormente i dati aggregati di massa.
  3. Spesso c'è un modo per superare i dati accumulati e assumere il controllo "editoriale" dei suggerimenti per i product manager di linee specifiche (come una persona che possiede la verticale delle "fotocamere digitali" o verticale "simili" o simili) sono esperti
  4. Esistono spesso offerte promozionali (ad es. Sony o Panasonic o Nikon o Canon o Sprint o Verizon pagano denaro aggiuntivo al rivenditore o offrono uno sconto migliore a quantità maggiori o altre cose in quelle righe) che causano il sorgere di alcuni "suggerimenti" il più spesso degli altri - c'è sempre una logica aziendale ragionevole e ragioni commerciali dietro questo mirato a fare di più su ogni transazione o ridurre i costi all'ingrosso, ecc.

In termini di effettiva attuazione? Quasi tutti i grandi sistemi online si riducono a una serie di condutture (o un'implementazione del modello di filtro o un flusso di lavoro, ecc. Lo chiami come vuoi) che consente di valutare un contesto da una serie di moduli che applicano una qualche forma di logica di business.

In genere una pipeline diversa verrebbe associata a ciascuna attività separata nella pagina: potresti averne una che consiglia "pacchetti / upsell" (ad es. Acquista questo con l'oggetto che stai guardando) e uno che fa "alternative" (es. Acquista questo invece della cosa che stai guardando) e un altro che estrae gli articoli più strettamente correlati dalla tua lista dei desideri (per categoria di prodotto o simili).

I risultati di queste pipeline possono essere posizionati su varie parti della pagina (sopra la barra di scorrimento, sotto lo scorrimento, a sinistra, a destra, caratteri diversi, immagini di dimensioni diverse, ecc.) E testati per vedere quali migliore. Dato che stai usando dei moduli facili da collegare e riprodurre che definiscono la logica di business per queste pipeline, finisci con l'equivalente morale dei blocchi lego che rendono facile scegliere e scegliere dalla logica di business che vuoi applicare quando costruisci un'altra pipeline che consente un'innovazione più rapida, più sperimentazione e, alla fine, maggiori profitti.

Ti è stato di aiuto? Spero che ti dia un po 'di informazioni su come funziona in generale per qualsiasi sito di e-commerce, non solo per Amazon. Amazon (dal parlare con gli amici che hanno lavorato lì) è molto guidato dai dati e misura continuamente l'efficacia della sua esperienza utente e il prezzo, la promozione, l'imballaggio, ecc. - Sono un rivenditore online molto sofisticato e sono probabilmente all'avanguardia di molti algoritmi che usano per ottimizzare il profitto - e quelli sono probabilmente segreti proprietari (sai come la formula delle spezie segrete di KFC) e difesi come tali.


1
Sì. Mi ha aiutato molto e apprezzo molto i tuoi contributi sull'argomento.
Rachel

intuizioni sorprendenti
Shobi,

28

Questo non è direttamente correlato al sistema di raccomandazioni di Amazon, ma potrebbe essere utile studiare i metodi utilizzati dalle persone che hanno partecipato al Premio Netflix , un concorso per sviluppare un sistema di raccomandazioni migliore utilizzando i dati utente di Netflix. Esistono molte buone informazioni nella loro comunità sulle tecniche di data mining in generale.

Il team che ha vinto ha utilizzato una combinazione di raccomandazioni generate da molti modelli / tecniche diversi. So che alcuni dei principali metodi utilizzati erano l'analisi dei componenti principali, i metodi più vicini e le reti neurali. Ecco alcuni articoli del team vincitore:

R. Bell, Y. Koren, C. Volinsky, " La soluzione BellKor 2008 al premio Netflix ", (2008).

A. Töscher, M. Jahrer, “ La soluzione BigChaos al premio Netflix 2008 ", (2008).

A. Töscher, M. Jahrer, R. Legenstein, " Algoritmi di vicinato migliorati per sistemi di raccomandazione su larga scala ", Workshop SIGKDD su sistemi di raccomandazione su larga scala e Concorso a premi Netflix (KDD'08), ACM Press (2008) .

Y. Koren, " La soluzione BellKor al Gran Premio di Netflix ", (2009).

A. Töscher, M. Jahrer, R. Bell, " La soluzione BigChaos al Gran Premio di Netflix ", (2009).

M. Piotte, M. Chabbert, " La soluzione della teoria pragmatica al Gran Premio di Netflix ", (2009).

I documenti del 2008 sono tratti dal premio Progress del primo anno. Consiglio di leggere prima i primi perché quelli successivi si basano sul lavoro precedente.


2
Quello che mi piace di questa risposta è che indica il fatto che non esiste una risposta "perfetta" e che le persone continuano a innovare in questo settore: c'è sempre qualche margine di miglioramento e quando i tempi cambiano e nuovi metodi vengono applicati ai problemi continuerà a essere risolto in modo diverso. E se leggi i link dettagliati puoi vedere come esiste una "miscela" di diversi approcci alla previsione all'interno di ciascuno dei grandi contendenti per il premio. Grandi riferimenti.
Dave Quick


20

(Disclamer: lavoravo in Amazon, anche se non ho lavorato nel team dei consigli.)

La risposta di ewernli dovrebbe essere quella corretta: il documento si collega al sistema di raccomandazioni originale di Amazon, e da quello che posso dire (sia per esperienza personale come acquirente Amazon che per aver lavorato su sistemi simili in altre società), è cambiato molto poco: il suo nucleo, la funzione di raccomandazione di Amazon è ancora fortemente basata sul filtro collaborativo da articolo a articolo.

Guarda quale forma prendono i consigli: sulla mia prima pagina, sono tutti del modulo "Hai visto X ... I clienti che hanno visto anche questo hanno visto anche ...", oppure un miscuglio di articoli simili a cose Ho comprato o visualizzato prima. Se vado specificamente alla mia pagina "Consigliato per te", ogni articolo descrive perché mi è consigliato: "Consigliato perché hai acquistato ...", "Consigliato perché hai aggiunto X alla tua lista dei desideri ...", ecc. Questo è un classico segno di filtro collaborativo da articolo a oggetto.

Quindi, come funziona il filtro collaborativo da articolo a articolo? Fondamentalmente, per ogni articolo, costruisci un "quartiere" di oggetti correlati (ad esempio, guardando quali oggetti le persone hanno visualizzato insieme o quali oggetti le persone hanno acquistato insieme - per determinare la somiglianza, puoi utilizzare metriche come l' indice Jaccard ; correlazione è un'altra possibilità, anche se sospetto che Amazon non usi molto pesantemente i dati delle valutazioni). Quindi, ogni volta che visualizzo un oggetto X o faccio un acquisto Y, Amazon mi suggerisce cose nello stesso quartiere di X o Y.

Alcuni altri approcci che Amazon potrebbe potenzialmente utilizzare, ma probabilmente non lo fanno, sono descritti qui: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -con-amazzoni-raccomandazione-system /

Molto di ciò che Dave descrive non è quasi certamente fatto su Amazon. (Valutazioni da parte di quelli nel mio social network? No, Amazon non ha nessuno dei miei dati social. Questo sarebbe comunque un grosso problema di privacy, quindi sarebbe difficile per Amazon farlo anche se avessero quei dati: le persone non vogliono che i loro amici sappiano quali libri o film stanno acquistando. Informazioni demografiche? No, niente nei consigli suggerisce che stanno guardando questo. .])


Amazon ha esposto per anni circoli di acquisto - che erano tendenze di acquisto anonime basate sul nome di dominio e sul codice postale dell'azienda. Prima di poter ottenere informazioni su di esso c'erano almeno 50 distinti acquirenti in una cerchia di acquisti, quindi Amazon sicuramente ha conservato, monitorato e utilizzato tali informazioni per aiutare se stessi (e gli altri) a capire cosa fosse popolare. Puoi guardare i cd, i componenti elettronici e gli acquisti di libri nella tua zona o nella tua azienda. Sono stati esposti dal 1999 al 2002. forum.dvdtalk.com/archive/t-122436.html ha anche una copia e incolla del testo da Amazon che li descrive.
Dave Quick,

3

Non ho alcuna conoscenza specifica dell'algoritmo di Amazon, ma un componente di tale algoritmo probabilmente implicherebbe il monitoraggio di gruppi di articoli spesso ordinati insieme e quindi l'utilizzo di tali dati per raccomandare altri articoli nel gruppo quando un cliente acquista un sottoinsieme del gruppo.

Un'altra possibilità sarebbe quella di tracciare la frequenza dell'articolo B ordinato entro N giorni dopo l'ordine dell'articolo A, il che potrebbe suggerire una correlazione.




0

Se desideri un'esercitazione pratica (utilizzando R open source), potresti fare di peggio che attraversarlo: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

È una versione ottimizzata per il runtime di un'altra opera: http://www.salemmarafi.com/code/collaborative-filtering-r/

Tuttavia, la variazione del codice sul primo collegamento funziona MOLTO più velocemente, quindi consiglio di usarlo (ho trovato che l'unica parte lenta del codice di yoshiki146 è la routine finale che genera la raccomandazione a livello di utente - ci sono voluti circa un'ora con i miei dati su la mia macchina).

Ho adattato questo codice affinché funzioni come motore di raccomandazione per il rivenditore per cui lavoro.

L'algoritmo utilizzato è - come altri hanno già detto sopra - filtro collaborativo. Questo metodo di CF calcola una matrice di somiglianza del coseno e quindi ordina per quella somiglianza per trovare il "vicino più vicino" per ciascun elemento (banda musicale nell'esempio fornito, prodotto al dettaglio nella mia applicazione).

La tabella risultante può raccomandare un gruppo / prodotto basato su un altro gruppo / prodotto scelto.

La sezione successiva del codice fa un ulteriore passo avanti con il filtro collaborativo basato su USER (o cliente).

L'output di questo è una tabella di grandi dimensioni con le prime 100 bande / prodotti consigliati per un determinato utente / cliente


1
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
Kos,

Vero ... L'algoritmo utilizzato è - come altri hanno già detto sopra - filtro collaborativo. Questo metodo di CF calcola una matrice di somiglianza del coseno e quindi ordina per quella somiglianza per trovare il "vicino più vicino" per ciascun elemento (banda musicale nell'esempio fornito, prodotto al dettaglio nella mia applicazione). La tabella risultante può raccomandare un gruppo / prodotto basato su un altro gruppo / prodotto scelto. La sezione successiva del codice fa un ulteriore passo avanti con il filtro collaborativo basato su USER (o cliente). L'output di questo è un grande tavolo con le prime 100 bande / prodotti consigliati per un determinato utente / cliente
ChrisD

per favore modifica la tua risposta e aggiungi queste informazioni lì, non nella sezione commenti, grazie
Kos
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.