Kiano – visuelle Exploration mit Deep Learning

Kiano – eine iOS-App zur visuellen Exploration und Suche der eigenen Fotos.

Menschen haben kein Problem, komplexe Bilder zu verstehen, es fällt ihnen aber schwer, gezielt Bilder in großen Bildersammlungen (wieder) zu finden. Da die Anzahl von Bildern, insbesondere auch auf Smartphones zusehends zunimmt – mehrere tausend Bilder pro Gerät sind keine Seltenheit, wird die Suche nach bestimmten Bildern immer schwieriger. Ist bei einem gesuchten Foto dessen Aufnahmedatum unbekannt, so kann es sehr lange dauern, bis es gefunden ist. Werden dem Nutzer zu viele Bilder auf einmal präsentiert, so geht der Überblick schnell verloren. Aus diesem Grund besteht eine typische Bildsuche heutzutage meist im endlosen Scrollen über viele Bildschirmseiten mit langen Bilderlisten.

Dieser Artikel stellt das Prinzip und die Funktionsweise der neuen iOS-App “Kiano” vor, die es Nutzern ermöglicht, alle ihre Bilder explorativ mittels visuellem Browsen zu erkunden. Der Name “Kiano” steht hierbei für “Keep Images Arranged & Neatly Organized”. Mit der App ist es außerdem möglich, zu einem Beispielbild gezielt nach ähnlichen Fotos auf dem Gerät zu suchen.

Um Bilder visuell durchsuch- und sortierbar zu machen, werden sogenannte Merkmalsvektoren bzw. Featurevektoren verwendet, die Aussehen und Inhalt von Bildern kompakt repräsentieren können. Zu einem Bild lassen sich ähnliche Bilder finden, indem die Bilder bestimmt werden, deren Featurevektoren eine geringe Distanz zum Featurevektor des Suchbildes haben.

Werden Bilder zweidimensional so angeordnet, dass die Featurevektoren benachbarter Bilder sehr ähnlich sind, so erhält man eine visuell sortierte Bilderlandkarte. Bei einer visuell sortierten Anordnung der Bilder fällt es Menschen deutlich leichter, mehr Bilder gleichzeitig zu erfassen, als dies im unsortierten Fall möglich wäre. Durch die graduelle Veränderung der Bildinhalte wird es möglich, über diese Karte visuell zu navigieren.

Generierung von Featurevektoren zur Bildbeschreibung

Convolutional Neural Networks (CNNs) sind nicht nur in der Lage, Bilder mit hoher Genauigkeit zu klassifizieren, d.h. zu erkennen, welches Objekt – entsprechend einer Menge von gelernten Objektkategorien auf einem Bild zu sehen ist, die Aktivierungen der Netzwerkschichten lassen sich auch als universelle Featurevektoren zur Bildbeschreibung nutzen. Während die vorderen Netzwerkschichten von CNNs einfache visuelle Bildmerkmale wie Farben und einfache Muster detektieren, repräsentieren die Ausgangsschichten des Netzwerks die semantischen Informationen bezüglich der gelernten Objektkategorien. Die Zwischenschichten des Netzwerks sind weniger von den Objektkategorien abhängig und können somit als generelle abstrakte Repräsentationen des Inhalts der Bilder angesehen werden. Hierbei ist es möglich, bereits fertig trainierte Klassifikationsnetzwerke für die Featureextraktion wiederzuverwenden. In der Visual Computing Gruppe der HTW Berlin wurden umfangreiche Evaluierungen durchgeführt, um zu bestimmen, welche Netzwerkschichten von welchen CNNs mit welchen zusätzlichen Transformationen zu verwenden sind, um aus Netzwerkaktivierungen Feature-Vektoren zu erzeugen, die sehr gut für die Suche nach beliebigen Bildern geeignet sind.

Beste Ergebnisse hinsichtlich der Suchgenauigkeit (der Mean Average Precision) wurden mit einem Deep Residual Learning Network (ResNet-200) erzielt. Die 2048 Aktivierungen vor dem vollvernetzten letzten Layer werden als initiale Featurevektoren verwendet, wobei sich die Suchgenauigkeit durch eine L1-Normierung, gefolgt von einer PCA-Transformation (Principal Component Analysis) sogar noch verbessern lässt. Hierdurch ist es möglich, die Featurevektoren auf eine Größe von nur 64 Bytes zu reduzieren. Leider ist die rechnerische Komplexität der Bestimmung dieser hochwertigen Featurevektoren zu groß, um sie auf mobilen Geräten verwenden zu können. Eine gute Alternative stellen die Mobilenets dar, die sich durch eine erheblich reduzierte Komplexität auszeichnen. Als Kompromiss zwischen Klassifikationsgenauigkeit und Komplexität wurde für die Kiano-App das Mobilenet_v2_0.5_128 verwendet. Die mit diesem Netzwerk bestimmten Featurevektoren wurden ebenfalls auf eine Größe von 64 Bytes reduziert.

