Wie macht man Fernsehen wirklich schlau?

    Vor einigen Jahren begannen Empfehlungssysteme gerade damit, ihre Verbraucher zu erobern. Online-Shops verwenden aktiv Algorithmen für Empfehlungen und bieten ihren Kunden basierend auf ihrer Kundenhistorie immer mehr neue Produkte an.

    Im Kundenservice sind Empfehlungssysteme vor nicht allzu langer Zeit relevant geworden. Im Zusammenhang mit der Zunahme des vorgeschlagenen Inhalts begann sich der Kunde im Informationsfluss darüber zu verlieren, was, wo und wann er suchen muss. Die Kopfschmerzen der Liebhaber von Videoinhalten ließen sich von Pay-TV-Betreibern und Online-Kinos behandeln.

    Bild

    Als ein wirksames Mittel zur Lösung des ewigen Problems "Was gibt es zu sehen?", Sind Empfehlungssysteme auf der Grundlage des einen oder anderen mathematischen Modells aufgetaucht.

    Vor zwei Jahren haben wir ein Empfehlungssystem eingeführt, das später um Leitartikel ergänzt wurde und sowohl im Vertrieb als auch in der Nutzungsdauer unseres Services spürbar war.

    Was ist ein Empfehlungssystem?


    Das Empfehlungssystem ist, wenn Sie etwas sehen möchten, aber Sie wissen nicht, was es ist, und der Fernseher schätzt Ihre Vorlieben sehr gut. Diese Inhaltsfilterung wählt Filme und Fernsehsendungen nach Präferenzen und Analyse des Nutzerverhaltens aus. Das vom Bediener verwendete System muss die Reaktion des Betrachters auf das eine oder andere Element vorhersagen und Inhalte anbieten, die ihm gefallen könnten.

    Bei der Programmierung von Empfehlungssystemen werden drei Hauptmethoden verwendet: kollaborative Filterung, inhaltsbasierte Filterung und wissensbasierte Systeme.

    Kollaborative Filterungbasierend auf drei Stufen: Sammeln von Benutzerinformationen, Erstellen einer Matrix zur Berechnung von Assoziationen und Ausgeben einer zuverlässigen Empfehlung.

    Ein gutes Beispiel für die Verwendung kollaborativer Filterung ist das von Netflix verwendete Cinematch-System. Benutzer geben den Filmen explizit oder implizit Noten, und Empfehlungen werden unter Berücksichtigung ihrer eigenen Nutzerbewertungen und der Bewertungen anderer Zuschauer gebildet. Dazu wählt das System Benutzer mit ähnlichen Präferenzen aus, deren Bewertungen nahe an ihren eigenen liegen. Basierend auf den Meinungen dieses Personenkreises erhält der Zuschauer automatisch eine Empfehlung: einen bestimmten Film ansehen.

    Für den korrekten Betrieb des Empfehlungssystems spielen natürlich die gesammelten und gesammelten Daten die grundlegende Rolle. Je mehr Daten über das Verbrauchsprofil eines Teilnehmers gesammelt werden, desto genauer werden ihm die Empfehlungen gegeben.

    Das Inhaltsempfehlungssystem wird basierend auf den jedem Element zugewiesenen Attributen formuliert. Wenn Sie sich Filme eines bestimmten Genres ansehen, bietet das System Ihnen automatisch Inhalte an, die in bestimmten Positionen Ihrem Genre nahekommen. Auf der Grundlage eines solchen Empfehlungssystems funktioniert die Pandora-Site.

    ExpertenempfehlungssystemeSie geben Empfehlungen nicht auf der Grundlage von Bewertungen, sondern auf der Grundlage von Ähnlichkeiten zwischen Benutzeranforderungen und Produktbeschreibung oder in Abhängigkeit von den Einschränkungen, die der Benutzer bei der Festlegung des gewünschten Produkts festgelegt hat. Daher stellt sich diese Art von System als einzigartig heraus, da der Kunde eindeutig angeben kann, was er will.

    Expertensysteme sind am effektivsten in Kontexten, in denen die Menge an verfügbaren Daten begrenzt ist, und die kollaborative Filterung am besten in Umgebungen funktioniert, in denen große Datenfelder vorhanden sind. Wenn die Daten jedoch diversifiziert sind, ist es möglich, dasselbe Problem auf unterschiedliche Weise zu lösen. Es ist also optimal, die erhaltenen Empfehlungen auf verschiedene Weise zu kombinieren, wodurch die Qualität des Systems insgesamt erhöht wird.

    Es ist ein ähnliches Hybridsystem von der Firma E-Contenta, das in unserem Service WiFire TV arbeitet . Es wurde im Dezember 2016 in Betrieb genommen und debuggt und arbeitet nach dem folgenden Prinzip: Wenn das System über den Benutzer oder den Inhalt ausreichend Bescheid weiß, haben die kollaborativen Filteralgorithmen Vorrang. Wenn der Inhalt neu ist oder nicht genügend Informationen zur Benutzerinteraktion mit ihm gesammelt wurden, werden Inhaltsalgorithmen verwendet, um die Ähnlichkeit des Inhalts anhand der verfügbaren Metadaten zu bewerten.

    Wie haben sich die Empfehlungsalgorithmen ergeben?


    Um eine personalisierte Sammlung in E-Contenta aufzubauen, war es erforderlich, alle verfügbaren Inhalte nach der Wahrscheinlichkeit zu sortieren, dass ein bestimmter Benutzer an diesem Inhalt interessiert ist.

    Bild

    Das Benutzerinteresse wird hauptsächlich in dem Moment bestimmt, in dem er auf den ihm empfohlenen Inhalt klickt, und die Wahrscheinlichkeit wird als das Verhältnis der Anzahl der Klicks zur Anzahl der Empfehlungen definiert, die dieser Benutzer diesem Benutzer empfohlen hat.

    p (click) = Nklikov / Npokazov

    Die Schwierigkeit liegt in der Tatsache, dass Sie etwas empfehlen müssen, das er noch nie gesehen hat. Daher sind Daten zur Anzahl der Klicks oder Impressions zur Berechnung dieser Wahrscheinlichkeit einfach nicht vorhanden.

    Daher wurde anstelle der tatsächlichen Wahrscheinlichkeit entschieden, eine Schätzung dieser Wahrscheinlichkeit, mit anderen Worten den vorhergesagten Wert, zu verwenden.

    Die Idee eines kollaborativen Filters ist einfach:

    1. Nehmen Sie die historischen Daten zur Ansicht von Inhalten für Benutzer vor
    2. Basierend auf diesen Daten gruppieren Sie die Benutzer nach dem angezeigten Inhalt.
    3. Für einen bestimmten Benutzer, um die Wahrscheinlichkeit seines Interesses an einer bestimmten Inhaltseinheit vorherzusagen, basierend auf historischen Daten anderer Benutzer, die zu derselben Gruppe gehören.

    So werden Benutzer gemeinsam in den Inhaltsauswahlprozess einbezogen.

    Bild

    Es gibt viele verschiedene Möglichkeiten, diesen Ansatz zu implementieren:

    1. Erstellen Sie ein Modell mit direkten Bezeichnern von Inhaltseinheiten:

    Bild

    Der Nachteil dieses Ansatzes besteht darin, dass das Modell keine Verknüpfungen zwischen Inhaltselementen "sieht". Zum Beispiel sind "Terminator" und "Terminator 2" für sie so weit voneinander entfernt wie "Alien" und "Gute Nacht, Kinder!". Darüber hinaus ist die Matrix selbst sehr dünn (viele leere Zellen und wenige gefüllt).

    2. Verwenden Sie anstelle von Bezeichnern die im Titel von Artikeln, Programmen oder Filmen enthaltenen Wörter:

    Bild

    3. Bei Filmen die Namen von Schauspielern, Regisseuren oder Daten aus der IMDb:

    Bild

    Die zweite und die dritte Option beseitigen teilweise die Nachteile des ersten Ansatzes, wobei die Verbindung von Inhalten berücksichtigt wird, die gemeinsame Merkmale aufweisen (desselben Direktors oder der gleichen Wörter im Titel). Die Sparsamkeit der Matrix nimmt jedoch ab, aber der Perfektion sind keine Grenzen gesetzt.

    Das Speichern eines kompletten Satzes von Benutzerbewertungen im Speicher ist ziemlich teuer. Wenn wir die Anzahl der Runet-Benutzer von 80 Millionen Menschen und die Größe der IMDb-Basis von 370.000 Filmen grob schätzen, erhalten wir die erforderliche Größe von 27 Terabyte.

    Bild
    Eine große Matrix T wird als Produkt einer Menge kleinerer Matrizen dargestellt.

    Mit anderen Worten, die Suche nach dem "Kern" der Matrix, der die gleichen Eigenschaften wie die vollständige Matrix hat, jedoch viel kleiner ist. Zusammen mit einer Abnahme der Abmessung nimmt die Abgabe ab. In diesem Artikel werden wir nicht auf die Feinheiten der Implementierung eingehen, zumal in einer Reihe von Programmiersprachen bereits fertige Bibliotheken vorhanden sind.

    Technische Schwierigkeiten


    Kaltstart

    Die Situation, in der das Fehlen von Daten für einen neuen Inhalt oder Benutzer keine qualitativ hochwertigen Empfehlungen gibt, die auch als "Kaltstart" bezeichnet werden, ist ein typisches Problem bei der kollaborativen Filterung.

    Eine Lösung ist das Einmischen der Empfehlungen verschiedener Inhalte, für die nicht genügend Daten gesammelt werden. Dem neuen Benutzer werden die beliebtesten Inhalte empfohlen.

    Am beliebtesten

    Bei diesem Ansatz ist es wichtig, nicht zu vergessen, dass die Folge ist, dass die Häufigkeit der „beliebtesten“ in der Liste der empfohlenen Maßnahmen systematisch erhöht wird. Durch das Lernen aus dem Verhalten von Nutzern, die häufig als die „beliebtesten“ bezeichnet werden, riskiert das Empfehlungssystem, zu lernen, nur die beliebtesten Inhalte zu empfehlen.

    Bild

    Der Hauptunterschied der persönlichen Empfehlungen von den banalen Empfehlungen der beliebtesten Inhalte besteht darin, dass sie den individuellen Geschmack berücksichtigen, der erheblich vom "Durchschnitt" abweichen kann.

    Daher sollte die Auswahl von Benutzerreaktionen auf den Inhalt, der zum Trainieren des Empfehlungsmodells verwendet wird, normalisiert werden.

    Verfügbarkeit, Ausfallsicherheit und Skalierbarkeit

    Die Anzahl der Benutzer der Ressource kann pro Sekunde Hunderte und Tausende Anfragen an das Empfehlungssystem verursachen. Der Ausfall eines oder mehrerer Server sollte jedoch nicht zu einem Denial-of-Service führen.

    Die klassische Lösung in diesem Fall ist die Verwendung eines Lastenausgleichs, der eine Anforderung an einen der Clusterserver sendet. Darüber hinaus kann jeder Server die eingehende Anforderung bearbeiten. Im Falle eines Ausfalls eines Servers im Cluster schaltet der Balancer automatisch die Last auf die Server um, die weiterhin in Betrieb sind. Durch die Auswahl von HTTP als Transportprotokoll können wir Nginx als Lastverteiler verwenden.

    Mit zunehmender Zielgruppe kann die Anzahl der Server in einem Cluster ansteigen. In diesem Fall ist es wichtig, die Kosten für die Vorbereitung eines neuen Servers zu minimieren.

    Ein Empfehlungssystem erfordert die Installation einer Reihe von Komponenten, auf denen es funktional basiert. Docker wird verwendet, um die Bereitstellung eines Empfehlungssystems mit all seinen Abhängigkeiten zu automatisieren.

    Mit Docker können Sie alle erforderlichen Komponenten sammeln, sie in ein Image "packen" und ein solches Image in den Speicher (Registrierung) legen und es dann innerhalb weniger Minuten herunterladen und auf einem neuen Server bereitstellen. Ein wichtiger Vorteil von Docker ist, dass der „Overhead“ bei seiner Verwendung minimal ist: Die Zeit, die benötigt wird, um eine Anwendung in einem Docker-Container aufzurufen, erhöht sich im Vergleich zu einer Anwendung, die auf einem normalen Betriebssystem ausgeführt wird, um einige Nanosekunden.

    Ein weiterer wichtiger Vorteil ist die Möglichkeit, bei einem erneuten Fehler schnell zur vorherigen stabilen Version der Anwendung zurückzukehren (Sie müssen nur die alte Version aus der Registrierung nehmen).

    Die zweite Art von Anfragen an das System, deren Wartung zu erledigen ist, sind Anfragen, die Benutzeraktionen verfolgen. Damit der Benutzer nicht warten muss, bis das System die von ihm ausgeführte Aktion vollständig abgearbeitet hat, wird die Verarbeitung unabhängig von dem Vorgang der Aufzeichnung von Aktionen ausgeführt.

    In der E-Contenta wurde Apache Kafka als Plattform für die Übertragung von Daten zu Benutzeraktionen an Handler ausgewählt. Kafka implementiert das Architekturmuster Message-Oriented Middleware), das eine garantierte Zustellung von Dutzenden und Hunderttausenden von Nachrichten pro Sekunde bietet und als Puffer fungiert, der Prozessoren zu Spitzenzeiten vor übermäßigen Daten schützt.

    Volle Autonomie des Selbstlernens:

    Regelmäßig erscheinen neue Inhalte und neue Benutzer. Ohne regelmäßige Schulung nimmt die Qualität des Modells ab. Das Training sollte auf separaten Servern durchgeführt werden, sodass der Lernprozess, der erhebliche Rechenressourcen erfordert, die Leistung der Kampfserver nicht beeinträchtigt.

    Die klassische Lösung für das Orchestrieren regelmäßiger verteilter Aufgaben ist Jenkins. Der geplante Dienst startet die Erfassung und Normalisierung neuer Trainingsmuster, die Schulung des empfohlenen Modells, die Bereitstellung neuer Modelle und die Aktualisierung aller Server im Cluster, wodurch die Qualität der Empfehlungen ohne zusätzlichen Aufwand aufrechterhalten werden kann. Bei einem Fehler in einem der Schritte setzt Jenkins das System automatisch in den vorherigen stabilen Zustand zurück und benachrichtigt den Administrator über den Fehler.

    Wie wir das bei WifireTV gemacht haben


    Damit das System einwandfrei funktioniert, haben wir einen unabhängigen Fernsehzähler eingeladen und ihn aufgefordert, das Fernsehbild der Abonnenten zu messen. Die erhaltenen eindeutigen Daten werden mithilfe von Data Science-Algorithmen belebt. Kontinuierlich arbeitendes Feedback von Abonnenten, die mit den Empfehlungen interagieren, füllt die Grundlage von Präzedenzfällen von Algorithmen für maschinelles Lernen und ermöglicht, dass sich die Empfehlungen ändern, abhängig von den impliziten Anzeichen sich ändernder Präferenzen der Abonnenten, wie z. B. Jahreszeit, Urlaubsantritt oder Änderung der Familienzusammensetzung.

    Bild

    Während des Testens mussten wir das Problem lösen, das mit der Empfehlung von Fernsehinhalten zusammenhängt - wie wir unseren Abonnenten helfen können, Sendeströme zu verstehen. Die Aufgabe wird auch durch die Dienste der verzögerten Betrachtung kompliziert. Wir haben ein System eingebaut, das anstelle eines endlosen zyklischen Kanalwechsels hilft, ein interessantes Programm bereits beim Drücken von 2-3 Tasten zu finden. Zu diesem Zweck überwacht das Empfehlungssystem die Veröffentlichung einer neuen Serie von Programmen und prognostiziert das Interesse der Zuschauer an irregulären Programmen und Sendungen von Filmen. Tatsächlich ersetzen Maschinenalgorithmen die Arbeit des verantwortlichen Editors.

    Bild

    Die Arbeit mit Streaming-Fernsehen hat seine eigenen Besonderheiten. Beispielsweise werden häufig dieselben populären Fernsehsendungen auf verschiedenen Kanälen gesendet. In diesem Fall muss das Empfehlungssystem die Vervielfältigung von Informationen verstehen und basierend auf den Präferenzen des Teilnehmers eine Empfehlung hinsichtlich der Kanäle, der Startzeit der Übertragung usw. auswählen. Eine solche Duplizierung von Informationen tritt auch auf, wenn der Abonnent die SD- und HD-Versionen der Kanäle abonniert hat.

    Während dieser zwei Jahre haben wir mit verschiedenen Versionen von Empfehlungssystemen experimentiert und einen Mittelweg gefunden, der es uns ermöglicht, die Einbindung des Publikums zu verbessern und vorhandene Inhalte effektiver zu monetarisieren. Wir verwenden die oben beschriebene automatische Auswahl von Empfehlungen für die manuelle Konfiguration - redaktionelle Sammlungen.

    Durch diesen Ansatz konnte die Monetarisierung von VOD- und SVOD-Diensten (10-mal) erheblich gesteigert werden.

    Redaktionelle Empfehlungen sind Sammlungen von thematischen Filmen und Serien, die an hochkarätige Premieren, Feiertage und denkwürdige Termine gebunden sind. Es ist sehr praktisch - Abonnenten zu benachrichtigen und ihnen die Möglichkeit zu geben, neue Filme, alte Hits oder unpopuläre Filme anzusehen, aber unserer Meinung nach sehr interessante Filme, was den Inhalt und die Handlung angeht. Wir kommunizieren eng mit unseren Lieferanten (Online-Kinos und zusätzliche Videodienste wie ivi, megogo, amediateka) und wählen persönlich jeden Film aus, der für unsere Abonnenten interessant sein wird.

    An Feiertagen treffen wir spezielle Angebote zu einem bestimmten Thema. Zum Tag des Sieges sind dies beispielsweise Filme mit einem militärischen Thema. Am ersten September - eine Auswahl an Inhalten für Kinder, die aus Bildungsprogrammen, Cartoons und Dokumentationen besteht.

    Die manuelle Auswahl erhöht die Loyalität unserer Abonnenten perfekt. Nach unseren konservativsten Schätzungen schauen sich jeden Monat ungefähr 10% unserer Abonnentenfilme Filme an, die wir empfehlen, und diese Zahl wächst ständig.

    Was ist das ergebnis


    Derzeit wird Wifire TV mit einem intelligenten Empfehlungssystem von E-Contenta betrieben. Es basiert auf Datenwissenschaft und Metadaten von 90% der Abonnenten des Betreibers. Der Algorithmus berücksichtigt Hunderte von Daten: Was der Abonnent sieht, welche Filme und Programme beliebt sind, wann er den Dienst nutzt und wer sich jetzt vor dem Bildschirm befindet. Wir möchten unseren Abonnenten den Wert eines Abonnements von Premium-Channel-Paketen vermitteln und sie mit relevanten Benutzerprogrammen in Empfehlungen mischen. Wir möchten auch zeigen, was man sich legaler Videoinhalte beschaffen und anschauen soll - das ist normal, bequem und einfach.

    Das Empfehlungssystem wird den Abonnenten zu interessanten Filmen anregen, auch wenn diese längst nicht mehr in der Kategorie der neuen Produkte enthalten sind: Der umfangreiche Videokatalog ist somit keine staubige Bibliothek mehr und wird zu einem interaktiven Schaukasten, der sich flexibel an den Geschmack und die Stimmung der Abonnenten anpasst.

    Jetzt auch beliebt: