• Non ci sono risultati.

A) Se xi=1 & xj=1 //se l’utente acquista contestualmente i beni i e j

I)

II) Calcola

Algoritmo 5.2 - Calcolo in modalità dinamica degli elementi secondo un’interpretazione “ristretta” del concetto di correlazione tra item.

Le differenze tra l‘Algoritmo 5.1 e l‘Algoritmo 5.2, oltre che legate ad una diversa interpretazione del concetto di correlazione tra item, sono anche relative alla diversa modalità di computazione (locale vs online), e ai loro effetti (è ragionevole ritenere che la matrice generata dall‘Algoritmo 5.1 sia notevolmente meno sparsa di quella generata dall‘Algoritmo 5.2).

Indipendentemente dall‘algoritmo utilizzato, la probabilità di acquisto del prodotto i condizionata alla scelta del prodotto j in B0 potrà essere calcolata come segue:

148

(12)

Il numero di acquisti contestuali di i e j viene diviso per il numero di acquisti complessivi di j. Tale formulazione è derivato dal teorema della probabilità composta (si veda l’Appendice E). Tale valore è moltiplicato per un coefficiente dipendente dallo sconto erogato, reso possibile dalle sinergie tra i e j. Si ipotizza in modo semplificativo che al crescere dello sconto rispetto al prezzo, aumenti proporzionalmente la probabilità di acquisto.

(13)

La formula (12) attribuisce probabilità zero ai prodotti mai acquistati in corrispondenza del bene j. Nel modello sequenziale questo non costituisce un problema per la massimizzazione dell‘utilità attesa, poiché non è previsto alcun prodotto di probabilità. Ciononostante, poiché potrebbe essere indesiderabile escludere del tutto che un bene venga acquistato, è possibile incrementare la probabilità con un coefficiente da stabilire arbitrariamente, oppure è possibile settare in avvio

dell‘algoritmo .

Giova fare un esempio per chiarire meglio il funzionamento della funzione: siano date la matrici M(CP) (Tabella 5.2) e M(PP)( Tabella 5.3)

M(CP) Prodotto 1 Prodotto 2 Prodotto 3 Prodotto 4 Prodotto 5 Prodotto 6

Cliente 1 0 1 0 0 0 1 Cliente 2 1 0 0 0 0 0 Cliente 3 1 1 0 0 0 0 Cliente 4 1 0 0 0 0 1 Cliente 5 1 1 0 0 0 1 Cliente 6 0 0 0 0 0 1 Cliente 7 0 0 1 0 0 0 Cliente 8 0 0 1 1 1 0 Cliente 9 1 0 0 1 0 1 Cliente 10 0 0 0 0 0 1 Cliente 11 0 1 0 0 1 0 Cliente 12 0 0 0 0 0 1 Cliente 13 1 0 0 0 0 0

149 Cliente 14 0 0 0 0 0 1 Cliente 15 0 0 1 0 1 0 Cliente 16 1 0 0 0 0 0 Cliente 17 0 0 0 0 0 1 Cliente 18 0 0 0 0 1 1 Cliente 19 0 1 0 0 0 0 TOT 7 5 3 2 4 10

Tabella 5.2 - Esempio di matrice cliente/prodotto M(CP)

M(PP) Prodotto 1 Prodotto 2 Prodotto 3 Prodotto 4 Prodotto 5 Prodotto 6

Prodotto 1 - 2 1 4 Prodotto 2 2 - 1 1 Prodotto 3 - 1 2 Prodotto 4 1 1 1 - 1 1 Prodotto 5 2 1 - 1 Prodotto 6 4 1 1 1 -

Tabella 5.3 - Esempio di matrice prodotto/prodotto M(PP)

i dato j 1 dato 2 4 dato 5 6 dato 1 1 dato 6

Tabella 5.4 - Computazione della probabilità di acquisto di alcune combinazioni di prodotti

5.3.2 L’erogazione della lista di raccomandazione

La lista di raccomandazione viene quindi presentata in ordine decrescente di profittabilità attesa, massimizzando la funzione

INC (14)

Rispetto alla funzione (4) non è necessario ricorrere all‘esponenziale per calcolare il valore atteso, poiché l‘algoritmo deve selezionare un solo prodotto tra gli n-1 disponibili. E‘ importante evidenziare che è in questo caso calcolata diversamente da quanto fatto nel EPCR (Paragrafo 5.2.2), ed è – di fatto – condizionata alla scelta del bene 0. Ancora una volta, quindi, si supera il limite generico della funzione (4), relativo all‘assunzione di indipendenza delle probabilità di acquisto. Nella funzione (14) è possibile omettere la differenza tra p0 e c0, che non influenza la ricerca del prodotto ottimale. E‘ opportuno evidenziare che la formulazione della stima della probabilità di acquisto è in qualche misura un lower bound della probabilità reale, in quanto non

150

tiene conto dell‘impatto che lo sconto derivante dalla spartizione delle sinergie può avere sulla decisione d‘acquisto.

Un ruolo importante della formula (14) è senz‘altro giocato dal parametro α, il quale permette al prodotto di salire nella ―classifica‖ dei raccomandabili aumentando il profitto conseguito ed il parametro β.

In particolare, α potrà essere mantenuto costante ad un livello scelto dal venditore, oppure cambiato automaticamente dal sistema tenendo conto di diversi fattori quali:

fedeltà dell’utente: un utente fedele potrà essere premiato con valori di α sempre maggiori

al crescere del suo storico degli acquisti. Un ragionamento simile può essere fatto per clienti che non hanno mai acquistato o che sono inattivi da molto tempo, per spronarli a tornare attivi.

cluster dell’utente: un utente riconosciuto come price sensitive o deal sensitive, potrà dover ricevere uno sconto maggiore rispetto ad altre categorie affinché sia persuaso all‘acquisto. Allo stesso modo, sarà difficile spingere un utente goal directed ad accrescere il proprio carrello senza un incentivo adeguato.

numero di iterazioni: all‘aumentare del numero di iterazioni nella fase di acquisto, il cliente diventa impaziente di concludere la transazione, ed è sempre meno sensibile ai suggerimenti del portale.

La manipolazione di α potrebbe comunque avere ripercussioni per quanto concerne la disciplina della concorrenza, come si è visto nel Paragrafo 3.6, e andrebbe quindi studiata con grande cautela.

5.3.3 La simulazione della risposta del cliente

La risposta del cliente viene modellata analogamente a quanto già visto nel Paragrafo 5.2.4

5.4 Raccomandazioni successive alla prima

Rispetto al caso precedente, esistono alcune differenze che è opportuno esplicitare nei paragrafi a seguire.

151

5.4.1 Il calcolo della probabilità di acquisto

La probabilità di acquisto del nuovo prodotto nell‘iterazione y dipende dai prodotti inclusi nel

bundle precedente By-1; la probabilità individuata con la funzione (12) viene quindi generalizzata come segue.

(15)

Con (16)

5.4.2 L’erogazione della lista di raccomandazione

La lista di raccomandazione viene quindi presentata in ordine decrescente di profittabilità attesa, massimizzando la funzione (17)

(17)

5.4.3 La simulazione della risposta del cliente

La risposta del cliente viene modellata analogamente a quanto già visto nel Paragrafo 5.2.4

5.5 Algoritmo completo (raccomandazione di un singolo prodotto)

CALCOLO SIMILARITÀ (OFFLINE)

A) For i=1 To i=n //per ogni prodotto

I) For z=1 To z=m //per ogni cliente

1) Se

(a) //operatore di miz

2) Altrimenti (a)

152 II) i=i+1

B) For z=1 To z=m I) For j=1 To j=m

1) For i=1 To i=n

(i) num_simjz=num_simjz +

(ii) den_simjz=den_simjz+

(iii) i=i+1 (b) j=j+1

2) z=z+1 C) For j=1 To j=m

I) For z=1 To z=m

(a) Se /*il database generato non garantisce che tutti i

clienti abbiano effettuato almeno un acquisto */ (i)

(b) (i) (c) 2) j=j+1

CALCOLO COEFFICIENTE NORMALIZZAZIONE (OFFLINE) D) For z=1 To z= m I) For j=1 To j=m 1) For i = 1 To i=n (a) 2) i=i+1 II) j=j+1 III) Se 1) IV) 1) z=z+1

CALCOLO PROBABILITA’ DI ACQUISTO PER L’UTENTE W (OFFLINE) E) For w=1 To w=m

153 I) For i=1 To i=n

1) For z= 1 To z=m (a)

2) z=z+1 II) i=i+1 w=w+1

EROGAZIONE RACCOMANDAZIONE 0 PER W (OFFLINE o ONLINE) F) Inizializza: Uscita = FALSO, γ1, γ2,

G) carrello = vettore di v elementi H) l=0,

I) For i=1 To i=n

I) Se /*nella versione tradizionale, solo Se

*/

1)

2) Max ← i II) i=i+1

Output Max //il prodotto con l’utilità attesa maggiore viene raccomandato y=0

SIMULAZIONE DELLA RISPOSTA DEL CLIENTE ALLA RACCOMANDAZIONE 0

J) Se >0

I) carrellol=Max //il prodotto Max viene aggiunto al carrello

K) Altrimenti

I) cas1 ← casuale (0,1)

II) //inizializzo la probabilità di abbandono

III) Se cas1<

1) Uscita = VERO //Uscita senza acquisto

IV) Altrimenti //compra un altro bene dal paniere

1) cas2 ← casuale (0,1) 2) i=1

3) πcum= πi

4) Finché cas2>πcum

(a) i=i+1

154

5) carrellol=i //l’utente sceglie il bene in base alla probabilità

EROGAZIONE RACCOMANDAZIONE 1 PER W (ONLINE) L) Inizializza M) l=1, y=1 N) For j=1 To j=n I) Se j ≠ carrello0 1) 2) Se

//nella versione tradizionale, solo Se (a)

(b) Max ← j 3) j=j+1

Output Max //il prodotto con l’utilità attesa maggiore viene raccomandato SIMULAZIONE DELLA RISPOSTA DEL CLIENTE ALLA RACCOMANDAZIONE 1

O) Se >0

I) carrellol=Max //il prodotto Max viene aggiunto nel carrello

II) Altrimenti Se cas1≥ && cas1≤ //compra un altro bene dal

paniere

1) j=1

2) cas2 ← casuale (0,1) 3) πcum= πj

4) Finché cas2>πcum

(a) j=j+1

(b) πcum= πcum +πj

5) carrello1=j //scelgo il prodotto j nel paniere 1

III) Altrimenti

1) Uscita = VERO //Uscita con acquisto di B0

EROGAZIONE RACCOMANDAZIONE y PER W (ONLINE) P) totpcarr=0

155 R) Finché Uscita=FALSO

I) For k=1 To k=n //per ogni prodotto

1) For h=0 To h=l //per ogni prodotto già scelto dal cliente

(a) /*k e l’h-esimo componente

del carrello */ (b) (c) (d) 2) II) k=k+1

III) For i=1 To i=n 1) 2) For h=1 To h=l (a) (b) (i) (c) 3) i=i+1 IV) For i=1 To i=n

1) salta = FALSO 2) For h=1 To h=l (a) (i) 3) 4) Se salta = FALSO (a)Se

//nella versione tradizionale, solo Se (i)

(ii) Max ← i 2) i=i+1

156

// SIMULAZIONE DELLA RISPOSTA DEL CLIENTE ALLA RACCOMANDAZIONE y II) For h=1 To h=l 1) 2) III) Se >0 1) carrellol=Max

IV) Altrimenti Se cas1≥ && cas1≤ //compra un altro bene dal

paniere

1) j=1

2) cas2 ← casuale (0,1) 3) πcum= πj

4) Finché cas2>πcum

(a) j=j+1

(b) πcum= πcum +πj

5) carrellol=j //scelgo il prodotto j nel paniere 1

V) Altrimenti

1) Uscita = VERO //Uscita con acquisto di B0

Text Recommender)

La dinamica del secondo modello proposto è molto simile a quella del precedente, ma si differenzia da essa in modo sostanziale nella tipologia di raccomandazione erogata. Se nel primo modello veniva offerto al cliente un prodotto unico (o una lista ordinata di proposte uniche), nel secondo viene proposto un bundle completo di k oggetti con sinergie tra loro. L‘approccio è riconducibile a proporre un single negotiation text (Raiffa, 1982).

In questo capitolo si propongono quindi alcune meta euristiche orientate a fornire in tempi brevissimi bundle le cui caratteristiche siano quanto più possibile vicine all‘ottimalità. Si ipotizzerà che il cliente possa soltanto accettare o rifiutare un bundle, non tenendo in considerazione il caso in cui l‘utente possa scegliere uno o più dei prodotti consigliati, separatamente dagli altri. Sebbene il venditore possa trovare questo comportamento dell‘algoritmo indesiderabile, tale semplificazione oltre a ridurre considerevolmente la complessità, deriva dall‘inscindibilità del gruppo di prodotti proposto dal prezzo del bundle offerto, determinata appunto dalla computazione delle sinergie.

158

6.1 Dinamica del modello

Venditore Compratore Login al sito Raccomandazione 0 Collaborative Filtering con massimizzazione del profitto Azione B0 = oggetto

scelto dal cliente Ignora raccomandazione Accetta raccomandazione B0 = oggetto raccomandato Raccomandazione 1 Item-to-Item Correlation con massimizzazione del

profitto (Bundle di k beni)

La raccomandazione è statica, preparata prima del login in

locale

Raccomandazione dinamica, basata sulla

scelta del cliente, individuata in modo euristico Azione B1 = B’1 B1 = B0 Accetta raccomandazione Ignora raccomandazione Acquisto B1 = B0 + oggetto

scelto dal cliente B’1

Raccomandazione y Item-to-Item Correlation con massimizzazione del

profitto (Bundle di k beni, inclusi

quelli scelti dal cliente)

B’y Azione By+1 = B’y By+1 = By Accetta raccomandazione Ignora raccomandazione Acquisto By+1 = By + oggetto

scelto dal cliente Raccomandazione dinamica, basata su By individuata in modo euristico Abbandona

Figura 6.1 - Dinamica semplificata del modello a testo unico negoziabile

Come nel capitolo precedente, di seguito si darà una breve overview delle fasi del modello finalizzata a semplificare la comprensione del tutto.

159

(0) L’utente effettua il login nel portale (analoga al modello sequenziale, vd. Paragrafo 5.2). Sulla base della ―somiglianza‖ dell‘utente con altri clienti determinata attraverso opportuna profilazione, il sistema dispone di una lista di n prodotti ordinata per profitto atteso del venditore decrescente. Essa viene sottoposta all‘utente prima di ogni altra sua azione. Il metodo di raccomandazione utilizzato è, quindi, una forma innovativa di collaborative

filtering. A questo punto l‘utente può compiere tre possibili azioni:

a. accettare un prodotto tra quelli raccomandati;

b. scegliere un prodotto di suo interesse al di fuori di quelli raccomandati; c. effettuare logout o abbandonare il sito.

(y) L’utente sceglie un prodotto. Sia nel caso a. che nel caso b., il sistema dispone di un

bundle unitario B0, sulla base del quale effettuare la seconda raccomandazione. Questa volta

la probabilità di acquisto viene computata attraverso una forma innovativa di item-to-item

correlation, che tiene conto delle possibili sinergie del prodotto scelto in B0, con gli altri prodotti in catalogo. Il sistema propone al cliente un bundle composto da k elementi, incluso quello scelto dal cliente, tali da massimizzare il profitto atteso. La massimizzazione del profitto atteso per il venditore è in questo caso un problema -complesso, a causa della molteplicità di sinergie che possono intervenire tra i beni. E‘ quindi necessario utilizzare metodi euristici che siano in grado di fare una proposta quanto più vicina all‘ottimalità in pochi secondi. Il venditore stabilisce anche come dividere con il compratore il beneficio economico derivante dalla presenza di una sinergia, intervenendo sul parametro α. A questo punto l‘utente può compiere quattro possibili azioni:

a. accettare il bundle proposto ed effettuare il pagamento; b. ignorare la raccomandazione e acquistare B0;

c. ignorare la raccomandazione e richiedere la generazione di un nuovo bundle d. effettuare logout o abbandonare il sito.

6.2 Raccomandazione 0 – Expected Profit Collaborative Recommender (EPCR)

La raccomandazione al passo 0 di questa seconda versione dell‘algoritmo avviene in ogni sua parte (individuazione del cluster, calcolo della probabilità, erogazione della lista di raccomandazione, risposta del cliente) analogamente a quanto visto nel Paragrafo 5.2 per la prima versione.

160

6.3 Raccomandazione 1 – Expected Profit Item-to-Bundle Recommender (EPIBR)

La prima scelta del cliente costituisce il punto di partenza per la formazione del bundle da suggerire. A questo punto occorre risolvere il problema del corretto calcolo del valore atteso in tempi computazionali tollerabili, mantenendo le risorse di memoria limitate e realizzando una stima ragionevole della probabilità di acquisto che tenga conto dei vari aspetti legati alla raccomandazione di un insieme di beni.

6.3.1 Calcolo della probabilità di acquisto

La probabilità calcolata con la funzione (12) non è correttamente applicabile al modello EPIBR, poiché non tiene conto delle interazioni tra gli item del bundle.

Si propongono quindi due possibili soluzioni atte a stimare la probabilità di acquisto del bundle. La prima soluzione utilizza l‘assunzione semplificativa che le probabilità di acquisto dei prodotti siano statisticamente indipendenti; la probabilità di acquisto del prodotto i è quindi data dal numero di transazioni in cui è stato acquistato diviso il numero totale di transazioni:

(18)

Le singole probabilità dei beni appartenenti al bundle vengono quindi moltiplicate tra loro per determinare la probabilità del bundle come esposto nella funzione (19).

(19)

In forma di algoritmo, l‘equazione (19) può essere calcolata come segue: A)

B) For i=1 To i=n

I) Se

1) II) C)

161

Documenti correlati