Die aus CNNs erzeugten Featurevektoren sind gut für die Suche nach Bildern mit ähnlichem Inhalt geeignet. Für die Suche nach Bilder, mit ähnlichen visuellen Eigenschaften (z.B. die auftretenden Farben oder deren örtlichen Verteilung) sind diese Featurevektoren nur bedingt geeignet. Hierfür eignen sich klassische sogenannte “Low-Level”-Featurevektoren besser. Da für eine ansprechende und leicht erfassbare Bildsortierung auch eine Übereinstimmung dieser visuellen Bildattribute wichtig ist, kommt bei Kiano ein weiterer Featurevektor zum Einsatz, mit dem sich diese “primitiven” visuellen Bildattribute beschreiben lassen. Dieser Featurevektor hat eine Größe von 50 Bytes. Bei Kiano kann der Nutzer in den Einstellungen wählen, ob bei der visuellen Sortierung und Bildsuche größerer Wert auf den Bildinhalt oder die visuelle Erscheinung eines Bildes gelegt werden soll.

Visuelle Bildsortierung

Werden Bilder entsprechend ihrer Ähnlichkeiten sortiert angeordnet, so können mehrere hundert Bilder gleichzeitig wahrgenommen bzw. erfasst werden. Dies hilft, Regionen interessanter Bildern leichter zu erkennen und gesuchte Bilder schneller zu entdecken. Die Möglichkeit, viele Bilder gleichzeitig präsentieren zu können, ist neben Bildverwaltungssystemen besonders auch für E-Commerce-Anwendungen interessant.

Herkömmliche Dimensionsreduktionsverfahren, die hochdimensionale Featurevektoren auf zwei Dimensionen projizieren, sind für die Bildsortierung ungeeignet, da sie die Bilder so anordnen, dass Lücken und Bildüberlappungen entstehen. Sollen Bilder sortiert auf einem dichten regelmäßigen 2D-Raster angeordnet werden, kommen als Verfahren nur selbstorganisierende Karten oder selbstsortierende Karten in Frage.

Eine selbstorganisierende Karte (Self Organizing Map / SOM) ist ein künstliches neuronales Netzwerk, das durch unbeaufsichtigtes Lernen trainiert wird, um eine niedrigdimensionale, diskrete Darstellung der Daten des Eingangsraums als sogenannte Karte (Map) zu erzeugen. Im Gegensatz zu anderen künstlichen neuronalen Netzen, werden SOMs nicht durch Fehlerkorrektur, sondern durch ein Wettbewerbsverfahren trainiert, wobei eine Nachbarschaftsfunktion verwendet wird, um die lokalen Ähnlichkeiten der Eingangsdaten zu bewahren.

Eine selbstorganisierende Karte besteht aus Knoten, denen einerseits ein Gewichtsvektor der gleichen Dimensionalität wie die Eingangsdaten und anderseits eine Position auf der 2D-Karte zugeordnet sind. Die SOM-Knoten sind als zweidimensionales Rechteckgitter angeordnet. Das vom der SOM erzeugte Mapping ist diskret, da jeder Eingangsvektor einem bestimmten Knoten zugeordnet wird. Zu Beginn werden die Gewichtsvektoren aller Knoten mit Zufallswerten initialisiert. Wird ein hochdimensionaler Eingangsvektor in das Netz eingespeist, so wird dessen euklidischer Abstand zu allen Gewichtsvektoren berechnet. Der Knoten, dessen Gewichtsvektor dem Eingangsvektor am ähnlichsten ist, wird als Best Matching Unit (BMU) bezeichnet. Die Gewichte des BMU und seiner auf der Karte örtlich benachbarten Knoten werden an den Eingangsvektor angepasst. Dieser Vorgang wird iterativ wiederholt. Das Ausmaß dieser Anpassung nimmt im Laufe der Iterationen und der örtlichen Entfernung zum BMU-Knoten ab.

Um SOMs an die Bildsortierung anzupassen, sind zwei Modifikationen notwendig. Jeder Knoten darf nicht von mehr als einem Featurevektor (der ein Bild repräsentiert) ausgewählt werden. Eine Mehrfachauswahl würde zu einer Überlappung der Bilder führen. Aus diesem Grund muss die Anzahl der SOM-Knoten mindestens so groß wie die Anzahl der Bilder sein. Eine sinnvolle Erweiterung einer SOM verwendet ein Gitter, bei dem gegenüberliegende Kanten verbunden sind. Werden diese Torus-förmigen Karten für große SOMs verwendet, kann der Eindruck einer endlosen Karte erzeugt werden, wie es in Kiano umgesetzt ist. Ein Problem der SOMs ist ihre hohe rechnerische Komplexität, die quadratisch mit der Anzahl der zu sortierenden Bilder wächst, wodurch die maximale Anzahl an zu sortierenden Bildern beschränkt wird. Eine Lösung stellt eine selbstsortierende Karte (Self Sorting Map / SSM) dar, deren Komplexität nur n log(n) beträgt.

Selbstsortierende Karten beginnen mit einer zufälligen Positionierung der Bilder auf der Karte. Diese Karte wird dann in 4×4-Blöcke aufgeteilt und für jeden Block wird der Mittelwert der zugehörigen Featurevektoren bestimmt. Als nächstes werden aus 2×2 benachbarten Blöcken jeweils vier korrespondierende Bild-Featurevektoren untersucht und ihre zugehörigen Bilder gegebenenfalls getauscht. Aus den 4! = 24 Anordnungsmöglichkeiten wird diejenige gewählt, die die Summe der quadrierten Differenzen zwischen den jeweiligen Featurevektoren und den Featuremittelwerten der Blöcke minimiert. Nach mehreren Iterationen wird jeder Block in vier kleinere Blöcke halber Breite und Höhe aufgeteilt und wiederum in der beschriebenen Weise überprüft, wie die Bildpositionen dieser kleineren Blöcke getauscht werden sollten. Dieser Vorgang wird solange wiederholt, bis die Blockgröße auf 1×1 Bild reduziert ist.

In der Visual-Computing Gruppe der HTW Berlin wurde untersucht, wie die Sortierqualität des SSM-Algorithmus verbessert werden kann. Anstatt die Mittelwerte der Featurevektoren als konstanten Durchschnittsvektor für den gesamten Block zu berechnen, verwenden wir gleitende Tiefpassfilter, die sich effizient mittels Integralbildern berechnen lassen. Hierdurch entstehen weichere Übergänge auf der sortierten Bilderkarte. Weiterhin wird die Blockgröße nicht für mehrere Iterationen konstant gehalten, sondern kontinuierlich zusammen mit dem Radius des Filterkernels reduziert. Durch die Verwendung von optimierten Algorithmen von “Linear Assignment” Algorithmen wird es weiterhin möglich, den optimalen Positionstausch nicht nur für jeweils vier Featurevektoren bzw. Bildern sondern für eine deutlich größere Anzahl zu überprüfen. All diese Maßnahmen führen zu einer deutlich verbesserten Sortierungsqualität bei gleicher Komplexität.

Effiziente Umsetzung für iOS

Wie so oft, liegen die softwaretechnischen Herausforderungen an ganz anderen Stellen, als man zunächst vermutet. Für eine effiziente Implementierung der zuvor beschriebenen Algorithmen, insbesondere der SSM, stellte es sich heraus, dass die Programmiersprache Swift, in der iOS Apps normaler Weise entwickelt werden, erheblich mehr Rechenzeit benötigt, als eine Umsetzung in der Sprache C. Im Zuge der stetigen Weiterentwicklung von Swift und dessen Compiler mag sich die Lücke zu C zwar immer weiter schließen, zum Zeitpunkt der Umsetzung war die Implementierung in C aber um einen Faktor vier schneller als in Swift. Hierbei liegt die Vermutung nahe, dass der Zugriff auf und das Umsortieren von Featurevektoren als native C-Arrays deutlich effektiver passiert, als bei der Verwendung von Swift-Arrays. Da Swift-Arrays Value-Type sind, kommt es in Swift vermutlich zu unnötigen Kopieroperationen der Fließkommazahlen in den einzelnen Featurevektoren.

Die Berechnung des Mobilenet-Anteils der Featurevektoren konnte sehr komfortabel mit Apples CoreML Machine Learning Framework umgesetzt werden. Hierbei ist zu beachten, dass es sich wie oben beschrieben, nicht um eine Klassifikation handelt, sondern um das Abgreifen der Aktivierungen einer tieferen Schicht. Für Klassifikationen findet man praktisch sofort nutzbare Beispiele, für den Zugriff auf die Aktivierungen waren jedoch Anpassungen notwendig, die bei der Portierung eines vortrainierten Mobilenet nach CoreML vorgenommen wurden. Das stellte sich als erheblich einfacher heraus, als der Versuch, auf die tieferen Schichten eines Klassifizierungsnetzes in CoreML zuzugreifen.

Für die Verwaltung der Bilder, ihrer Featurevektoren und ihrer Position in der sortieren Karte wird in Kiano eine eigene Datenstruktur verwendet, die es zu persistieren gilt. Es ist dem Nutzer ja nicht zuzumuten, bei jedem Start der App auf die Berechnung aller Featurevektoren zu warten. Die Strategie ist es hierbei, bereits bekannte Bilder zu identifizieren und deren Features nur dann neu zu berechnen, falls sich das Bild verändert hat. Die über Appels Photos Framework zur Verfügung gestellten local Identifier identifizieren dabei die Bilder. Veränderungen werden über das Modifikationsdatum eines Bildes detektiert. Die größte Herausforderung ist hierbei das Zeichnen der Karte. Die Benutzerinteraktion soll schnell und flüssig erscheinen, auf Animationen wie das Nachlaufen der Karte beim Verschieben möchte man nicht verzichten. Die Umsetzung geschieht hierbei nicht in OpenGL ES, welches ab iOS 12 ohnehin als deprecated bezeichnet wird. Auf der anderen Seite wird aber auch nicht der „Standardweg“ des Überschreibens der draw-Methode einer Ableitung von UIView gewählt. Letztes führt bekanntlich zu Performanceeinbußen. Insbesondere deshalb, weil das System sehr oft Backing-Images der Ansichten erstellt. Um die Kontrolle über das Neuzeichnen zu behalten, wird in Kiano ein eigenes Backing-Image implementiert, das auf Ebene des Core Animation Frameworks dem View als Layer zugweisen wird. Diesem Layer kann dann sehr komfortabel eine 3D-Transformation zugewiesen werden und man profitiert von der GPU-Beschleunigung, ohne OpenGL ES direkt verwenden zu müssen.

 

Trotz der Verwendung eines Core Animation Layers ist das Zeichnen der Karte immer noch sehr zeitaufwendig. Das liegt an der Tatsache, dass je nach Zoomstufe tausende von Bildern darzustellen sind, die alle über das Photos Framework angefordert werden müssen. Das Nadelöhr ist dann weniger das Zeichnen, als die Zeit, die vergeht, bis einem das Bild zur Verfügung gestellt wird. Diese Vorgänge sind praktisch alle nebenläufig. Zur Erinnerung: Ein Foto kann in der iCloud liegen und zum Zeitpunkt der Anfrage noch gar nicht (oder noch nicht in geeigneter Auflösung) heruntergeladen sein. Netzwerkbedingt gibt es keine Vorhersage, wann oder ob überhaupt das Bild zur Verfügung gestellt wird. In Kiano werden zum einen Bilder in sehr kleiner Auflösung gecached, zum anderen wird beim Navigieren auf der Karte im Hintergrund ein neues Kartenteil als Backing-Image vorbereitet, das dem Nutzer nach Fertigstellung angezeigt wird. Die vorberechneten Kartenteile sind dabei drei Mal so breit und drei Mal so hoch wie das Display, so dass man diese „Hintergrundaktivität“ beim Verschieben der Karte in der Regel nicht bemerkt. Nur wenn die Bewegung zu schnell wird oder die Bilder zu langsam „geliefert“ werden, erkennt man schwarze Flächen, die sich dann verzögert mit Bildern füllen.

Vergleichbares passiert beim Hineinzoomen in die Karte. Der Nutzer sieht zunächst eine vergrößerte und damit unscharfe Version des aktuellen Kartenteils, während im Hintergrund ein Kartenteil in höherer Auflösung und mit weniger Bildern vorbereitet wird. In der Summe geht Kiano hier einen Kompromiss ein. Die Pixeldichte der Geräte würde eine schärfere Darstellung der Bilder auf der Karte erlauben. Allerdings müssten dann die Bilder in so höher Auflösung angefordert werden, dass eine flüssige Kartennavigation nicht mehr möglich wäre. So sieht der Nutzer in der Regel eine Karte mit Bildern in halber Auflösung gemessen an den physikalischen Pixeln seines Displays.

Ein anfangs unterschätzter Arbeitsaufwand bei der Umsetzung von Kiano liegt darin begründet, dass sich die Photo Library des Nutzers jederzeit während der Benutzung der App verändern kann. Bilder können durch Synchronisationen mit der iCloud oder mit iTunes verschwinden, sich in andere Alben bewegen, oder neue können auftauchen. Der Nutzer kann Bildschirmfotos machen. Das Photos Framework stellt komfortable Benachrichtigungen für solche Events zur Verfügung. Der Implementierung obliegt es dabei aber herauszubekommen, ob die Karte neu zu sortieren ist oder nicht, ob das gerade anzeigte Bild überhaupt noch existiert und was zu tun ist, wenn es verschwunden ist.

Zusammenfassend kann man feststellen, dass natürlich die Umsetzung der Algorithmen und die Darstellung dessen auf einer Karte zu den spannendsten Teilen der Arbeiten an Kiano zählen, dass aber der Umgang mit einer sich dynamisch ändernden Datenbasis nicht unterschätzt werden sollte.

Autoren

Prof. Dr. Klaus JungProf. Dr. Klaus Jung studierte Physik an der TU Berlin, wo er im Bereich der Mathematischen Physik promovierte. Bis 2008 arbeitete er als Leiter F&E bei der Firma LuraTech im Bereich der Dokumentenverarbeitung und Langzeitarchivierung. In der JPEG-Gruppe leitete er die deutsche Delegation bei der Standardisierung von JPEG2000. Seit 2008 ist er Professor für Medieninformatik an der HTW Berlin mit dem Schwerpunkt „Visual Computing“.

Prof. Dr. Kai Uwe Barthel

Prof. Dr. Kai Uwe Barthel studierte Elektrotechnik an der TU Berlin, bevor er Assistent am Institut für Nachrichtentechnik wurde und im Bereich Bildkompression promovierte. Seit 2001 ist er Professor der HTW Berlin. Hauptforschungsbereiche sind visuelle Bildsuche und automatisches Bildverstehen. 2009 gründete er die pixolution GmbH www.pixolution.de, ein Unternehmen, das Technologien für die visuelle Bildsuche anbietet.

Modelling Data – Case Study: Importance of domain knowledge

What´s the relation between earnings and happiness? I saw this chart and was strongly irritated – why is there a linear regression, it´s clearly a logarithmic relationship.
Linear relationship between GDP and happiness.

So I got angry and wanted to know, which model is the better fit. I started to work immediatly, because it´s a huge difference for man kind. Think about it: you give a poor person money and he gets as happy as a rich person with the same amount added – that´s against common sense and propaganda to get rich. Like an cultural desease.

So I gathered the data and did a first comparation, and this logarithmic model was the better fit:
Logarithmic relationship between GDP and happiness.

I was right and seriously willing to clear the mess up – so posted the “correct” model on facebook, to explain things to my friends.

Once I came down…

I asked myself: “What´s the model that fits the data best – that would be more correct?”

So I started to write an algorithm to check polynominal regression levels for fit using a random train and test data split. Finally, I got to this result and was amazed:
Best polynominal relationship between GDP and happiness.

This seriously hit me: “What the f***! There seems to be maximum happiness reachable with a certain amount of income / GDP.” Can you understand, what this result would mean for our world and economy? Think about all economies growing continiously, but well happiest was there or will come there. What would you do? Send income to less developed countries, because you don´t need it? Stop invention and progress, because it´s of no use? Seriously, I felt like a socialist: Stop progress at this point and share.

So I thought a while and concluded: “F***ing statistics, we need a profound econometric model.”

I started modelling: Well, the first amount of money in a market based on money leverages a huge amount of happiness, because you can participate and feed yourself. We can approximate that by infinit marginal utility. Then the more you have, the less utility should be provided by the additional same amount added. Finally, more income is more options, so more should be always better. I concluded, that this is catched by a Cobb Douglas production function. Here´s the graph:
Cobb Douglas relationship between GDP and happiness.

That´s it, that´s the final model. Here I feel home, this looks like a normal world – for an economist.

The Relevance of Domain Knowledge

As this short case study shows, we get completly wrong information and conclusions, if we don´t do it right. If you were the most important decision making algorithm in global economic politics, imagine what desasterous outcomes it would have produced to automatically find an optimum of income.

This is a serious border of AI. If you want to analyse Big Data with algorithms, you may produce seriously wrong information and conclusions. Statistical analysis is allways about using the right model. And modelling is about the assumptions of the model. As long as you can not create the right assumtions for the statistical model automatically, Big Data analysis is near to crazy. So out of this point of view, Big Data analysis is either about very simplistic tendencies (like linear trends) or it´s bound to Data Scientists with domain knowledge checking each model – that´s slow.

Discussion

I´m quite new to the field of Data Science, but this case study shows very though limitations, clearly. It´s not about flexible fitting of data, it´s about right models. And right models don´t scale into the Big Data domain. What do you think is the solution for this issue?

Countries of Happiness – the Full Article

If you are interested in my final article on my personal blog, explaining the final results: Please feel welcome to read the article here. There is a translation widget in the menu, to read in your favorite language. The original article is german.

Interview – Data Science im Online Marketing

Interview mit Thomas Otzasek, Head of Data Science bei der Smarter Ecommerce GmbH

Thomas Otzasek ist Head of Data Science bei der Smarter Ecommerce GmbH in Linz, ein Unternehmen für die Automatisierung des professionellen Suchmaschinen Marketings. Herr Otzasek leitet das Data Science Team zur Automatisierung von operativen Prozessen im Suchmaschinen Marketing mit Machine Learning. Weitere interessante Blogposts von Thomas Otzasek zum Thema Suchmaschinen Marketing und Data Science finden Sie im Whoop! Blog.

Data Science Blog: Herr Otzasek, welcher Weg hat Sie zum Data Science für das Suchmaschinen Marketing geführt?

Ich war schon immer an Zahlen interessiert und begann daher im Jahr 2002 ein Masterstudium der Statistik an der Johannes Kepler Universität in Linz. Im Jahr 2006 wurde an dieser Uni dann erstmalig der Studiengang Bioinformatik mit Schwerpunkt Machine Learning angeboten, der mich ebenfalls angesprochen hat. Im Jahr 2009 habe ich beide Masterstudien erfolgreich abgeschlossen.

Nachdem ich in diversen Branchen u.a. als Business Analyst oder Software-Entwickler gearbeitet habe, überzeugte mich im Jahr 2015 die Firma Smarter Ecommerce mit einer innovativen Produktidee, für die ich den fehlenden Data Science Puzzleteil ideal ausfüllen konnte. Seitdem sind wir auf Wachstumskurs und konnten unsere Mitarbeiterzahl innerhalb von 15 Monaten auf derzeit 85 Mitarbeiter mehr als verdoppeln.

Data Science Blog: Welche Bedeutung hat Big Data und Data Science für Ihre Branche?

Im Suchmaschinen Marketing gibt es sehr viel manuelle Arbeit. Mit dem Einsatz von Data Science können wir diese manuelle Arbeit unterstützen oder automatisieren. Ist das Produktsortiment entsprechend groß, können wir die Platzierung in Online-Anzeigen soweit optimieren, wie es selbst dem besten Mitarbeiter ohne entsprechende Tools niemals möglich wäre.

Wir übernehmen das Aussteuern von Google Shopping, für welche Produkte wo genau Anzeigen zu welchen Konditionen geschaltet werden. Wir haben dafür Machine Learning Modelle entwickelt, die diese Anzeigenschaltung optimieren. Der dafür von meinem Data Science Team entwickelte Prototyp ist seit über einem Jahr produktiv im Einsatz.

Data Science Blog: Was optimieren diese Algorithmen des maschinellen Lernens?

Der vollautomatisierte Ansatz kommt bei unserem Produkt Whoop! für Google Shopping zum Einsatz. Google Shopping ist ein Teil von Google AdWords. Wir verwenden den Produkt-Datenfeed des Kunden, die Performance-Historie von Google AdWords, unsere jahrelange Google Shopping Erfahrung sowie die Ziele des Kunden bezüglich der Anzeigen um z. B. die Kosten-Umsatz-Relation oder die Kosten pro Akquisition zu optimieren.

Die Herausforderung ist, das richtige Gebot für das jeweilige Produkt zu wählen. Wenn Sie eine ganze Reihe von verschiedenen oder auch ähnlichen Produkten haben (z. B. verschiedene Farben oder Größen), müssen wir diese Gebote so tunen, dass die Reichweite und Zielgruppe ideal ist, ohne dass die Kosten explodieren.

Wird ein Produkt zu hoch geboten, sind nicht nur die Kosten für das bewerbende Unternehmen zu hoch, auch die Platzierung ist dann meistens nicht optimal. Google, unser Anzeigenpartner, verallgemeinert die Suchanfragen im hochpreisigen Segment tendenziell zu sehr, darunter leidet dann die Relevanz. Wird für die Anzeige zu niedrig geboten, wird sie hingegen gar nicht erst angezeigt. Neben der Conversion Rate spielt für unsere Kunden hauptsächlich die Kosten-Umsatz-Relation eine Rolle. Ein Mitarbeiter im Online Marketing könnte diese Optimierung für mehr als eine Hand voll Produkte nicht vornehmen. Denken Sie z. B. an die Mode-Branche, die ein sich schnell umschlagendes Produktsortiment mit vielen Produkten hat.

Data Science Blog: Welche datenwissenschaftlichen Herausforderungen spielen dabei eine Rolle?

Die Produktdaten sind sehr umfangreich, der Anzeigenmarkt und die Produkttrends extrem dynamisch. Außerdem gibt es für viele Produkte nur wenige Klicks, so dass wir ausgeklügelte Algorithmen brauchen, um trotzdem statistisch valide Aussagen treffen zu können.

Für die manuelle Aussteuerung ist die Produktanzahl meist zu groß um produktgenaue Gebote abgeben zu können. Bei einem großen und/oder schnell umschlagenden Produktsortiment haben wir es mit komplexen Strukturen zu tun, die wir in diesen Modellen berücksichtigen müssen, um stets die optimalen Gebote zu setzen.

Das Modell muss dabei jederzeit berücksichtigen, welche Produkte bzw. Anzeigen performen bzw. nicht performen, um jene entsprechend hoch- oder runter zu regeln. Eine einfache Regressionsanalyse reicht da nicht aus. Auch Änderungen des Kunden in den Einstellungen sowie externe Faktoren wie z. B. das Wetter müssen sofort berücksichtigt werden.

Data Science Blog: Welche Methoden des Data Science sind aktuell im Trend und spielen demnächst eine Rolle?

Aus meiner Sicht ist Deep Learning mit neuronalen Netzen der Trend. Vermutlich werden sie sich weiter durchsetzen, denn sie können noch komplexere Aufgaben bewältigen. Aktuell gibt es allerdings teilweise noch Akzeptanzprobleme, da neuronale Netze mit vielen versteckten Schichten eine Blackbox darstellen. Die Ergebnisse sind also im Gegensatz zu weniger komplexen Methoden nicht nachvollziehbar.

Data Science Blog: Auf welche Tools setzen Sie bei Ihrer Arbeit? Bevorzugen Sie Open Source oder proprietäre Lösungen?

Ich habe viel mit proprietären Lösungen gearbeitet, beispielsweise mit SAS oder IBM SPSS. Wir setzen derzeit allerdings auf Open Source, vor allem auf die Programmiersprache R. Neue Mitarbeiter im Data Science Bereich sollten daher zumindest über Grundkenntnisse in R verfügen und die Lust haben, sich tiefer mit dieser Programmiersprache zu befassen.

Wir verwenden unter anderem die Pakete ggplot und Shiny. Mit Shiny erstellen wir interne Web-Applikationen, um Kollegen Analysen zur Verfügung zu stellen. Für Eigenentwicklungen komplexer Visualisierungen ist ggplot perfekt geeignet.

Mit R können wir außerdem selbst eigene Packages erstellen um den Funktionsumfang nach unseren Wünschen zu erweitern. Wir haben daher keinen Grund, auf kostenintensive Lösungen zu setzen.

Data Science Blog: Was macht Ihrer Erfahrung nach einen guten Data Scientist aus?

