04. Sep. 2019
Markus Thral

Mit Machine Learning zu niedriger Latenz

Schnelle Antwortzeiten sind immer entscheidender für eine Webseite oder ein Portal. Wie Sie diese durch Predictive Preloading kombiniert mit einem lernenden Vorhersagemodell verbessern, beschreibt der folgende Blogartikel.

Ob eine Webseite oder ein Portal erfolgreich ist, hängt stark von der Ladezeit, auch Latenz genannt, ab. Im Zeitalter immer schneller werdender Internetverbindungen erwarten die Nutzer, dass Webseiten flüssig bedienbar sind. Studien haben gezeigt, dass ein Großteil der Nutzer die Seite sofort wieder verlässt, wenn die Ladezeit 3 Sekunden übersteigt.

Ein wichtiges Ziel bei Design, Entwicklung und Bereitstellung einer Webseite oder eines Portals muss daher sein, die Ladezeit möglichst gering zu halten. Inhalte, wie zum Beispiel Bilder, die in immer höherer Qualität benötigt werden und Seiten, die immer umfangreicher werden, stehen diesem Ziel allerdings im Weg.

Niedrige Latenz erreichenDennoch gibt es Ansätze, die diesen gegensätzlichen Anforderungen begegnen und versuchen eine kurze Ladezeit trotz viel Inhalt zu ermöglichen. So haben Entwickler schon seit längerem die Möglichkeit, Inhalte mithilfe der vom W3C standardisierten Resource-Hints vorzuladen. Dieses Verfahren nennt sich Predictive Preloading. Dabei lädt der Browser eine Seite oder einzelne Dateien bereits vor der Anforderung durch den Benutzer herunter, um sie diesem schneller zur Verfügung zu stellen. Bereits Ende 2014 setzte Google Chrome die Technik ein, um das erste Suchergebnis zu laden, bevor der Benutzer dieses anklickt. Ein weiterer denkbarer Ansatz wäre das Vorladen der nächsten Seite eines mehrseitigen Artikels.

Allerdings ist beim Vorladen immer Wissen über die jeweilige Webseite oder das Verhalten der Benutzer innerhalb dieser nötig. Das ist nicht immer so leicht vorherzusagen wie in den genannten Beispielen. Fehleinschätzungen führen in diesem Fall aber leider dazu, dass nicht benötigte Dateien vom Server geladen werden und so Bandbreite blockiert und Datenvolumen verbraucht wird. Dazu kommt noch die ausbleibende Latenzreduktion.

Mit dem passenden Algorithmus zu kürzerer Latenz

Um dieses Problem zu lösen und das Potential des Vorladens für Webseiten und Portale zu steigern, wurde bei unymira ein Algorithmus entwickelt, der aus den Aufrufen der Benutzer ein stochastisches Modell trainiert, mit welchem der nächste Schritt eines Benutzers vorhergesagt werden kann. So wird die Wahrscheinlichkeit erhöht, den richtigen Content für den Nutzer der Webseite zu laden, die Latenz zu verringern und damit die Customer Experience zu erhöhen.

Dabei ist ein einmaliges Trainieren des Modells, basierend auf dem entwickelten Algorithmus, nicht zweckdienlich. Moderne Webseiten verändern sich ständig, neue Inhalte kommen hinzu, werden für die Benutzer relevant, aber über die Zeit auch wieder uninteressant. Das Modell muss daher kontinuierlich trainiert werden, um sich dem sich verändernden Benutzerverhalten stets anzupassen. Das ist aber mit einigen Herausforderungen verbunden:

1. Alterung der Beobachtungen

Umgesetzt wird das kontinuierliche Lernen, indem die Übergangswahrscheinlichkeiten des Modells bei jedem neuen Aufruf einer Seite angepasst werden. Dabei altern diese sogenannten Beobachtungen. Das heißt, dass gerade stattgefundene Aufrufe ein höheres Gewicht bei der Berechnung der Wahrscheinlichkeit haben als ältere Übergänge. Das Problem dabei: Die Werte zur Berechnung der Wahrscheinlichkeiten wachsen sehr schnell und können unendlich groß werden. Da das mit endlichen Ressourcen nicht abbildbar ist, ist im Modell eine Lösung in Form eines Divisionsalgorithmus, der bei jedem Trainingsschritt aufgerufen wird, integriert.

2. Zustandsexplosion

Schnelle Ladezeiten einer Webseite

Ein verwandtes Problem ist das ebenfalls unendliche Wachstum des Modells selbst. Jede Seite eines Portals stellt einen Zustand im Modell dar. Da ständig neue Seiten hinzukommen können, wird auch das Modell immer größer. Nicht mehr relevante oder gar gelöschte Seiten werden daher regelmäßig aus dem Modell entfernt. Für diesen, alles andere als trivialen Schritt wurde der Trainingsalgorithmus erneut erweitert.

