Im ers­ten Teil der Blog­se­rie wur­den bereits die grund­le­gen­den Kom­po­nen­ten und deren Umset­zung mit­tels Open-Source-Soft­ware vor­ge­stellt. Dabei wurde auch deren gene­rel­les Zusam­men­spiel erläu­tert. Die wesent­li­che Arbeit der Daten­ana­lyse über­neh­men dabei Batch und Strea­ming Layer, aber was pas­siert eigent­lich hin­ter den Kulis­sen und wie kann die Web­site auf deren Grund­lage opti­miert wer­den? Die Lösung liegt in einer Reihe teils kom­ple­xer Algo­rith­men, deren Ein­satz exem­pla­risch erklärt wer­den soll.

Der zweite Teil der Blog­se­rie wird sei­ner­seits in wei­tere Teile unter­teilt, wobei jeder einen ande­ren Algo­rith­mus vor­stellt. In die­sem Teil wer­den die Mög­lich­kei­ten des Ein­sat­zes von Sequen­tial Pat­tern erläutert.

Algo­rith­men des Batch Layers

Noch ein­mal ein kur­zer Rück­blick auf das Auf­ga­ben­ge­biet des Batch Lay­ers: Hier wer­den exakte Berech­nun­gen durch­ge­führt und die Machine-Lear­ning-Algo­rith­men trai­niert. Auf Grund der Kom­ple­xi­tät die­ser Berech­nun­gen wei­sen sie eine gewisse Latenz auf, wes­we­gen sie in Inter­val­len aus­ge­führt wer­den. Zur pla­ka­ti­ven Beschrei­bung des Anwen­dungs­be­reichs wird das Bei­spiel eines Online-Rei­se­por­tals aus dem ers­ten Teil durch einen typi­schen E‑Com­merce-Shop ersetzt.

Sequen­tial Pattern

Sequen­tial Pat­tern ist eine Form des Asso­zia­tion-Rule-Mining, das sich auf die Erken­nung von hilf­rei­chen oder auch uner­war­te­ten Sequen­zen in einem Daten­satz spe­zia­li­siert. Anwen­dung fin­det sie vor allem bei Pro­dukt­vor­schlä­gen auf Grund­lage des aktu­el­len Waren­korbs eines Kun­den. Damit kön­nen Aus­sa­gen nach fol­gen­dem Schema erzeugt wer­den: Kun­den, die ein Buch X eines bestimm­ten Gen­res kauf­ten, kauf­ten auch Buch Y. Aus­sa­gen die­ser Kate­go­rie wer­den auf Grund­lage von Mus­tern getrof­fen. Dafür betrach­tet man die umge­setz­ten Waren­körbe aller Kun­den. Diese ent­spre­chen einer Sequenz von Kauf­ent­schei­dun­gen. Mit Hilfe eines Algo­rith­mus wer­den dann häu­fig auf­tre­tende Sequen­zen ermittelt.

Website Optimierung mit Advanced Analytics – Teil 2 Sequential Pattern Bild1
Abbil­dung 1 Ausgangsdaten

Die Abbil­dung 1 zeigt den Daten­satz mit vier Sequen­zen. Jede Sequenz reprä­sen­tiert die Pro­dukte, die von einem Nut­zer zu unter­schied­li­chen Zeit­punk­ten gekauft wur­den. Die Sequenz stellt dabei eine geord­nete Liste von Item­sets (Pro­dukte die zusam­men gekauft wur­den) dar. Zum Bei­spiel zeigt die vierte Sequenz (SID 4), dass ein Nut­zer erst b und danach f und g zusam­men­ge­kauft hat.

Einen klas­si­schen Ansatz zur Erken­nung sol­cher Mus­ter bie­tet Pre­fix­Span. Der Algo­rith­mus arbei­tet mit einem mini­mum sup­port thres­hold. Dar­un­ter ver­steht man einen Schwell­wert, ab dem eine Sequenz als rele­vant betrach­tet wird. Der Algo­rith­mus beginnt stets mit einer Sequenz der Länge eins. Danach wird die Sequenz so lange um wei­tere Items erwei­tert, bis die Sequenz grö­ßer oder gleich dem gewähl­ten Schwell­wert ist.

Es ent­steht eine Tabelle, wie in Abbil­dung 2 aus­schnitts­weise dar­ge­stellt. Die Spalte Sup­port gibt dabei an, wie häu­fig ein bestimm­tes Pat­tern auf­tritt. In die­sem Bei­spiel wurde ein Schwell­wert von 2 gewählt. Daher tau­chen nur Pat­tern auf, die min­des­tens zwei­mal im Daten­satz ent­hal­ten sind. Die Rei­hen­folge ist dabei rele­vant: <{a}, {c}> ist ein ande­res Pat­tern als <{c}, {a}>. Der große Mehr­wert liegt darin, ein bestimm­tes Ver­hal­ten zu erken­nen, das alle Nut­zer ver­eint. In der Pra­xis sind im Ver­gleich zu die­sem bewusst sim­pli­fi­zier­ten Bei­spiel meh­rere Mil­lio­nen bis Mil­li­ar­den Sequen­zen denkbar.

Ein beson­de­rer Vor­teil die­ser Art der Ana­lyse ist, dass keine wei­te­ren Infor­ma­tio­nen über den Nut­zer oder des­sen Vor­lie­ben benö­tigt wer­den. Sein Ver­hal­ten kann aus der Masse der Gesamt­heit abge­lei­tet werden.

Website Optimierung mit Advanced Analytics – Teil 2 Sequential Pattern Bild2
Abbil­dung 2 Aus­schnitt der mög­li­chen Sequenzen

Fazit

In die­sem Arti­kel wurde Sequen­tial Pat­tern als typi­scher Algo­rith­mus des Batch Lay­ers vor­ge­stellt. Als Teil eines Recom­men­da­tion Sys­tems ermög­licht der Algo­rith­mus, Kun­den basie­rend auf ihrem Waren­korb rele­vante Pro­dukte anzu­bie­ten. Natür­lich bie­ten kom­ple­xere Algo­rith­men weit­rei­chende Opti­mie­rungs­mög­lich­kei­ten. Als Aus­blick soll an die­ser Stelle Col­la­bo­ra­tive Fil­te­ring genannt wer­den.
Col­la­bo­ra­tive Fil­te­ring ver­hält sich ähn­lich wie Sequen­tial Pat­tern. Der Unter­schied liegt darin, dass Vor­schläge auf Grund­lage von Nut­zern mit ver­gleich­ba­ren Vorlieben/Meinungen erstellt wer­den. Es erwei­tert im Prin­zip das Vor­schlags­we­sen, indem zusätz­li­che Daten über den ein­zel­nen Nut­zer hin­zu­ge­zo­gen werden.