Aus meiner Sicht sollte man ein Zahlenfreak sein und niemals aufhören Fragen zu stellen, denn darum geht es im Data Science. Gute Data Scientists sind meiner Meinung nach interdisziplinär ausgebildet, kommen also nicht nur aus einer Ecke, sondern besser aus zwei oder drei Fachbereichen. Man benötigt verschiedene Sichtweisen.

Aus welchem Fachbereich man ursprünglich kommt, ist dabei gar nicht so wichtig. Es muss also nicht unbedingt ein Mathematiker oder Statistiker sein.

Data Science Blog: Gibt es eigentlich aus Ihrer Erfahrung heraus einen Unterschied zwischen Mathematikern und Statistikern?

Ja. Mathematiker denken meiner Meinung nach sehr exakt und beweisorientiert. Statistik ist zwar ein Teilbereich der Mathematik, aber für einen Statistiker steht das Schätzen im Vordergrund. Statistiker denken in Verteilungen, Wahrscheinlichkeiten und Intervallen und können gut mit einer gewissen Unsicherheit leben, die reine Mathematiker manchmal unbefriedigt lässt.

Data Science Blog: Für alle diejenigen, die gerade ihr Studium der Statistik, Ingenieurwissenschaft oder was auch immer abschließen. Welchen Rat haben Sie, wie diese Menschen einen Schritt näher ans Data Science herankommen?

Ich würde empfehlen, einfach ein eigenes kleines Projekt zu starten – „Learning by doing“! Ob das Projekt um die eigenen Stromverbrauchsdaten, eine Wettervorhersage oder Fantasy-Football geht ist nicht wichtig. Man stößt dann zwangsläufig auf die verschiedenen Arbeitsschritte und Herausforderungen. Ein empfehlenswerter Workflow ist der Cross Industry Standard Process for Data Mining, kurz CRISP-DM.

Zuerst muss man ein Geschäftsverständnis aufbauen. Weiter geht es mit der Datensammlung und Datenintegration, danach folgt die Datenaufbereitung. Diese Schritte benötigen bereits ca. 80% der Projektzeit. Erst dann können explorative Analysen, Hypothesentests oder Modellierung aufgesetzt werden. Am Ende des Prozesses erfolgt das Deployment.

 

Interview – OTTO auf dem Weg zum intelligenten Echtzeitunternehmen

Interview mit Dr. Michael Müller-Wünsch über die Bedeutung von Data Science für den Online-Handel

cio-mueller-wuensch-interviewDr. Michael Müller-Wünsch ist seit August 2015 CIO der OTTO-Einzelgesellschaft in Hamburg. Herr Müller-Wünsch studierte die Diplom-Studiengänge Informatik sowie BWL mit Schwerpunkt Controlling an der TU Berlin. In seinen Rollen als IT-Leiter und CIO wurde er mehrfach für seine Leistungen ausgezeichnet und gilt heute als eine der erfahrensten Führungskräfte mit explizitem Know How in der Nutzung von Big Data für den eCommerce.

Data Science Blog: Herr Dr. Müller-Wünsch, welcher Weg hat Sie bis in den Bereichsvorstand von OTTO geführt?

Mein Weg wurde sicherlich bestimmt durch meine große Begeisterung für Technologie und Innovationen. Dazu habe ich als Sohn eines Textileinzelhändlers früh einen Sinn für Kundenorientierung entwickelt. Bei OTTO, dem größten deutschen Onlinehändler für Fashion und Lifestyle, kann ich nun beides optimal zusammenbringen und die digitale Transformation des Unternehmens weiter vorantreiben.

Data Science Blog: Viele reden heute von einer datengetriebenen Unternehmensausrichtung. Was ist Ihre Version von einer Data-Driven Company?

Mein Ziel ist es, OTTO zum intelligenten Echzeitunternehmen zu machen. Damit meine ich eine Organisation, die sich durch selbst lernende Algorithmen ständig weiterentwickelt und verbessert und Kundenerwartungen in jedem Augenblick sofort erfüllen kann. Ohne zeitraubende Batchverarbeitungsprozesse und ohne Medienbrüche.

Data Science Blog: Welche Rolle sehen Sie für Big Data Analytics für den Einzelhandel?

Predictive Analytics helfen uns beispielsweise maßgeblich dabei, Artikelabsatzprognosen zu erstellen und zu antizipieren, wie oft ein bestimmter Artikel morgen nachgefragt werden wird. Das erhöht die Lieferbereitschaft und vermeidet Lagerüberhänge – ist also gut für beide Seiten, für unsere Kunden und für unser Unternehmen. Darüber hinaus geht es heute immer stärker darum, das Onlinemarketing datenbasiert intelligent auszusteuern und den Kunden ein maximal relevantes Angebot auf otto.de zu präsentieren.

Data Science Blog: Für den deutschsprachigen Raum gilt Otto als Händler „am weitesten voraus“ in Sachen Big Data. Sehen Sie Ihren größten Wettbewerb eher im Silicon Valley?