3. Verfälschung durch Laden des HTML-Dokuments

Im Laufe der Entwicklung des Trainingsalgorithmus zeigte sich, dass das Vorladen einer Seite, genauer gesagt dessen HTML-Dokuments, das Vorhersagemodell verfälschen würde. Aus diesem Grund können nur die Ressourcen einer Seite, also unter anderem Bilder und Videos, vorgeladen werden. Dafür muss jedoch bekannt sein, welche Ressourcen zu einer Seite gehören. Realisiert wird dies, indem während des Vorladeprozesses serverseitig das HTML-Dokument der Seite geparsed wird und daraus die Ressourcen ermittelt werden.

4. Erhebung der Benutzerbewegungen

Predictive PreloadingEin weiterer elementarer Punkt, ist die Erhebung der Benutzerbewegungen, die als Eingangsdaten für den Trainingsalgorithmus verwendet werden. Der Algorithmus erwartet einen einzelnen Übergang von einer Seite zur nächsten. Dabei zählt auch das Verlassen des Portals als Übergang. Je verlässlicher diese Daten sind, desto genauer ist auch die Vorhersage des Modells. Um die Daten zu erheben, ist ein eigens entwickeltes Log Valves implementiert, mithilfe dessen alle benötigten Informationen einer Seitenanfrage ausgelesen werden können. Damit hat man unter anderem auch Zugriff auf den Header „Referer“ der Anfrage, der eine absolut zuverlässige Quelle für die Benutzerbewegungen ist.

5. Integration in eine Anwendung

Zu guter Letzt ist es wichtig, den Vorlademechanismus in eine bestehende Anwendung zu integrieren ohne die Auslieferung der Seite zu verzögern. Die Anweisungen, welche Dateien vorgeladen werden sollen, müssen in die Seite integriert werden, bevor diese an den Browser ausgeliefert wird. Diese Aufgabe übernimmt ein JEE-Filter. Er bestimmt mithilfe des Vorhersagemodells den Nachfolger der aktuell angeforderten Seite, ermittelt die vorzuladenden Ressourcen und baut die Resource-Hints in die Seite ein. Danach gibt er die Seite zur Auslieferung frei. Das Vorladen selbst übernimmt dann der Browser. So ist keine Veränderung an der bestehenden Anwendung nötig.

 

Einsatzgebiete des Modells

Der Trainings- und Vorlademechanismus ist prinzipiell bei jeder Webseite oder Portal einsetzbar. Die aktuelle Implementierung in Form einer Java-Bibliothek kann allerdings nur bei den Anwendungsservern Apache Tomcat, JBoss EAP und Wildfly verwendet werden, da diese LogValves und JEE-Filter unterstützen. Für andere Anwendungsserver bzw. andere Programmiersprachen können die Algorithmen portiert werden. Nicht jede Webseite ist aber gleich gut geeignet. Zum Beispiel führt eine sehr breit gefächerte Sitemap dazu, dass keine hohen Übergangswahrscheinlichkeiten erreicht werden und der Algorithmus nur selten Daten vorlädt.

Um das Feature zu nutzen  wird die Bibliothek auf dem Anwendungsserver installiert und konfiguriert. Bevor man die Vorlade-Funktion aber aktiviert, empfiehlt es sich, einen Evaluationslauf durchzuführen. Dabei werden über eine bestimmte Zeit reale Daten aus dem Portal gesammelt und ausgewertet, ob sich das Vorladen für das Portal lohnt und welche Parameter für den Trainings- und Vorhersagealgorithmus am besten geeignet sind. Anschließend kann die Vorladefunktion aktiviert werden.

 

Modell ist vielversprechend

Machine LearningDabei spricht die Trefferrate des Algorithmus für sich. In 76 % aller Fälle, in denen der Algorithmus entschied, dass vorgeladen werden soll, ist die Vorhersage eingetroffen. Verglichen mit anderen Ansätzen ist das ein sehr guter Wert.

Die Latenzreduktion selbst hängt stark von der jeweiligen Einzelseite und den darin enthaltenen Ressourcen ab. Daher wurde das Potential des Vorladens unter Laborbedingungen demonstriert: Die Ladezeit einer Seite konnte dabei um 0,7 Sekunden reduziert werden. Diese Ersparnis kann den Unterschied zwischen dem Verlassen und dem Verbleib auf einer Seite ausmachen und damit über die Kundengewinnung oder nicht entscheiden.

Sie möchten mehr darüber erfahren wie der Algorithmus funktioniert oder wie dieser auch die Latenz Ihrer Webseite verbessern kann? Dann laden Sie sich jetzt das E-Book zur Entwicklung des Algorithmus herunter oder kontaktieren Sie unsere Experten.

 

Es gibt noch keine Kommentare.