In Zeiten des E-Commerce müssen wir den Wettbewerb in alle Richtungen beobachten. Wir müssen permanent damit rechnen, dass sich das Marktumfeld und das Kundenverhalten ändern. Das ist immer schwerer vorherzusehen. Mehr denn je kommt es deshalb darauf an, sich flexibel aufzustellen, um schnell reagieren zu können.

Data Science Blog: In Sachen Datenschutz gibt es auf politischer Ebene sowohl Bestrebungen zur Verschärfung als auch zur Lockerung der Gesetzgebung. Als Einzelhändler arbeiten Sie sehr viel mit personenbezogenen Datenbeständen, wie sehr werden Sie bei Ihrer Arbeit eigentlich durch gültige Datenschutzgesetze eingeschränkt?

Das Vertrauen der Kunden hat für uns allerhöchste Priorität, deshalb ist es für uns selbstverständlich, sehr sorgsam mit Daten umzugehen. Wir setzen dabei konsequent auf Transparenz und Selbstbestimmung. Das heißt, dass wir unseren Kunden keine Mehrwerte vorenthalten möchten, die durch moderne Technologien möglich werden und das digitale Shopping-Erlebnis bereichern können. Wir erklären im Shop aber ausführlich, was wir tun, und bieten auch die Möglichkeit, bestimmte Features zu deaktivieren.

Data Science Blog: Wofür nutzt Otto Big Data und Data Science eigentlich genau?

Wir verfolgen bei OTTO einen so genannten 360°-Ansatz: Unser Ziel ist es, die Kunden auf ihrer gesamten Customer Journey zu begleiten und bestenfalls in Echtzeit mit ihnen zu interagieren –  von der ersten Informationsrecherche bis hin zur Lieferung; und das über alle Kanäle und Touchpoints hinweg. Anhand von anonymisierten Daten aus jedem dieser Kundenkontaktpunkte können wir dann Leistungen entwickeln und gute Geschäftsentscheidungen treffen, um damit Umsatz- und Ergebnispotentiale zu erschließen. Ich möchte hier aber gar nicht vorgreifen: Mein Kollege Thomas Schlüter, IT-Bereichsleiter Business Intelligence bei OTTO, wird darüber auf dem Data Leader Day am 17. November in Berlin ausführlich sprechen.

Data Science Blog: Big Data, Data Science, Business Intelligence und viele Begriffe mehr – Grenzen Sie hier ab oder wie lautet Ihr internes Wording?

Big Data verstehe ich als den Rohstoff, den wir uns mithilfe von Business Intelligence als Fachdisziplin erschließen und nutzbar machen. Innerhalb der BI arbeiten wir dann sowohl mit Analytics Methoden als auch mit Data Science Modellen für komplexere und oftmals prognostische Fragestellungen.

Data Science Blog: Aktuell scheint der Trend hin zum Data Lab zu gehen. Finden die Analysen nur in solchen Labs oder eher in den konkreten Fachbereichen statt?

Bei OTTO ist die BI gleich in zwei Vorstandsbereichen verankert: Im Vertrieb bei meinem Kollegen Marc Opelt und bei mir in der Technologie. Das sagt schon einiges über die stetig steigende Bedeutung aus. Wir sind davon überzeugt, dass der Schlüssel zum Erfolg in der partnerschaftlichen Zusammenarbeit zwischen Fachbereich und IT liegt und sich das Thema auch immer weiter in die Fachbereiche hinein entwickeln wird. Aktuell arbeiten wir beispielsweise an einer zukunftsweisenden neuen BI-Plattform, die wir BRAIN nennen – das funktioniert einfach nur bereichsübergreifend im Team.

Data Science Blog: Ihre Investitionen in diese neuen Technologien und Methoden sind recht hoch. Wie ist die Erwartung für den Break-Event-Point?

Als wir im März dieses Jahres die Wachstumszahlen der OTTO-Einzelgesellschaft vorgestellt haben, hat Alexander Birken es im Ausblick auf den Punkt gebracht: Wir haben uns in den vergangenen Jahren kontinuierlich eine sehr robuste Wirtschaftskraft erarbeitet. Insofern können wir es uns im wahrsten Sinne des Wortes leisten, die Investitionsgeschwindigkeit weiter spürbar zu erhöhen und damit die Zukunft von OTTO zu gestalten. Vor allem die technologischen Wachstumsbereiche werden weiter konsequent vorangetrieben.

Data Science Blog: Ihr Engagement für Big Data zeigt sich auch in den Jobportalen, dabei unterscheiden Sie die Jobprofile auch z. B. nach Data Scientist und Date Engineer. Welche Art von Mensch suchen Sie für Ihre zukünftigen Umsetzungen? Eher den introvertierten Nerd oder den kommunikationsstarken Beratertyp?

Ich glaube, wir brauchen vor allem Menschen, die Spaß haben an Veränderung und die im Sinne des Unternehmenserfolgs ganzheitlich denken, bis zum Konsumenten da draußen.


Anmerkung der Redaktion: Welche Potenziale das Unternehmen OTTO aus Daten nutzbar macht und mit welchen Methoden und Technologien die BI bei OTTO arbeitet, erfahren Sie am 17. November beim Data Leader Day in Berlin.