DE10154656A1 - System und Verfahren für Empfehlungen von Artikeln - Google Patents

System und Verfahren für Empfehlungen von Artikeln

Info

Publication number
DE10154656A1
DE10154656A1 DE10154656A DE10154656A DE10154656A1 DE 10154656 A1 DE10154656 A1 DE 10154656A1 DE 10154656 A DE10154656 A DE 10154656A DE 10154656 A DE10154656 A DE 10154656A DE 10154656 A1 DE10154656 A1 DE 10154656A1
Authority
DE
Germany
Prior art keywords
user
users
similarity
article
articles
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10154656A
Other languages
English (en)
Inventor
Ralf Bertram
Gerhard Schrimpf
Hermann Stamm-Wilbrandt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10154656A1 publication Critical patent/DE10154656A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0222During e-commerce, i.e. online transactions

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Die vorliegende Erfindung bezieht sich auf Mittel und ein rechnergestütztes Verfahren zum Empfehlen eines Artikels an einen bestimmten Benutzer. Ein Benutzerprofil umfasst für jeden aus einer Vielzahl von Artikeln, die von den Benutzern bewertet worden sind, mindestens eine Bewertungsgröße. Im Gegensatz zum Stand der Technik umfassen die Benutzerprofile ausdrücklich keinerlei vorherberechneten Ähnlichkeitsfaktor, der die Ähnlichkeit zwischen Benutzern misst. Für jede Anforderung des bestimmten Benutzers auf Empfehlung werden die folgenden Schritte vorgeschlagen: DOLLAR A (A) ein Schritt, um nur zeitweilig zum Gebrauch innerhalb der Anforderung auf Empfehlung eine Vielzahl von Ähnlichkeitsfaktoren zu berechnen, welche die Ähnlichkeit zwischen dem bestimmten Benutzer und der Vielzahl anderer Benutzer messen. Diese Ähnlichkeitsfaktoren werden dann jeweils mit den bestimmten Benutzern verbunden; DOLLAR A (B) ein Schritt, um eine Untermenge aus der Vielzahl von Benutzern als benachbarte Benutzer N des bestimmten Benutzers zu ermitteln; DOLLAR A (C) ein Schritt, um mindestens einen aus der Vielzahl der Artikel auf der Grundlage der Ähnlichkeitsfaktoren der benachbarten Benutzer N und auf der Grundlage der Bewertungsgrößen der Artikel durch die benachbarten Benutzer N zu empfehlen.

Description

1. Grundlagen der Erfindung 1.1 Gebiet der Erfindung
Die vorliegende Erfindung bezieht sich auf Mittel und ein Verfahren zum Empfehlen von Artikeln (items) an einen bestimmten Benutzer auf der Grundlage von Artikelempfehlungen von ihm und anderen Benutzern des Systems. Insbesondere bezieht sich die vorliegende Erfindung auf eine verbesserte Technik zum Ermitteln benachbarter Benutzer mit einem hohen Grad von Ähnlichkeit mit dem aktuellen Benutzer.
1.2 Beschreibung und Nachteile des Standes der Technik
Ein neues Gebiet der Technik, dessen Bedeutung wächst, besteht aus dem Bereich des "kollaborativen Filterns" oder des "sozialen Filterns" von Informationen. Diese Techniken stellen eine neuartige Verfahrensweise zum Filtern von Informationen dar, die sich nicht auf den "Inhalt" von Objekten bezieht, wie es beim inhaltsbezogenen Filtern der Fall ist. Stattdessen bezieht sich das Filtern auf Metadaten "über" Objekte. Diese Metadaten können entweder automatisch gesammelt werden, das heißt, dass Daten von der Wechselwirkung der Benutzer mit dem System abgeleitet werden (beispielsweise durch die Zeit, die damit verbracht wird, Artikel zu lesen, als Anzeige für das Interesse), oder Daten müssen von den Benutzern des Systems freiwillig bereitgestellt werden. In der Tat besteht die wesentliche Idee darin, den Vorgang der mündlichen Verbreitung zu automatisieren, mit dem Leute einander Produkte oder Dienstleistungen empfehlen. Wenn jemand zwischen einer Vielzahl von Optionen zu wählen hat, mit denen er keinerlei Erfahrung hat, wird sich derjenige oftmals auf die Meinungen anderer verlassen, die derartige Erfahrung besitzen. Wenn es jedoch Tausende oder Millionen von Optionen gibt, wie etwa im Internet, wird es für einen Einzelnen praktisch unmöglich, zuverlässige Fachleute zu finden, die zu jeder der Optionen Ratschläge erteilen können. Durch den Übergang von einem Einzel- zu einem Gemeinschaftsverfahren zu Empfehlungen ist das Problem einfacher zu handhaben.
Statt des Abfragens von Meinungen jedes Einzelnen könnte man versuchen, für die Gruppe eine "Durchschnittsmeinung" zu ermitteln. Dies trägt jedoch den speziellen Interessen einer bestimmten Person nicht Rechnung, die sich von denen der "durchschnittlichen Person" unterscheiden können. Daher würde man es eher vorziehen, die Meinung derjenigen Leute zu hören, die den eigenen ähnliche Interessen haben, das soll heißen, man würde eine "nach Art der Arbeit" aufgeteilte Organisationsart bevorzugen, bei der Leute nur zu dem Gebiet beitragen, auf dem sie spezialisiert sind.
Der grundlegende Mechanismus hinter den kollaborativen Filtersystemen ist Folgender:
  • - die Vorlieben einer großen Gruppe von Leuten werden registriert;
  • - unter Verwendung einer Ähnlichkeitsmaßzahl wird eine Untergruppe von Leuten ausgewählt, deren Vorlieben den Vorlieben der Person ähnlich sind, die Rat sucht;
  • - ein (möglicherweise gewichteter) Durchschnitt der Vorlieben für diese Untergruppe wird berechnet;
  • - die sich ergebende Vorliebenfunktion wird dafür benutzt, Optionen zu empfehlen, zu denen der Ratsuchende bisher keine persönliche Meinung geäußert hat.
Typische Ähnlichkeitsmaßzahlen sind Korrelationskoeffizienten nach Pearson zwischen den Vorliebenfunktionen der Benutzer und (weniger häufig) den Vektorabständen oder Punkteprodukten.
Wenn die Ähnlichkeitsmaßzahl tatsächlich Leute mit ähnlichem Geschmack ausgewählt hat, sind die Chancen groß, dass die Optionen, die von dieser Gruppe hoch bewertet worden sind, auch von dem Ratsuchenden geschätzt werden. Die typische Anwendung ist die Empfehlung von Büchern, Musik-CDs oder Filmen.
Allgemeiner kann das Verfahren für die Auswahl von Dokumenten, Dienstleistungsprodukten jeglicher Art oder im Allgemeinen jedes beliebigen Typs von Betriebsmittel benutzt werden. In der Welt vor dem Internet sind Bewertung und Empfehlungen möglicherweise sogar durch Dienste bereitgestellt worden, wie etwa:
  • - Zeitungen, Zeitschriften, Bücher, die von ihren Herausgebern oder Publizisten bewertet worden sind, wobei Information ausgewählt worden ist, von der sie vermuten, dass ihre Leser sie haben möchten.
  • - Verbraucherorganisationen und Handelszeitschriften, die Produkte auswerten und bewerten.
  • - Veröffentlichte Rezensionen von Büchern, Musik, Theater, Filmen usw.
  • - Verfahren der Beurteilung durch Fachleute, um Einreichungen bei wissenschaftlichen Zeitschriften auszuwählen.
Beispiele dieser Techniken sind beispielsweise die Darlegungen von John B. Hey, System und Verfahren zum Vorhersagen subjektiver Reaktionen, US-Patentschrift 4 870 579 oder John B. Hey, System und Verfahren zum Empfehlen von Artikeln, US-Patentschrift 4 996 642, die beide an Neonics Inc. übertragen worden sind, und auch die von Christopher P. Bergh, Max E. Metral, David Henry Ritter, Jonathan Ari Sheena, James J. Sullivan, Verteiltes System zum Erleichtern des Austausches von Benutzerinformation und -meinung unter Verwendung des automatischen kollaborativen Filterns, US-Patentschrift 6 112 186, die an Microsoft Corporation übertragen worden ist. Trotz all dieser Fortschritte und insbesondere auf Grund der erhöhten Bedeutung des Internets, das die Zugriffstechnik und die Infrastruktur für die Kommunikation für Empfehlungssysteme bietet, gibt es in der Technik noch ein Bedürfnis nach Verbesserung.
1.3 Zielsetzung der Erfindung
Die Erfindung beruht auf dem Ziel, eine Verfahrensweise bereitzustellen, um das Leistungsvermögen und die Wirtschaftlichkeit zu verbessern, eine Flut von Empfehlungsanforderungen zu bearbeiten. Es ist ein weiteres Ziel der vorliegenden Erfindung, die Qualität der einzelnen Empfehlungen zu verbessern.
2. Zusammenfassung und Vorzüge der Erfindung
Die Ziele der Erfindung werdend durch die unabhängigen Ansprüche erreicht. Weitere vorteilhafte Anordnungen und Ausführungsformen der Erfindung werden in den jeweiligen Unteransprüchen erläutert.
Die vorliegende Erfindung bezieht sich auf Mittel und ein rechnergestütztes Verfahren zum Empfehlen eines Artikels an einen bestimmten Benutzer. Ein Benutzerprofil umfasst für jeden aus einer Vielzahl von Artikeln, die von den Benutzern bewertet worden sind, mindestens eine Bewertungsgröße. Im Gegensatz zum Stand der Technik umfassen die Benutzerprofile ausdrücklich keinerlei vorher berechnete Ähnlichkeitsfaktoren, welche die Ähnlichkeit zwischen Benutzern messen. Für jede Empfehlungsanforderung des bestimmten Benutzers werden die folgenden Schritte vorgeschlagen:
  • A) ein Schritt, um zeitweilig nur zum Gebrauch innerhalb der Empfehlungsanforderung eine Vielzahl von Ähnlichkeitsfaktoren zu berechnen, welche die Ähnlichkeit zwischen dem bestimmten Benutzer und der Vielzahl von anderen Benutzern misst. Diese Ähnlichkeitsfaktoren werden dann mit den jeweiligen Benutzern verbunden.
  • B) ein Schritt, um aus der Vielzahl der Benutzer eine Untermenge als benachbarte Benutzer N des bestimmten Benutzers zu ermitteln.
  • C) ein Schritt, um auf der Grundlage der Ähnlichkeitsfaktoren der benachbarten Benutzer N und auf der Grundlage von Bewertungsgrößen der Artikel der benachbarten Benutzer N mindestens einen aus der Vielzahl von Artikeln zu empfehlen.
Während der Stand der Technik vorschlägt, dass jede Aktualisierung einer Bewertungsgröße (oder eine Vielzahl derartiger Aktualisierungen) eine Vorausberechnung der Ähnlichkeitsfaktoren und benachbarter Benutzer auslösen wird, schlägt die vorliegende Erfindung vor, das Dogma des Erzeugens und Verwaltens von statischen, vorausberechneten Ähnlichkeitsfaktoren und dauerhaft gespeicherten benachbarten Benutzern aufzugeben. Obwohl die vorgeschlagene Verfahrensweise erfordert, für jede Empfehlungsanforderung eine Vielzahl von Ähnlichkeitsfaktoren der benachbarten Benutzer zu berechnen, hat sie die insgesamt überraschende und unerwartete Wirkung einer bedeutsamen Verbesserung des Leistungsvermögens. In einer überschlägigen Untersuchung ist dies zu erklären: mit einer steigenden Anzahl von Benutzern und einer steigenden Anzahl von Aktualisierungen an den Bewertungsgrößen trägt die erneute Berechnung von vorausberechneten Ähnlichkeitsfaktoren und vorausberechneten benachbarten Benutzern überproportional zum Verarbeitungsaufwand der Übereinstimmungs-/Empfehlungssysteme bei.
Darüber hinaus verbessert die vorgeschlagene Lösung die Qualität der erzeugten Empfehlungen, die sich nicht mehr unterhalb des Optimums befindet, wie es beim Stand der Technik der Fall ist. Da die vorgeschlagene Lösung darauf hinausläuft, die Ähnlichkeitsfaktoren und benachbarten Benutzer pro Empfehlungsanforderung und ohne Ausnutzung eines beliebigen vorausberechneten Ähnlichkeitswertes zu berechnen, können keine veralteten Ähnlichkeitsfaktoren die Qualität der berechneten Übereinstimmungen und Empfehlungen negativ beeinflussen.
3. Kurze Beschreibung der Zeichnungen
Fig. 1 gibt einen Überblick über die Konzepte von Empfehlungssystemen.
Fig. 2 zeigt den bevorzugten Entwurf der Datenstruktur nach der vorliegenden Erfindung, wie sie den Benutzerprofilen und Artikelprofilen gemeinsam ist.
Fig. 3 zeigt ein Beispiel der Kombination von Benutzerprofilen und Artikelprofilen, das die zweidimensionale Verknüpfung widerspiegelt.
Fig. 4 veranschaulicht eine Pseudoprogramm-Darstellung des Übereinstimmungsalgorithmus nach der vorliegenden Erfindung, bei der eine der Reihenfolge nach geordnete Übereinstimmungsliste, das heißt die gewichteten benachbarten Benutzer, des bestimmten Benutzers ermittelt wird, ohne dass vorausberechnete Ähnlichkeitsfaktoren erforderlich sind, welche die Ähnlichkeit zwischen Benutzerpaaren messen.
Fig. 5 widerspiegelt die Berechnung eines verbesserten Übereinstimmungsalgorithmus mit Handhabung einer Zeitmarkierung und Zwischenspeichern von Listen von benachbarten Benutzern.
4. Beschreibung der bevorzugten Ausführungsform
In den Zeichnungen und der Beschreibung ist eine bevorzugte Ausführungsform der Erfindung dargestellt worden, und obgleich bestimmte Ausdrücke benutzt worden sind, benutzt die so gegebene Beschreibung die Terminologie nur in einem ursprünglichen und beschreibenden Sinne und nicht zum Zwecke der Eingrenzung. Es wird jedoch offenkundig sein, dass verschiedene Modifikationen und Veränderungen daran vorgenommen werden können, ohne dass vom weiteren Sinne und Umfang der Erfindung abgewichen wird, wie sie in den anhängenden Ansprüchen dargelegt wird.
Die vorliegende Erfindung kann in Hardware, Software oder als Kombination von Hardware und Software realisiert werden.
Jegliche Art von Rechnersystem - oder andere Vorrichtungen zum Ausführen der hierin beschriebenen Verfahren - ist geeignet. Eine übliche Kombination von Hardware und Software könnte ein Allzweck-Rechnersystem mit einem Rechnerprogramm sein, das dann, wenn es geladen und ausgeführt wird, das Rechnersystem steuert, so dass es die hierin beschriebenen Verfahren ausführt. Die vorliegende Erfindung kann auch in ein Rechnerprogrammprodukt eingebettet werden, das alle die Merkmale umfasst, die das Durchführen der hierin beschriebenen Verfahren ermöglicht, und das - wenn es in einem Rechnersystem geladen wird - in der Lage ist, diese Verfahren auszuführen.
Rechnerprogramm-Mittel oder Rechnerprogramm bedeutet im vorliegenden Zusammenhang jeglichen Ausdruck, in einer beliebigen Sprache, Code oder Schreibweise aus einer Menge von Befehlen, die dafür bestimmt sind, ein System, das eine Fähigkeit zur Informationsverarbeitung hat, dazu zu veranlassen, eine bestimmte Funktion entweder direkt oder nach einer oder beiden der folgenden a) Umwandlung in eine andere Sprache, Code oder Schreibweise; b) Reproduktion in einer unterschiedlichen materiellen Form auszuführen.
Unter Bezugnahme auf diese Beschreibung können Artikel (items), die empfohlen werden, Artikel beliebiger Art sein: wie schon vorstehend erwähnt, kann sich ein Artikel auf jede beliebige Art von Betriebsmittel/Ressource beziehen, die denkbar ist.
4.1 Konzepte von Empfehlungssystemen
Das Folgende ist ein kurzer Abriss der grundlegenden Konzepte von Empfehlungssystemen.
Unter Bezugnahme auf Fig. 1 beginnt ein Verfahren zum Empfehlen von Artikeln mit dem Speichern von Benutzer- und Artikelinformationen in Profilen.
In einem Speicher (Schritt 102) wird eine Vielzahl von Benutzerprofilen gespeichert. Es kann für jeden Benutzer ein Profil erzeugt werden, oder es können für einen Benutzer viele Profile erzeugt werden, um diesen Benutzer über mehrere Bereiche hinweg darzustellen. Andernfalls kann ein Benutzer in einem Bereich durch mehrere Profile dargestellt werden, wobei jedes Profil die Neigungen eines Benutzers unter einer gegebenen Menge von Umständen darstellt. Beispielsweise könnte eine Benutzer, der freitags, aber nicht an anderen Wochentagen, Fischrestaurants meidet, ein Profil haben, das die Vorlieben des Benutzers für Restaurants von Sonnabend bis zum Donnerstag darstellt, und ein zweites Profil haben, das die Vorlieben des Benutzers für Restaurants an Freitagen darstellt. In einigen Ausführungsformen stellt ein Benutzerprofil mehr als einen Benutzer dar.
Beispielsweise kann ein Profil erzeugt werden, das eine Frau und ihren Ehemann im Hinblick auf die Auswahl von Filmen darstellt. Das Benutzen dieses Profils gestattet es, dass eine Filmempfehlung abgegeben wird, die dem Filmgeschmack beider Personen Rechnung trägt. Der Einfachheit halber wird der Rest dieser Beschreibung den Ausdruck "Benutzer" so benutzen, das er sich sowohl auf einzelne Benutzer als auch auf "zusammengefasste Benutzer" bezieht. Der Speicher kann ein beliebiger Speicher nach dem Stand der Technik sein, der in der Lage ist, Daten von Benutzerprofilen zu speichern und der das Aktualisieren von Benutzerprofilen zulässt, wie etwa ein Plattenspeicher oder ein Speicher mit wahlfreiem Zugriff.
Jedes Benutzerprofil verbindet Artikel mit den durch den Benutzer für diese Artikel erteilten Bewertungen. Jedes Benutzerprofil kann auch zu der Bewertung des Benutzers Zusatzinformationen speichern. In einer Ausführungsform speichert das Benutzerprofil Informationen über den Benutzer, z. B. Name, Adresse oder Alter. In einer weiteren Ausführungsform speichert das Benutzerprofil Informationen über die Bewertung, wie etwa die Zeit und das Datum, zu dem der Benutzer die Bewertung für den Artikel eingegeben hat. Benutzerprofile können aus einer beliebigen Datenstruktur bestehen, die diese Verbindungen ermöglicht, wie etwa einer Matrix, obwohl es vorgezogen wird, Benutzerprofile als dünn besetzte Vektoren von n-Tupeln bereitzustellen. Jedes n-Tupel enthält mindestens einen Kennzeichner, der den bewerteten Artikel darstellt, und einen Kennzeichner, der die Bewertung darstellt, die dem Artikel von dem Benutzer erteilt worden ist, und kann eine beliebige Anzahl von zusätzlichen Bestandteilen an Informationen hinsichtlich des Artikels, der Bewertung oder beidem enthalten. Einige der zusätzlichen Informationsbestandteile, die in einem Benutzerprofil gespeichert werden, können auf der Grundlage anderer Informationen in dem Profil berechnet werden, beispielsweise kann eine durchschnittliche Bewertung für eine bestimmte Auswahl von Artikeln (z. B. Heavy-Metal-Alben) berechnet und im Benutzerprofil gespeichert werden. In einigen Ausführungsformen werden die Profile als der Reihe nach geordnete n-Tupel bereitgestellt.
Immer dann, wenn ein Profil erzeugt wird, können von dem Benutzer eine Anzahl von Anfangsbewertungen für Artikel erbeten werden. Dies kann dadurch erfolgen, dass dem Benutzer eine bestimmte Menge von Artikeln bereitgestellt wird, die entsprechend einer bestimmten Artikelgruppe zu bewerten ist. Gruppen sind Gattungen von Artikeln und werden nachstehend ausführlicher besprochen. Andere Verfahren zum Erbitten von Bewertungen durch den Benutzer können Folgendes enthalten: manuelle Eingabe von Paaren Artikel/Bewertung, in denen der Benutzer einfach eine Liste von Artikeln und Bewertungen vorlegt, die diesen Artikeln zugeordnet worden sind; Bewertungen nach dem Datum des Eintrags in das System zu erbitten, d. h. den Benutzer zu bitten, den neuesten Artikel zu bewerten, der dem System hinzugefügt worden ist; Bewertungen für diejenigen Artikel zu erbitten, welche die meisten Bewertungen haben; oder indem es einem Benutzer gestattet wird, Artikel nach der Ähnlichkeit mit einem anfänglichen, durch den Benutzer ausgewählten Artikel zu bewerten. In noch weiteren anderen Ausführungsformen kann das System eine Anzahl Bewertungen durch das Überwachen der Umgebung des Benutzers erwerben. Beispielsweise kann das System annehmen, dass Websites, für die der Benutzer "Lesezeichen" erzeugt hat, diesem Benutzer gefallen, und kann diese Sites als Anfangseinträge in das Profil des Benutzers verwenden. Eine Ausführungsform benutzt alle vorstehend beschriebenen Verfahren und gestattet es dem Benutzer, das bestimmte Verfahren auszuwählen, das er verwenden möchte.
Bewertungen für Artikel, die von Benutzern empfangen werden, können eine beliebige Form haben, die es dem Benutzer gestattet, subjektive Eindrücke von Artikeln auf der Grundlage ihrer Erfahrung mit dem Artikel aufzuzeichnen. Beispielsweise können Artikel nach einem alphabetischen Maßstab ("A" bis "F") oder einem zahlenmäßigen Maßstab (1 bis 10) bewertet werden. In einer Ausführungsform sind die Bewertungen ganze Zahlen zwischen 1 (der niedrigsten) und 7 (der höchsten). Es kann jegliche Technik dafür benutzt werden, diese Bewertungen in ein Rechnersystem einzugeben. Bewertungen können sogar vom System aus dem Muster der Gewohnheiten des Benutzers abgeleitet werden. Beispielsweise kann das System überwachen, wie lange der Benutzer eine bestimmte Webseite betrachtet, und kann im Profil dieses Benutzers eine Anzeige speichern, dass die Seite dem Benutzer gefällt, wobei angenommen wird, dass die Seite dem Benutzer um so mehr gefällt, je länger der Benutzer die Seite ansieht. Andernfalls kann ein System die Aktionen des Benutzers überwachen, um für den Benutzer eine Bewertung eines bestimmten Artikels zu ermitteln. Beispielsweise kann das System schlussfolgern, dass einem Benutzer ein Artikel gefällt, den der Benutzer per e-Mail an viele Leute verschickt, und kann in dem Profil des Benutzers eine Kennzeichnung eingeben, dass der Artikel dem Benutzer gefällt. Es kann mehr als ein Aspekt des Benutzerverhaltens überwacht werden, um für diesen Benutzer Bewertungen abzuleiten, und in einigen Ausführungsformen kann das System für eine Bewertung, die durch das Überwachen mehrerer Aspekte des Benutzerverhaltens abgeleitet worden ist, einen höheren Vertrauensfaktor haben. Vertrauensfaktoren werden nachstehend ausführlicher erörtert.
Profile für jeden Artikel, der von mindestens einem Benutzer bewertet worden ist, können ebenfalls im Speicher gespeichert werden. Jedes Artikelprofil zeichnet auf, wie bestimmte Benutzer diesen bestimmten Artikel bewertet haben. Jegliche Datenstruktur kann benutzt werden, die Bewertungen, die dem Artikel erteilt worden sind, mit dem Benutzer verbindet, der die Bewertung erteilt. Es wird bevorzugt, Artikelprofile als dünn besetzten Vektor von n-Tupeln bereitzustellen. Jedes n-Tupel enthält mindestens einen Kennzeichner, der einen bestimmten Benutzer darstellt, und einen Kennzeichner, der die Bewertung darstellt, die der Benutzer dem Artikel erteilt hat, und es kann andere Informationen enthalten, wie es vorstehend im Zusammenhang mit Benutzerprofilen beschrieben worden ist.
Die zusätzlichen Informationen, die mit jedem Artikel- Bewertungs-Paar verbunden sind, können durch das System für eine Vielzahl von Zwecken verwendet werden, wie etwa Einschätzen der Gültigkeit der Bewertungsdaten. Beispielsweise kann es, wenn das System die Zeit und das Datum aufzeichnet, zu denen die Bewertung eingegeben worden ist oder diese von der Umgebung des Benutzers abgeleitet hat, das Alter einer Bewertung für einen Artikel ermitteln. Eine Bewertung, die sehr alt ist, kann anzeigen, dass die Bewertung weniger bedeutungsvoll ist als eine Bewertung, die kürzlich eingegeben worden ist, beispielsweise können sich die Geschmacksrichtungen der Benutzer mit der Zeit ändern oder "verschieben". Eines der Felder des n-Tupels kann darstellen, ob die Bewertung durch den Benutzer eingegeben oder durch das System abgeleitet worden ist. Bewertungen, die von dem System abgeleitet worden sind, können als weniger bedeutungsvoll angesehen werden als Bewertungen, die tatsächlich vom Benutzer eingegeben worden sind. Es können andere Informationselemente gespeichert werden, und jegliche Kombination oder Untermenge von zusätzlichen Informationen können dafür benutzt werden, die Bedeutsamkeit von Bewertungen einzuschätzen. In einigen Ausführungsformen kann diese Maßzahl als Vertrauensfaktor dargestellt werden, das heißt, die kombinierte Wirkung der ausgewählten Informationen, die in dem n-Tupel aufgezeichnet sind, kann als Zahl quantifiziert werden. In einigen Ausführungsformen kann diese Zahl als Prozentsatz ausgedrückt werden, der die Wahrscheinlichkeit darstellt, dass die zugehörige Bewertung nicht richtig ist oder als eine zu erwartende Abweichung der vorhergesagten Bewertung von dem "richtigen" Wert.
Auf die Benutzerprofile wird zugegriffen, um für jeden bestimmten Benutzer im Hinblick auf alle anderen Benutzer (Schritt 104) einen Ähnlichkeitsfaktor zu berechnen. Ein Ähnlichkeitsfaktor stellt den Grad der Zusammengehörigkeit zwischen zwei beliebigen Benutzern im Hinblick auf die Menge von Artikeln dar. Die Berechnung, die durchgeführt werden soll, kann derart ausgewählt werden, dass der Ähnlichkeitsfaktor um so näher bei null liegt, je mehr die zwei Benutzer zueinander gehören.
Immer dann, wenn eine Bewertung von einem Benutzer empfangen oder vom System vom Verhalten dieses Benutzers abgeleitet worden ist, kann das Profil dieses Benutzers ebenso wie das Profil des bewerteten Artikels aktualisiert werden. Aktualisierungen von Profilen können an einem zeitweiligen Speicherstandort gespeichert und zu einem geeigneten Zeitpunkt eingegeben werden, oder Profile können immer dann aktualisiert werden, wenn von diesem Benutzer eine neue Bewertung eingegeben oder für ihn abgeleitet worden ist. Profile können aktualisiert werden, indem ein neues n-Tupel von Werten zu der Menge von schon vorhandenen n-Tupeln im Profil angehängt wird, oder, falls die neue Bewertung eine Änderung an einer vorhandenen Bewertung ist, indem der entsprechende Eintrag im dem Benutzerprofil überschrieben wird. Das Aktualisieren eines Profils erfordert auch das erneute Berechnen beliebiger Profileinträge, die auf anderen Informationen im Profil beruhen. Insbesondere immer dann, wenn das Profil eines Benutzers mit einem neuen n-Tupel Bewertung/Artikel aktualisiert wird, müssen neue Ähnlichkeitsfaktoren zwischen dem Benutzer und anderen Benutzern dieses Systems berechnet werden. In anderen Ausführungsformen werden die Ähnlichkeitsfaktoren periodisch neu berechnet oder als Reaktion auf einen beliebigen anderen Auslöser erneut berechnet, wie etwa eine Veränderung im Profil eines benachbarten Benutzers. Der Ähnlichkeitsfaktor für einen Benutzer wird durch den Vergleich des Profils dieses Benutzers mit dem Profil jedes anderen Benutzers des Systems berechnet. Dies ist rechenintensiv, da die Größenordnung der Rechenvorgänge zum Berechnen von Ähnlichkeitsfaktoren auf diese Weise gleich n2 ist, wobei n die Anzahl von Benutzern des Systems ist. Es ist möglich, die mit dem erneuten Berechnen von Ähnlichkeitsfaktoren verbundene rechentechnische Belastung in Ausführungsformen zu vermindern, die Artikelprofile auf eine solche Weise speichern, dass sie zuerst die Profile der neu bewerteten Artikel abrufen und ermitteln, welche anderen Benutzer diesen Artikel schon bewertet haben. Die Ähnlichkeitsfaktoren zwischen dem neu bewertenden Benutzer und den Benutzern, die den Artikel schon bewertet haben, sind die einzigen aktualisierten Ähnlichkeitsfaktoren. Im Allgemeinen sollte ein Verfahren zum Berechnen von Ähnlichkeitsfaktoren zwischen Benutzern die Abweichung zwischen einer vorhergesagten Bewertung für einen Artikel und der Bewertung minimieren, die ein Benutzer dem Artikel tatsächlich erteilt haben würde.
Ähnlichkeitsfaktoren zwischen Benutzern beziehen sich auf eine beliebige Größe, die für eine bestimmte Menge von Artikeln den Grad an Übereinstimmung zwischen zwei den Profilen zweier Benutzer ausdrückt. Die folgenden Verfahren zum Berechnen des Ähnlichkeitsfaktors sind im Sinne von Beispielen und in keiner Weise umfassend gedacht. In Abhängigkeit vom Artikelbereich werden unterschiedliche Verfahren zu optimalen Ergebnissen führen, da Benutzer in unterschiedlichen Bereichen unterschiedliche Erwartungen für Genauigkeit der Bewertung oder Geschwindigkeit der Empfehlungen haben können. Unterschiedliche Verfahren können in einem einzigen Bereich verwendet werden, und in einigen Ausführungsformen gestattet es das System Benutzern, das Verfahren auszuwählen, mit dem sie ihre Ähnlichkeitsfaktoren erzeugt haben möchten.
In der folgenden Beschreibung von Verfahren stellt Dxy den zwischen zwei Benutzern x und y berechneten Ähnlichkeitsfaktor dar. Hix stellt die einem Artikel i durch Benutzer x erteilte Bewertung dar, I stellt alle Artikel in der Datenbank dar, und Cix ist eine Boolesche Größe, die 1 beträgt, wenn Benutzer x Artikel i bewertet hat, und 0 beträgt, wenn Benutzer x diesen Artikel nicht bewertet hat.
Ein Verfahren zum Berechnen der Ähnlichkeit zwischen einem Benutzerpaar besteht darin, die durchschnittliche quadratische Differenz zwischen ihren Bewertungen für beiderseitig bewertete Artikel zu berechnen. Damit wird der Ähnlichkeitsfaktor zwischen Benutzer x und Benutzer y für jeden Artikel, der durch beide Benutzer bewertet worden ist, durch Subtrahieren der für einen Artikel durch Benutzer y erteilten Bewertung von der Bewertung, die dem gleichen Artikel durch Benutzer x erteilt worden ist, und durch Quadrieren der Differenz berechnet. Die quadrierten Differenzen werden summiert und durch die Gesamtzahl der bewerteten Artikel geteilt. Dieses Verfahren wird mathematisch durch den folgenden Ausdruck dargestellt:
Ein ähnliches Verfahren des Berechnens von Ähnlichkeitsfaktoren zwischen einem Benutzerpaar besteht darin, die Summe ihrer quadrierten Bewertungsdifferenzen durch die potenzierte Anzahl der von beiden Benutzern bewerteten Artikel zu teilen. Dieses Verfahren wird durch den folgenden mathematischen Ausdruck dargestellt:
wobei |Cxy| die Anzahl der Artikel darstellt, die von beiden Benutzern bewertet worden sind.
Ein drittes Verfahren zum Berechnen des Ähnlichkeitsfaktors zwischen Benutzern versucht, den Faktor in die Berechnung des Grades von Profilüberlappung zu kleiden, d. h. die Anzahl von Artikeln, die von beiden Benutzern bewertet worden sind, wird mit der Gesamtanzahl von Artikeln verglichen, die entweder von dem einem oder dem anderen Benutzer bewertet worden sind. Damit wird für jeden Artikel, der von beiden Benutzern bewertet worden ist, die durch einen Benutzer y einem Artikel erteilte Bewertung von der Bewertung subtrahiert, die diesem gleichen Artikel vom Benutzer x gegeben worden ist. Diese Differenzen werden quadriert und dann summiert. Der Betrag an Profilüberlappung wird dadurch in Betracht gezogen, dass die Summe der quadrierten Bewertungsdifferenzen durch eine Größe geteilt wird, die gleich der Anzahl von Artikeln ist, die durch die Benutzer beidseitig bewertet worden sind, subtrahiert von der Summe der Anzahl von Artikeln, die durch Benutzer x bewertet worden sind, und der Anzahl von Artikeln, die durch Benutzer y bewertet worden sind. Dieses Verfahren wird mathematische mit Folgendem ausgedrückt:
wobei |Cxy| der Anzahl von Artikel darstellt, die von Benutzern x und y beidseitig bewertet worden sind.
In einer weiteren Ausführungsform ist der Ähnlichkeitsfaktor zwischen zwei Benutzern ein Pearsonscher Korrelationskoeffizient r. Andernfalls kann der Ähnlichkeitsfaktor durch Eingrenzen des Korrelationskoeffizienten mit einer vorgegebenen durchschnittlichen Bewertungsgröße A berechnet werden. Wenn man das Eingrenzungsverfahren benutzt, kommt man auf die folgende Weise zu dem Korrelationskoeffizienten, der Dxy darstellt. Für jeden von beiden Benutzern bewerteten Artikel wird A von der Bewertung, die dem Artikel von Benutzer x erteilt worden ist, und der Bewertung subtrahiert, die dem gleichen Artikel von Benutzer y erteilt worden ist. Diese Differenzen werden dann multipliziert. Das summierte Produkt der Bewertungsdifferenzen wird dann durch das Produkt der beiden Summen geteilt. Die erste Summe ist die Summe der quadrierten Differenzen der vorgegebenen durchschnittlichen Bewertungsgröße A und der Bewertung, die jedem Artikel von Benutzer x erteilt worden ist. Die zweite Summe ist die Summe der quadrierten Differenzen der vorgegebenen durchschnittlichen Bewertungsgröße A und der Bewertung, die jedem Artikel durch Benutzer B erteilt worden ist. Dieses Verfahren wird mathematisch wie folgt ausgedrückt:
wobei Ux alle Artikel darstellt, die von x bewertet worden sind, Uy alle Artikel darstellt, die von y bewertet worden sind, und Cxy alle Artikel darstellt, die sowohl von x als auch von y bewertet worden sind.
Die zusätzlichen Informationen, die in einem n-Tupel enthalten sind, können auch benutzt werden, wenn der Ähnlichkeitsfaktor zwischen zwei Benutzern berechnet wird. Beispielsweise können die Informationen getrennt betrachtet werden, um zwischen Benutzern zu unterscheiden; z. B. können, wenn ein Benutzer dazu neigt, Artikel nur abends zu bewerten und ein anderer Benutzer dazu neigt, Artikel nur während des Tages zu bewerten, die Benutzer ungeachtet der Tatsache, dass sie eine identische Menge von Artikeln identisch bewertet haben, als in einem gewissen Grade unähnlich betrachtet werden.
Die Ähnlichkeitsfaktoren werden ungeachtet des Verfahrens, das zu ihrer Erzeugung benutzt worden ist, und ungeachtet dessen, ob die in den Profilen enthaltenen zusätzlichen Informationen benutzt werden, dafür benutzt, eine Vielzahl von Benutzern auszuwählen, die einen hohen Grad von Übereinstimmung mit einem Benutzer haben (Schritt 106). Diese Benutzer werden als die "benachbarten Benutzer" des Benutzers bezeichnet. Ein Benutzer kann als benachbarter Benutzer ausgewählt werden, wenn der Ähnlichkeitsfaktor dieses Benutzers im Hinblick auf den anfordernden Benutzer besser als ein vorgegebener Schwellenwert L ist. Der Schwellenwert L kann auf einen beliebigen Wert eingestellt werden, der die Vorhersagefähigkeit des Verfahrens verbessert. Im Allgemeinen wird sich der Wert L in Abhängigkeit von dem Verfahren, das für das Berechnen der Ähnlichkeitsfaktoren verwendet worden ist, dem Artikelbereich und der Größenordnung der Anzahl von Bewertungen ändern, die eingegeben worden sind. In einer weiteren Ausführungsform wird aus den Benutzern, die einen Ähnlichkeitsfaktor haben, der besser als L ist, eine vorgegebene Anzahl von Benutzern ausgewählt, z. B. die besten fünfundzwanzig Benutzer. Für Ausführungsformen, bei denen für jeden Ähnlichkeitsfaktor von Benutzer zu Benutzer Vertrauensfaktoren berechnet werden, können die benachbarten Benutzer auf der Grundlage ausgewählt werden, dass sowohl ein Schwellenwert unterhalb von L und ein Vertrauensfaktor vorhanden sind, der höher als eine zweite vorgegebene Schwelle ist.
Die benachbarte Benutzermenge eines Benutzers sollte jedes Mal dann aktualisiert werden, wenn von diesem Benutzer eine neue Bewertung eingegeben oder für ihn abgeleitet wird. Dies erfordert es, die Identität der benachbarten Benutzer sowie die Ähnlichkeitsfaktoren zwischen diesem bestimmten Benutzer und seinen benachbarten Benutzern zu ermitteln. Darüber hinaus wird aufgrund der Aktualisierung einer bestimmten Bewertung eines ersten Benutzers die Menge der benachbarten Benutzer einer Vielzahl von anderen Benutzern geändert werden müssen. Dieser erste Benutzer könnte beispielsweise als Mitglied einer Menge von benachbarten Benutzern anderer Benutzer eingeführt oder daraus entfernt werden müssen; es ist unnötig zu erwähnen, dass die betroffenen Ähnlichkeitsfaktoren neu berechnet werden müssen. Mit steigender Anzahl von Benutzern und wachsenden Ausnutzungen von Empfehlungssystemen wird diese Anforderung nach dauernder Neuberechnung von vorausberechneten benachbarten Benutzern und ihrer Ähnlichkeitsfaktoren für derartige Systeme eine wirkliche Verarbeitungsbelastung. Daher ist es in vielen Anwendungen wünschenswert, die Menge an Rechenvorgängen zu vermindern, die erforderlich ist, um die geeignete Gruppe von benachbarten Benutzern zu verwalten, indem die Anzahl von Benutzerprofilen eingeschränkt wird, die befragt werden, um die Gruppe von benachbarten Benutzern zu bilden. In einer Ausführungsform werden anstelle des Aktualisierens der Ähnlichkeitsfaktoren zwischen einem bewertenden Benutzer und jedem anderen Benutzer des Systems (das eine rechentechnische Größenordnung von n2 hat) nur die Ähnlichkeitsfaktoren zwischen dem bewertenden Benutzer und den Nachbarn des bewertenden Benutzers ebenso wie die Ähnlichkeitsfaktoren zwischen dem bewertenden Benutzer und den Nachbarn der Nachbarn des bewertenden Benutzers aktualisiert. Dies begrenzt die Anzahl der Benutzerprofile, die mit einem Grad von m2 minus einer beliebigen Zahl von Benutzerüberlappung zwischen den Nachbargruppen verglichen werden müssen, wobei m eine Zahl ist, die kleiner als n ist.
Sobald eine Gruppe von benachbarten Benutzern ausgewählt worden ist, wird jedem der benachbarten Benutzer eine Gewichtung (Schritt 108) zugeteilt. In einer Ausführungsform werden die Gewichtungen dadurch zugeteilt, dass der für jeden benachbarten Benutzer berechnete Ähnlichkeitsfaktor von dem Schwellenwert subtrahiert und durch den Schwellenwert geteilt wird. Dies stellt eine Benutzergewichtung bereit, die höher, d. h. näher an 1 liegt, wenn der Ähnlichkeitsfaktor zwischen zwei Benutzern kleiner ist. Damit werden ähnliche Benutzer mehr als andere, weniger ähnliche gewichtet. In anderen Ausführungsformen kann der Vertrauensfaktor als Gewichtung für die benachbarten Benutzer verwendet werden. Natürlich können viele andere Verfahrensweisen gewählt werden, um benachbarten Benutzern auf der Grundlage von berechneten Ähnlichkeitsfaktoren Gewichtungen zuzuteilen.
Sobald den benachbarten Benutzern Gewichtungen zugeteilt worden sind, wird einem Benutzer ein Artikel empfohlen (Schritt 110). Bei Anwendungen, in denen positive Artikelempfehlungen gewünscht werden, werden Artikel empfohlen, wenn die benachbarten Benutzer des Benutzers den Artikel ebenfalls hoch bewertet haben. Bei einer Anwendung, die Benutzer vor Artikeln warnen möchte, werden Artikel als nicht empfehlenswert angezeigt, wenn die benachbarten Benutzer des Benutzers dem Artikel ebenfalls schlechte Bewertungen erteilt haben.
Wie schon vorstehend angezeigt, erzeugen Empfehlungssysteme, die eine große Zahl von Benutzern mit einer hohen Häufigkeit für das Aktualisieren ihrer Bewertungsgrößen bedienen, für die Zuordnung der vorausberechneten Ähnlichkeitsfaktoren und benachbarter Benutzer eine beträchtliche Rechenlast. Innerhalb des Standes der Technik wird daher vorgeschlagen, dass die Ähnlichkeitsfaktoren nur periodisch neu berechnet werden oder nur als Reaktion auf irgendeinen anderen Auslöser erneut berechnet werden. Diese Verfahrensweise wird innerhalb von Fig. 1 widergespiegelt, in der gezeigt wird, dass die Schritte 102 bis 110 zum Berechnen der vorausberechneten benachbarten Benutzer (die Ähnlichkeitsfaktoren, Gewichtungen und die benachbarten Benutzer selbst umfassen) nur einmal ausgeführt werden (oder mindestens nur mit einer geringen Häufigkeit) und eine statische Grundlage zum Verarbeiten einer riesigen Vielzahl von einzelnen Empfehlungsanforderungen innerhalb von Schritt 111 bereitstellen.
4.2 Grundlegende Beobachtungen
Im Hinblick auf den Stand der Technik ist einer der am meisten kritischen Punkte beim Erzeugen von Übereinstimmungen und/oder Empfehlungen die Effizienz oder, mit anderen Worten, das Leistungsvermögen eines derartigen Systems. Diesen Aspekt der Effizienz erfährt der Benutzer in Form der Latenz des Systems, d. h. der erforderlichen Bearbeitungszeit einer Empfehlungsanforderung eines Benutzers. Aus der Sicht der Empfehlungssysteme selbst bezieht sich der Gesichtspunkt der Effizienz auf die Häufigkeit, mit der Empfehlungsanforderungen zur Verarbeitung in Empfehlungssystemen eingegeben werden. Beim Online-Geschäft ist die Latenz im Bereich unterhalb der zweiten Ebene ein Muss. Die meisten vorhandenen Techniken zum Erzeugen von Empfehlungen beruhten auf kollaborativem Filtern und benutzen daher Techniken, wie etwa langsame Durchschreibe-Caches zu Datenbanken und Zwischenspeichern im Speicher, um die Latenz zu verbessern.
Die folgenden Beobachtungen bieten eine tiefere Einsicht in die Probleme mit dem Stand der Technik, diese Beobachtungen werden weiterhin die reale Ursache für diese Probleme aufdecken, und in einem schrittweisen Vorgehen werden sie dabei helfen, die von der vorliegenden Erfindung vorgeschlagene Lösung zu erarbeiten.
Ein ernsthafter Nachteil des Standes der Technik bezieht sich auf die Qualität derjenigen erzeugten Empfehlungen, die sich tatsächlich nur unterhalb des Optimums befinden. Wie durch eine Analyse festgestellt, die der vorliegenden Erfindung vorausgegangen ist, kann die Ursache für dieses Problem bis zur Verfahrensweise nach Stand der Technik rückverfolgt werden, aus Wirtschaftlichkeitsgründen die Ähnlichkeit zwischen jedem Benutzerpaar hinsichtlich ihrer Bewertung von Artikeln vorauszuberechnen und diese vorausberechneten Ähnlichkeitsfaktoren und die sich ergebenden benachbarten Benutzer dauerhaft zu speichern. Wenn ein bestimmter Benutzer eine Empfehlungsanforderung auslöst, werden diese vorausberechneten Ähnlichkeiten und die dementsprechend vorausberechneten benachbarten Benutzer des bestimmten Benutzers dafür ausgenutzt, die Grundlage für die Empfehlung zu bilden. Da es rechenintensiv ist, jedes Benutzerpaar zu vergleichen, um ihre Ähnlichkeit zu ermitteln, schlägt der Stand der Technik vor, diese Ähnlichkeitsfaktoren periodisch oder als Reaktion auf irgendeinen Auslöser vorauszuberechnen, wobei die Anforderungen nach erneuter Berechnung nur aufgrund einer Menge von neuen Bewertungen seit der letzten Wiederberechnung kombiniert werden. Bei wachsender Häufigkeit des Gebrauch derartiger Empfehlungssysteme (auf die üblicherweise über das Internet zugegriffen wird, das immer mehr Zuspruch gewinnt) und der steigenden Anzahl von Benutzern ist eine wachsende Wahrscheinlichkeit vorhanden, dass die derzeit verfügbaren Ähnlichkeitsfaktoren (und damit die sich ergebenden vorausberechneten benachbarten Benutzer) schon veraltet sind. Als Ergebnis würden Empfehlungen, die auf diesen veralteten Ähnlichkeitsfaktoren beruhen, nur Empfehlungen darstellen, die unterhalb des Optimums liegen.
Darüber hinaus hat die der vorliegenden Erfindung vorausgehende Untersuchung einen weiteren Nachteil des Standes der Technik im Hinblick auf die Qualität der erzeugten Empfehlungen offengelegt, der sich auf die konkrete Verfahrensweise bezieht, wie die Ähnlichkeitsfaktoren zwischen Benutzern ermittelt werden. Nach dem Stand der Technik wird auf der Grundlage aller Bewertungsgrößen im Hinblick auf alle Artikel zwischen jedem Benutzerpaar nur ein einziger Ähnlichkeitswert berechnet. Mit anderen Worten, die Ähnlichkeit zwischen Benutzern nach Stand der Technik misst eine "globale" Eigenschaft. Natürlich ist diese Verfahrensweise sehr gefühlsmäßig, da sie es zulässt, den Aufwand zur Vorausberechnung der Ähnlichkeitsfaktoren zu begrenzen. Andererseits führt der Stand der Technik, wenn ein bestimmter Benutzer nur Empfehlungen für eine begrenzte Untermenge von Artikeln anfordert (dies ist nach Beachtung der derzeitigen Darlegung üblicherweise der Fall) eine zweistufige Verfahrensweise durch:
  • 1. Auf der Grundlage der vorausberechneten Ähnlichkeiten werden die benachbarten Benutzer eines bestimmten Benutzers in einer Reihenfolge nach deren "globaler" Ähnlichkeit bereitgestellt.
  • 2. In einem Nachverarbeitungsschritt werden nur diejenigen benachbarten Benutzer herausgefiltert, die im Hinblick auf die begrenzte Untermenge von Artikeln eine Bewertung bereitgestellt haben.
In diesen Situationen sind die vorausberechneten Ähnlichkeitswerte kein angemessenes Mittel mehr, um die benachbarten Benutzer der Reihe nach zu ordnen bzw. zu gewichten. Benachbarte Benutzer, die nach der "globalen" Ähnlichkeit am höchsten bewertet werden, könnten im Hinblick auf ihre Ähnlichkeit angesichts der begrenzten Untermenge von Artikeln niedrig bewertet werden und umgekehrt. Oder mit anderen Worten: beim Bereitstellen von Effizienz von Empfehlungssystemen wird oftmals die Genauigkeit vermindert, oder nur eine beliebige global optimale Menge von benachbarten Benutzern wird für jeden Benutzer/Artikel verwaltet. Dies macht das Erzeugen von Empfehlungen für unterschiedliche Teile der Menge von verfügbaren Artikeln zu einem Vorgang des Ausfilterns aus einer sehr großen Menge von "global" ähnlichen Benutzern (mit allen zugehörigen Problemen, z. B. dass globale Ähnlichkeit für viele unterschiedliche Untermengen von Artikeln nicht optimal sein kann, für die Empfehlungen angefordert werden).
Dieses Problem der "Genauigkeit" gegenüber der "Globalität", das in allen Empfehlungssystemen nach dem Stand der Technik vorhanden ist, wird durch das folgende Beispiel weiter ausgeführt, das sich auf das Produkt Likeminds von Macromedia bezieht, das im Hinblick auf Filme Empfehlungen bereitstellt. Nach dem Bewerten einiger Filme ist es möglich, Empfehlungen für andere zu erhalten, die noch nicht bewertet worden sind. Es ist möglich, Genres wie Krimis, Actionfilme, . . . einzuschließen/­ auszuschließen. Aber es gibt nur eine einzige "global" optimale Liste von ähnlichen Nachbarn, und die Empfehlung für z. B. nur die Genres "Action" und "Horror" erfolgt durch Filtern. Der Hauptpunkt ist hier, dass die in einer bestimmten Ähnlichkeitsliste, die nur auf diesen beiden Genres allein beruht, am besten bewertete Filme in der globalen Liste beliebig niedrig angeordnet sein können. Da aus Gründen der Leistungsfähigkeit in den meisten vorhandenen Systemen die Größe globaler Listen beschränkt ist, können sogar die besten Empfehlungen gar nicht erscheinen, oder das Filtern kann zu einer leeren Empfehlungsliste führen, obwohl gute Empfehlungen verfügbar sein könnten.
Eine weitere Beobachtung der vorliegenden Erfindung besteht darin, dass bei einer steigenden Anzahl von Benutzern und einer wachsenden Zahl von Aktualisierungen an den Bewertungsgrößen die erneute Berechnung der vorausberechneten Ähnlichkeitsfaktoren und der vorausberechneten benachbarten Benutzer überproportional zur Verarbeitungsbelastung der Übereinstimmungs- /Empfehlungssysteme beiträgt.
Als Lösung für alle vorstehend erwähnten Probleme, die sich auf die Qualität und die Effizienz von Empfehlungssystemen beziehen, schlägt die vorliegende Erfindung vor, das Dogma des Erzeugens und Verwaltens von dauerhaft gespeicherten statischen, vorausberechneten Ähnlichkeitsfaktoren und benachbarten Benutzern zu verlassen. Obwohl der Stand der Technik vorschlägt, dass jede Aktualisierung einer Bewertungsgröße (oder eine Vielzahl derartiger Aktualisierungen) eine Vorausberechnung der Ähnlichkeitsfaktoren und benachbarten Benutzer auslösen wird, schlägt die vorliegende Erfindung vor, diese Vorgänge zu trennen. Natürlich werden die Benutzer/Artikel-Profile dafür benutzt, jegliche aktualisierte Bewertungsgröße zu speichern. Aber zum Erzeugen einer Empfehlung werden keine vorausberechneten Ähnlichkeitsfaktoren ausgenutzt, welche die Ähnlichkeit zwischen Benutzern messen. Stattdessen wird vorgeschlagen, auf einer zeitweiligen Grundlage nur für jede einzelne Empfehlungsanforderung eines bestimmten Benutzers die Ähnlichkeitsfaktoren zu berechnen, welche die Ähnlichkeit zwischen dem bestimmten Benutzer und der Vielzahl von Benutzern messen. Diese Ähnlichkeitsfaktoren, die pro Empfehlungsanforderung berechnet worden sind, werden dann mit den entsprechenden Benutzern verbunden, die dann dafür ausgenutzt werden, um (pro Empfehlungsanforderung!) die benachbarten Benutzer des bestimmten Benutzers zu ermitteln. Schließlich stellen diese benachbarten Benutzer (ermittelt pro Empfehlungsanforderung) die Grundlage für das Berechnen einer Empfehlung bereit.
Es muss herausgestellt werden, dass die vorgeschlagene Lösung nicht notwendigerweise bedeutet, dass die Ähnlichkeitsfaktoren eines bestimmten Benutzers im Hinblick auf alle anderen Benutzer für jede einzelne Empfehlungsanforderung berechnet werden müssen. Natürlich können die derzeitigen Darlegungen mit einer Verfahrensweise zum Zwischenspeichern kombiniert werden, bei der Ähnlichkeitsfaktoren und benachbarte Benutzer innerhalb eines Cachespeichers zeitweilig gespeichert werden können. Wenn eine nächste Empfehlungsanforderung Bedarf nach beliebigen Daten hat, die innerhalb des Cachespeichers verfügbar sind, könnte sie von diesen Informationen Gebrauch machen (falls sie noch aktuell sind), ohne dass sie noch einmal berechnet werden. Diese Ausführungsform der vorliegenden Erfindung, verbessert durch den Cachespeicher, unterscheidet sich grundlegend vom Stand der Technik, da sie sich vom Entwurf her nicht auf dauerhaft vorausberechnete Ähnlichkeitsfaktoren zwischen jedem Benutzerpaar verlässt.
Die grundlegende Entscheidung, die Ähnlichkeitsfaktoren dynamisch bei jeder einzelnen Empfehlungsanforderung zu berechnen, öffnet die Tür für eine weitere Ausführungsform der vorliegenden Erfindung, die im Hinblick auf die Qualität der Empfehlungen zusätzliche Verbesserungen bietet. Es wird vorgeschlagen, dass eine Empfehlungsanforderung eine sogenannte "Liste ausgewählter Artikel" umfasst. Aufgrund dieser neuen Verfahrensweise ist es jetzt möglich, die Ähnlichkeitsfaktoren zwischen jedem Benutzerpaar und den entsprechenden benachbarten Benutzern nur auf die Artikel beschränkt zu berechnen, die sich innerhalb der "Liste ausgewählter Artikel" befinden.
4.3 Einzelheiten des Übereinstimmungs-/Empfehlungsalgorithmus
Wie schon vorstehend angezeigt, besteht die grundlegende Idee der vorliegenden Darlegung darin, den Vorgang nach dem Stand der Technik von kombiniertem a) Aktualisieren der Bewertungsgrößen und der zusätzlichen Informationen und b) der erneuten Berechnung der Ähnlichkeitsfaktoren, Gewichtungen und benachbarten Benutzer in zwei Phasen wie folgt aufzuteilen:
  • 1. einfach alle Bewertungs-/Kaufmuster in einer einzigen dünn besetzten Matrix im Hauptspeicher eines Rechners zu speichern/aktualisieren;
  • 2. alle Berechnungen von Ähnlichkeitsfaktoren und benachbarten Benutzern zu verschieben, bis eine konkrete Empfehlungsanforderung für einen speziellen/bestimmten Benutzer verarbeitet werden soll.
Auf der Grundlage dieser Darlegung ist es möglich, das Dogma des Erzeugens und Verwaltens von dauerhaft gespeicherten statischen, vorausberechneten Ähnlichkeitsfaktoren und benachbarten Benutzern zu verlassen. Um die Berechnung der Ähnlichkeitsfaktoren und benachbarter Benutzer für jede einzelne Empfehlungsanforderung weiter zu beschleunigen, ist es vorteilhaft, dass die Benutzerprofile und Artikelprofile derart definiert sind, dass diese Datenstrukturen aller Benutzer und aller Artikel gleichzeitig in den Hauptspeicher des Rechners passen und dass diese Datenstrukturen durch das Rechnersystem einfach durchsucht werden können. Zu diesem Zwecke wird daher vorgeschlagen, dass die Kombination von Benutzerprofilen und Artikelprofilen aus einer Vielzahl von identischen Datenstrukturen besteht, von denen jede mindestens ein Benutzerkennzeichen und ein Artikelkennzeichen und eine entsprechende Bewertungsgröße umfasst. Zur ausreichenden Nutzung des Rechnerspeichers sollte diese gemeinsame Datenstruktur in ihrer Größe begrenzt werden. Der bevorzugte Entwurf der den Benutzerprofilen und Artikelprofilen gemeinsamen Datenstruktur nach der vorliegenden Erfindung wird in Fig. 2 dargestellt. Jede Bewertung oder jeder von null verschiedene Matrixeintrag wird durch ein Tupel dargestellt, das mindestens die folgenden Datenelemente umfasst:
Benutzer-id: als Kennzeichen eines bestimmten Benutzers
Artikel-id: als Kennzeichen eines bestimmten Artikels
nächster-Benutzer: als Verknüpfung zu einer identischen Datenstruktur, die den nächsten Benutzer in einer Folge kennzeichnet, die nach Benutzer-ids aufgebaut ist
nächster-Artikel: als Verknüpfung zu einer identischen Datenstruktur, die den nächsten Artikel in einer Folge kennzeichnet, die nach Artikel-ids aufgebaut ist
Bewertungsgröße: die Bewertungsgröße des Artikels, gekennzeichnet durch eine Artikel-id, die von einem Benutzer bereitgestellt wird, der durch eine Benutzer-id gekennzeichnet ist.
Damit diese Datenstrukturen durch das Rechnersystem leicht durchsucht werden können, werden sie in zwei Dimensionen verknüpft, was eine matrizenähnliche Struktur zum Ergebnis hat.
Fig. 3 zeigt ein Beispiel der Kombination von Benutzerprofilen und Artikelprofilen, das die zweidimensionale Verknüpfung widerspiegelt. Die erste Dimension verknüpft alle Datenstrukturen mit einem gleichen Benutzerkennzeichen in einer Reihenfolge, die nach den Artikelkennzeichen aufgebaut ist. Die zweite Dimension verknüpft alle Datenstrukturen mit einem gleichen Artikelkennzeichen in einer Reihenfolge, die nach den Benutzerkennzeichen aufgebaut ist. Unter Bezugnahme auf Fig. 3 sind durch 301, 302, 310, 311 Beispiele der grundlegenden Datenstruktur dargestellt. In der waagerechten Dimension sind diese elementaren Datenstrukturen so verknüpft, dass jede Zeile das Benutzerprofil darstellt. In der senkrechten Dimension sind diese elementaren Datenstrukturen so verknüpft, dass jede Spalte ein Artikelprofil darstellt.
Auf der Grundlage dieser Kombination von Benutzerprofilen und Artikelprofilen kann eine grobe Schätzung im Hinblick auf Speicheranforderungen und Latenzzeiten bei derzeitigen Rechnersystemen abgegeben werden. Eine Anwendung bei einem 32-Bit-Aufbau mit mehr als 216 = 65 536 Benutzern, weniger als 216 Artikeln und einer Bewertungsgröße zu 16 Bit erfordert daher für ein einzelnes Tupel nur 16 Byte Speicher. Das reicht in einem Rechner mit 2 GB für mehr als 100 000 000 Bewertungen aus, die von null verschieden sind. Modernste UNIX-Rechner (beispielsweise aus dem System RISC S80 von IBM) lassen heutzutage 64 GB Hauptspeicher zu. Wenn man für jeden der fünf Einträge in das Tupel 64 Bit annimmt, führt dies zu einer Speicherbelegung von 40 Byte. Diese Festlegung lässt innerhalb des Hauptspeichers mehr als 1 700 000 000 Bewertungsgrößen zu, die von null verschieden sind.
Eine einfache Realisierung eines Musters mit 250 000 Benutzern und 40 beliebigen von null verschiedenen Artikelbewertungen von 30 000 Artikeln auf einer einzigen Pentium-II-CPU mit 300 MHz und 256-MB-Speicher zeigt eine Empfehlungszeit (mit Pierce- Koeffizienten) von 0,21 s, wobei etwa 160 MB Hauptspeicher belegt worden sind.
Als bedeutsamer Vorzug der vorliegenden Erfindung muss herausgestellt werden, dass durch das Verschwinden der Notwendigkeit für das erneute Berechnen einer riesigen Anzahl von vorausberechneten Ähnlichkeitsfaktoren für den Fall, dass eine bestimmte Bewertungsgröße aktualisiert worden ist, Massen von Verarbeitungsleistung freigeworden und für das Verarbeiten von einzelnen Empfehlungsanforderungen verfügbar geworden sind; oder, mit anderen Worten, die vorliegende Erfindung gestattet es, die Verarbeitungsleistung viel mehr auf die einzelnen Empfehlungsanforderungen zu konzentrieren.
Ehe der Empfehlungsalgorithmus ausführlicher erläutert wird, werden die folgenden Datenstrukturen umrissen, die durch den vorgeschlagenen Algorithmus innerhalb einer bevorzugten Ausführungsform nutzbringend verwendet werden können:
a. die Datenstruktur "BENUTZER"
Die Datenstruktur BENUTZER stellt ein Abbild für die einzelnen Benutzer-ids auf ihren ersten Eintrag in die verknüpfte Liste der von null verschiedenen Bewertungen für die einzelnen Benutzer, d. h. in die Nutzerprofile, bereit. Diese Listen sind nach Artikel-id geordnet (dies ist vorteilhaft, um Pierce- Berechnungen effektiv durchzuführen). Die Datenstruktur BENUTZER wird innerhalb von Fig. 3 unter der Bezugsnummer 320 widergespiegelt.
b. die Datenstruktur "ARTIKEL"
Die Datenstruktur ARTIKEL stellt ein Abbild für Artikel-ids in den ersten Eintrag der verknüpften Liste mit von null verschiedenen Bewertungen für einen bestimmten Artikel, d. h. in Artikelprofile, bereit. Diese Liste braucht nicht sortiert zu werden, da sie nur die artikelspezifische "Nachbarschaft" festhält. Die Datenstruktur ARTIKEL wird innerhalb von Fig. 3 unter der Bezugsnummer 330 widergespiegelt.
c. die Datenstruktur "benutzt"
Diese Datenstruktur "benutzt" stellt ein zeitweiliges Abbild bereit, um zurückzuverfolgen, welche Datenelemente schon besucht und ausgenutzt worden sind.
d. die Datenstruktur "ausgewählt"
Diese Datenstruktur "ausgewählt" ist das Mittel, um dem Übereinstimmungs- und Empfehlungsalgorithmus (nachstehend als "Calc-Routine" bezeichnet) die so genannte "Liste ausgewählter Artikel" zu übertragen, das heißt, die Menge derjenigen Artikel, die innerhalb der Empfehlungsanforderung vorgegeben worden ist, auf der eine Ähnlichkeitsberechnung durchgeführt werden muss. Daher unterstützt die Datenstruktur "ausgewählt" das neue Merkmal, dynamisch die Ähnlichkeit zwischen jedem Benutzerpaar nur im Hinblick auf eine begrenzte Menge von Artikel zu ermitteln. Für jede Artikel-id, die durch einen Benutzer für Ähnlichkeitsberechnungen ausgewählt worden ist, wird in den Algorithmus eine Zuordnung von ausgewählt[Artikel-id] = richtig eingegeben; für den Fall, das eine Artikel-id für die Ähnlichkeitsberechnung abgewählt ist, wird eine ausgewählt[Artikel-id] = falsch eingegeben.
Fig. 4 veranschaulicht eine Pseudo-Programm-Darstellung des Übereinstimmungsalgorithmus nach der vorliegenden Erfindung, mit dem eine der Reihe nach geordnete Übereinstimmungsliste ermittelt wird, das heißt, die gewichteten benachbarten Benutzer eines bestimmten Benutzers, ohne dass vorausberechnete Ähnlichkeitsfaktoren erforderlich waren, welche die Ähnlichkeit zwischen Benutzerpaaren messen. Darüber hinaus unterstützt der vorgeschlagene Algorithmus das Ermitteln der Ähnlichkeit von Benutzern im Hinblick auf eine beliebige Untermenge von Artikeln, die von einem bestimmten Benutzer bei einer Empfehlungsanforderung bereitgestellt wird.
Unter Bezugnahme auf Fig. 4 zeigt Zeile 401 an, dass von dem Übereinstimmungsalgorithmus erwartet wird, dass bei Eingabe des bestimmten Benutzers "u" die gewichteten benachbarten Benutzer "N" ermittelt werden sollen. Darüber hinaus wird von der Liste der ausgewählten Artikel bei "ausgewählt" erwartet, dass vorgegeben wird, auf der Grundlage welcher Artikel die Ähnlichkeit zwischen Benutzerpaaren berechnet wird.
Zeilen 402, 403, 404 initialisieren die Datenstruktur "benutzt" und die Liste der benachbarten Benutzer "N".
Wenn Zeilen 406 bis 412 sich auf eine "Bewertung" ru oder ri beziehen, ist dies als Verweis auf eine der grundlegenden Datenstrukturen zu verstehen, wie etwa beispielsweise 301, 302, 310 oder 311. Zeilen 406 bis 412 werden für jede beliebige grundlegende Datenstruktur ru des bestimmten Benutzers wiederholt; dies bildet eine Wiederholschleife (innerhalb von Fig. 3 entlang der horizontalen Dimension), indem alle Artikel untersucht werden, für die der bestimmte Benutzer eine Bewertungsgröße bereitgestellt hat. Wie durch Zeile 407 angezeigt, ist eine weitere Verarbeitung nur erforderlich, wenn ein Artikel gefunden worden ist, der Mitglied der "Liste ausgewählter Artikel" ist. Sobald für den bestimmten Benutzer ein derartiger Artikel gefunden worden ist, bilden Zeilen 408 bis 412 eine Wiederholschleife (innerhalb von Fig. 3 entlang der vertikalen Dimension), die jeden Benutzer u' auswählt, der für diesen speziellen Artikel ebenfalls eine Bewertungsgröße bereitgestellt hat. Für jeden derartigen Benutzer u' und den bestimmten Benutzer u werden durch Aufrufen der Funktion "Ähnlichkeit ()" in Zeile 412 die entsprechenden Ähnlichkeitsfaktoren berechnet. Der Pseudocode für diese Funktion wird in Zeilen 420 bis 422 widergespiegelt. Wenn die Liste ausgewählter Artikel "ausgewählt" an diese Funktion geschickt worden ist, wird die Ähnlichkeit nur im Hinblick auf Artikel berechnet, die Mitglied der Liste ausgewählter Artikel sind (beispielsweise Bezugnahme auf Zeile 422). Innerhalb von Zeile 412 wird für jeden derartigen Benutzer u' ein Tupel t = (t.u, t.s) berechnet, das die Benutzer-id des Benutzers u' (t.u) und die ermittelten Ähnlichkeitsfaktoren umfasst, welche die Ähnlichkeit (t.s) zwischen Benutzer u' und dem bestimmten Benutzer u messen. Ebenfalls innerhalb von Zeile 412 wird dieses Tupel t = (t.u, t.s) in eine Liste N von benachbarten Benutzern eingefügt.
Zeilen 410 und 411 stellen eine Technik bereit, mit der garantiert wird, das die Ähnlichkeitsfaktoren zwischen dem bestimmten Benutzer u und einem weiteren Benutzer u' nur einmal berechnet werden.
In Zeile 414 wird die Liste N von benachbarten Benutzern für den bestimmten Benutzer u durch einen beliebigen Sortieralgorithmus sortiert; das Ergebnis ist eine gewichtete und geordnete Liste von benachbarten Benutzern. Diese Liste wird in Zeile 416 schließlich an den Aufrufer zurückgeschickt.
Wie aus Zeile 421 zu erkennen ist, kann eine beliebige Ähnlichkeitsmaßzahl für das Ermitteln der Ähnlichkeitsfaktoren ausgenutzt werden. In der bevorzugten Ausführungsform der vorliegenden Erfindung wird der Pierce-Koeffizient berechnet.
Der innerhalb von Fig. 4 vorgeschlagene Algorithmus calc führt die Kernaufgabe eines Empfehlungssystems aus, nämlich die Berechnung der Übereinstimmungsliste, das heißt der gewichteten Liste von benachbarten Benutzern. Daher ist die vorliegende Darlegung völlig offen dafür, welche konkrete Verfahrensweise für Empfehlungen dafür benutzt wird, um die auf der gewichteten Liste von benachbarten Benutzern beruhenden Empfehlungen zu ermitteln. In einer Ausführungsform der vorliegenden Erfindung wird die Liste ausgewählter Artikel "ausgewählt" nicht nur dafür benutzt, die auf Bewertungsgrößen beruhenden Ähnlichkeitsberechnungen von Artikeln zu beschränken, die innerhalb dieser Liste enthalten sind; darüber hinaus wird das Empfehlungssystem nur Artikel aus dem Inhalt der Liste ausgewählter Artikel empfehlen.
In einer weiteren Ausführungsform der vorliegenden Erfindung kann die rechentechnische Effizienz des calc-Algorithmus verbessert werden, wenn ein zusätzlicher Schwellenwert "epsilon" in die Verarbeitung von Zeile 412 eingeführt wird. Wenn sich die berechnete Ähnlichkeit zwischen u und u' unterhalb dieses Schwellenwertes befindet, d. h. Ähnlichkeit (u, u') < epsilon, wird das Tupel (u', Ähnlichkeit (u, u') der Liste N der benachbarten Benutzer nicht angehängt. Mit dieser Technik werden die benachbarten Benutzer N dadurch ermittelt, dass diejenigen Benutzer u' ausgeschlossen werden, die einen Ähnlichkeitsfaktor haben, der eine Ähnlichkeit mit dem bestimmten Benutzer anzeigt, die unterhalb der definierten Schwelle epsilon liegt. Dies beschleunigt den übrig bleibenden Sortierschritt und führt zu der zweckdienlichen Übereinstimmungsliste auf der Grundlage des Wertes von epsilon.
In einer weiteren Ausführungsform der vorliegenden Erfindung kann die rechentechnische Effizienz des calc-Algorithmus weiterhin dadurch verbessert werden, dass die Liste der benachbarten Benutzer auf eine vorher definierte maximale Länge begrenzt wird. Das Tupel t = (t.u, t.s) in Zeile 412 wird der Liste der benachbarten Benutzer N nicht einfach angehängt, sondern wie bei einer Perlensortierung in absteigender Reihenfolge der Ähnlichkeit sortiert. Damit bleibt die Liste während des Erzeugens sortiert und kann am Ende abgeschnitten werden, um sicherzustellen, dass sie nicht größer wird als die gegebene maximale Größe (übliche Empfehlungssysteme fragen nach den ersten 100 Elementen, einige sogar nur nach den ersten 10); d. h., ein Benutzer mit der geringsten Ähnlichkeit wird aus der Nachbarschaftsliste ausgeschlossen, wenn andernfalls die Nachbarschaftsliste die maximale Länge überschreiten würde.
In einem Online-System ist üblicherweise nur ein kleiner Bruchteil aller Benutzer zur gleichen Zeit aktiv. Daher gestattet es in einer weiteren Ausführungsform der vorliegenden Erfindung das Verwalten einer Zeitmarkierung für das letzte Aktualisieren der Bewertungsgröße durch jeden Benutzer und das Verwalten der letzten Empfehlung für jeden Benutzer mit einer Zeitmarkierung (d. h. das Zwischenspeichern der Liste benachbarter Benutzer und ihrer zugehörigen Ähnlichkeitsfaktoren, die Teil dieser letzten Empfehlung waren), calc(u) gewaltig zu beschleunigen. Fig. 5 spiegelt einen verbesserten Übereinstimmungsalgorithmus calc mit einer Handhabung von Zeitmarkierungen und dem Zwischenspeichern von Listen benachbarter Benutzer wider.
Wenn für den bestimmten Benutzer u keine Liste von benachbarten Benutzern N berechnet und bis dahin gespeichert worden ist, schlägt Zeile 502 vor, den Standardalgorithmus auszuführen, wie er innerhalb von Fig. 4 vorgeschlagen worden ist. Wenn andererseits eine mit einer Zeitmarkierung verbundene Liste von benachbarten Benutzern N berechnet und zwischengespeichert worden ist, aber sich bei der Prüfung von Zeile 504 herausstellt, dass die Zeitmarkierung der letzten Aktualisierung an einer Bewertungsgröße des bestimmten Benutzers neuer ist als die Zeitmarkierung der zwischengespeicherten Liste von benachbarten Benutzern N, wird wieder der Standardalgorithmus ausgeführt. Nur für den Fall, dass die Prüfung von Zeile 504 ermittelt, dass eine mit einer Zeitmarkierung versehene Liste von benachbarten Benutzern N berechnet und zwischengespeichert worden ist und dass zusätzlich die Zeitmarkierung der letzten Aktualisierung an einer Bewertungsgröße durch den bestimmten Benutzer älter als die Zeitmarkierung der zwischengespeicherten Liste von benachbarten Benutzern N ist, gibt es eine Wahrscheinlichkeit, dass die zwischengespeicherte Liste von benachbarten Benutzern N teilweise ohne erneute Berechnung benutzt werden kann. Daher berechnen in diesem bestimmten Fall Zeilen 506 bis 508 die Ähnlichkeitsfaktoren nur für diejenige Untermenge von Benutzern u', die eine Bewertungsgröße nach der Zeitmarkierung der zwischengespeicherten Liste von benachbarten Benutzern N aktualisiert haben.

Claims (11)

1. Ein rechnergestütztes Verfahren zur Empfehlung eines Artikels für einen bestimmten Benutzer, wobei der Artikel durch den Benutzer noch nicht bewertet worden ist, wobei das Verfahren Folgendes umfasst:
ein Benutzerprofil für jeden aus der Vielzahl von Benutzern, wobei jedes der Benutzerprofile für jeden aus einer Vielzahl von Artikeln, die von den Benutzern bewertet worden sind, wenigstens eine Bewertungsgröße umfasst, und die Benutzerprofile ausdrücklich keinerlei vorausberechneten Ähnlichkeitsfaktor umfassen, mit dem die Ähnlichkeit zwischen Benutzern gemessen wird, und
das Verfahren für jede Empfehlungsanforderung des bestimmten Benutzers die folgenden Schritte ausführt:
  • A) nur zum Gebrauch innerhalb der Empfehlungsanforderung zeitweises Berechnen einer Vielzahl von Ähnlichkeitsfaktoren, welche die Ähnlichkeit zwischen dem bestimmten Benutzer und der Vielzahl von Benutzern in Form der Bewertungsgrößen misst, und diese Ähnlichkeitsfaktoren jeweils mit den Benutzern verbindet; und
  • B) Ermitteln einer Untermenge aus der Vielzahl von Benutzern als benachbarte Benutzer N des bestimmten Benutzers; und
  • C) Empfehlen mindestens eines aus der Vielzahl von Artikeln auf der Grundlage der Ähnlichkeitsfaktoren der benachbarten Benutzer N und auf der Grundlage der Bewertungsgrößen der Artikel der benachbarten Benutzer N.
2. Rechnergestütztes Verfahren zum Empfehlen nach Anspruch 1,
wobei die Empfehlungsanforderung eine ausgewählte Artikelliste umfasst, und
wobei Schritt (A) die Ähnlichkeitsfaktoren berechnet, welche die Ähnlichkeit nur im Hinblick auf die ausgewählten Artikel messen.
3. Rechnergestütztes Verfahren zum Empfehlen nach Anspruch 2, wobei Schritt (C) diesen mindestens einen aus der Vielzahl von Artikeln nur dann empfiehlt, wenn er Teil der ausgewählten Artikelliste ist.
4. Rechnergestütztes Verfahren zum Empfehlen nach Anspruch 2, wobei in Schritt (B) die benachbarten Benutzer N dadurch ermittelt werden, dass diejenigen Benutzer mit einem Ähnlichkeitsfaktor ausgeschlossen werden, der eine Ähnlichkeit mit dem bestimmten Benutzer anzeigt, die unterhalb einer definierten Schwelle liegt.
5. Rechnergestütztes Verfahren zum Empfehlen nach Anspruch 2,
wobei Schritt (A) und Schritt (B) parallel ausgeführt werden
indem die Ähnlichkeitsfaktoren nacheinander berechnet werden; und
indem die benachbarten Benutzer dadurch ermittelt werden, dass für jeden neu berechneten Ähnlichkeitsfaktor sein zugehöriger Benutzer in eine Nachbarschaftsliste in absteigenden Rangfolge der Ähnlichkeit eingefügt wird; und
dass die Nachbarschaftsliste durch den Ausschluss eines Benutzers mit der geringsten Ähnlichkeit auf eine vorgegebene maximale Länge begrenzt wird, falls andernfalls die Nachbarschaftsliste die maximale Länge überschreiten würde.
6. Rechnergestütztes Verfahren zum Empfehlen nach Anspruch 1, wobei das Verfahren weiterhin einen Schritt des
  • A) Zwischenspeicherns der Nachbarschaftsbenutzer N des bestimmten Benutzers mit ihren berechneten Ähnlichkeitsfaktoren umfasst, die mit einer Zeitmarkierung verbunden sind.
7. Rechnergestütztes Verfahren zum Empfehlen nach Anspruch 6, wobei Schritt (A) die Unterschritte
  • 1. des Überprüfens, ob benachbarte Benutzer N des bestimmten Benutzers und ihre berechneten Ähnlichkeitsfaktoren schon zwischengespeichert worden sind; und
  • 2. im Bestätigungsfall des Berechnens der Ähnlichkeitsfaktoren nach Schritt (A) nur für eine Untermenge der Benutzer umfasst, die nach der Zeitmarkierung der benachbarten Benutzer N eine Bewertungsgröße aktualisiert haben.
8. Rechnergestütztes Verfahren zum Empfehlen nach einem beliebigen der vorstehenden Ansprüche,
wobei jedes der Benutzerprofile eine Vielzahl von identischen Datenstrukturen umfasst, von denen jede mindestens ein Benutzerkennzeichen und ein Artikelkennzeichen und eine entsprechende Bewertungsgröße umfasst; und
wobei jede der identischen Datenstrukturen in zwei Dimensionen verknüpft ist,
einer ersten Dimension, die alle Datenstrukturen mit einem gleichen Benutzerkennzeichen geordnet nach den Artikelkennzeichen verknüpft, und
einer zweiten Dimension, die alle Datenstrukturen mit einem gleichen Artikelkennzeichen geordnet nach den Benutzerkennzeichen verknüpft.
9. System zum Empfehlen eines Artikels an einen bestimmten Benutzer, wobei der Artikel von dem Benutzer noch nicht bewertet worden ist, das Mittel umfasst, die geeignet sind, die Schritte des Verfahrens nach einem beliebigen der vorhergehenden Ansprüche 1 bis 8 auszuführen.
10. Datenverarbeitungsprogramm zum Ausführen in einem Datenverarbeitungssystem, das Softwareprogramm-Teile zum Durchführen eines Verfahrens nach einem beliebigen der vorhergehenden Ansprüche 1 bis 8 umfasst, wenn das Programm auf dem Rechner abläuft.
11. Auf einem durch Rechner nutzbaren Medium gespeichertes Rechnerprogrammprodukt, das rechnerlesbare Programmmittel umfasst, mit denen ein Rechner veranlasst wird, ein Verfahren nach einem beliebigen der vorstehenden Ansprüche 1 bis 8 auszuführen, wenn das Programm auf dem Rechner abläuft.
DE10154656A 2001-05-10 2001-11-07 System und Verfahren für Empfehlungen von Artikeln Ceased DE10154656A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP01111407 2001-05-10

Publications (1)

Publication Number Publication Date
DE10154656A1 true DE10154656A1 (de) 2002-11-21

Family

ID=8177378

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10154656A Ceased DE10154656A1 (de) 2001-05-10 2001-11-07 System und Verfahren für Empfehlungen von Artikeln

Country Status (2)

Country Link
US (2) US8700448B2 (de)
DE (1) DE10154656A1 (de)

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002033628A2 (en) * 2000-10-18 2002-04-25 Johnson & Johnson Consumer Companies, Inc. Intelligent performance-based product recommendation system
US8185487B2 (en) * 2001-02-12 2012-05-22 Facebook, Inc. System, process and software arrangement for providing multidimensional recommendations/suggestions
US7246106B2 (en) * 2003-07-02 2007-07-17 Red Paper Llc System and method for distributing electronic information
US7310612B2 (en) * 2003-08-13 2007-12-18 Amazon.Com, Inc. Personalized selection and display of user-supplied content to enhance browsing of electronic catalogs
EP1687818A1 (de) * 2003-11-18 2006-08-09 Koninklijke Philips Electronics N.V. Benutzerbewusste audioabspielvorrichtung und verfahren
US7689452B2 (en) * 2004-05-17 2010-03-30 Lam Chuck P System and method for utilizing social networks for collaborative filtering
US20070203589A1 (en) * 2005-04-08 2007-08-30 Manyworlds, Inc. Adaptive Recombinant Process Methods
US9584868B2 (en) 2004-07-30 2017-02-28 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US7631336B2 (en) 2004-07-30 2009-12-08 Broadband Itv, Inc. Method for converting, navigating and displaying video content uploaded from the internet to a digital TV video-on-demand platform
US11259059B2 (en) 2004-07-30 2022-02-22 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US7590997B2 (en) 2004-07-30 2009-09-15 Broadband Itv, Inc. System and method for managing, converting and displaying video content on a video-on-demand platform, including ads used for drill-down navigation and consumer-generated classified ads
US20060136284A1 (en) * 2004-12-17 2006-06-22 Baruch Awerbuch Recommendation system
US7430550B2 (en) * 2005-02-11 2008-09-30 Microsoft Corporation Sampling method for estimating co-occurrence counts
US8566144B2 (en) * 2005-03-31 2013-10-22 Amazon Technologies, Inc. Closed loop voting feedback
US7617134B2 (en) 2005-06-17 2009-11-10 Match.Com, L.L.C. System and method for providing a certified photograph in a network environment
US20070073549A1 (en) * 2005-09-27 2007-03-29 Match.Com, L.P. System and method for providing testing and matching in a network environment
US7613706B2 (en) * 2005-09-27 2009-11-03 Match.Com L.L.C. System and method for providing a search feature in a network environment
US20070072468A1 (en) * 2005-09-27 2007-03-29 Match.Com, L.P. System and method for providing an enhanced selection process in a network environment
US7676466B2 (en) * 2005-09-27 2010-03-09 Match.Com, L.L.C. System and method for providing enhanced questions for matching in a network environment
US8473490B2 (en) * 2005-09-27 2013-06-25 Match.Com, L.L.C. System and method for providing a near matches feature in a network environment
US8051013B2 (en) * 2005-09-27 2011-11-01 Match.Com, L.L.C. System and method for providing a system that includes on-line and off-line features in a network environment
WO2007089951A1 (en) * 2006-02-04 2007-08-09 Tn20 Incorporated Trusted acquaintances network system
US8285595B2 (en) * 2006-03-29 2012-10-09 Napo Enterprises, Llc System and method for refining media recommendations
US8903843B2 (en) * 2006-06-21 2014-12-02 Napo Enterprises, Llc Historical media recommendation service
US20080004951A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Web-based targeted advertising in a brick-and-mortar retail establishment using online customer information
US7970922B2 (en) 2006-07-11 2011-06-28 Napo Enterprises, Llc P2P real time media recommendations
US7680959B2 (en) * 2006-07-11 2010-03-16 Napo Enterprises, Llc P2P network for providing real time media recommendations
US8059646B2 (en) 2006-07-11 2011-11-15 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US8805831B2 (en) * 2006-07-11 2014-08-12 Napo Enterprises, Llc Scoring and replaying media items
US9003056B2 (en) 2006-07-11 2015-04-07 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US8327266B2 (en) * 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US8090606B2 (en) * 2006-08-08 2012-01-03 Napo Enterprises, Llc Embedded media recommendations
US8620699B2 (en) 2006-08-08 2013-12-31 Napo Enterprises, Llc Heavy influencer media recommendations
JP4240096B2 (ja) * 2006-09-21 2009-03-18 ソニー株式会社 情報処理装置および方法、プログラム並びに記録媒体
US7930197B2 (en) * 2006-09-28 2011-04-19 Microsoft Corporation Personal data mining
US8874655B2 (en) * 2006-12-13 2014-10-28 Napo Enterprises, Llc Matching participants in a P2P recommendation network loosely coupled to a subscription service
US9456250B2 (en) 2006-12-15 2016-09-27 At&T Intellectual Property I, L.P. Automatic rating optimization
US8286206B1 (en) * 2006-12-15 2012-10-09 At&T Intellectual Property I, Lp Automatic rating optimization
US20080168045A1 (en) * 2007-01-10 2008-07-10 Microsoft Corporation Content rank
US20090070185A1 (en) * 2007-01-17 2009-03-12 Concert Technology Corporation System and method for recommending a digital media subscription service
US20080244655A1 (en) * 2007-03-28 2008-10-02 Nokia Corporation Viral marketing of broadcast content
GB2447868A (en) * 2007-03-29 2008-10-01 Motorola Inc A distributed content item recommendation system
US9224427B2 (en) * 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US20080250323A1 (en) * 2007-04-04 2008-10-09 Huff Gerald B Method and apparatus for recommending an application-feature to a user
US8112720B2 (en) * 2007-04-05 2012-02-07 Napo Enterprises, Llc System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items
US9037632B2 (en) * 2007-06-01 2015-05-19 Napo Enterprises, Llc System and method of generating a media item recommendation message with recommender presence information
US9164993B2 (en) * 2007-06-01 2015-10-20 Napo Enterprises, Llc System and method for propagating a media item recommendation message comprising recommender presence information
US20080301187A1 (en) * 2007-06-01 2008-12-04 Concert Technology Corporation Enhanced media item playlist comprising presence information
US8285776B2 (en) * 2007-06-01 2012-10-09 Napo Enterprises, Llc System and method for processing a received media item recommendation message comprising recommender presence information
US8839141B2 (en) * 2007-06-01 2014-09-16 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US20090049045A1 (en) * 2007-06-01 2009-02-19 Concert Technology Corporation Method and system for sorting media items in a playlist on a media device
US8099315B2 (en) 2007-06-05 2012-01-17 At&T Intellectual Property I, L.P. Interest profiles for audio and/or video streams
US9654833B2 (en) 2007-06-26 2017-05-16 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US11570521B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US20090048992A1 (en) * 2007-08-13 2009-02-19 Concert Technology Corporation System and method for reducing the repetitive reception of a media item recommendation
US20090049030A1 (en) * 2007-08-13 2009-02-19 Concert Technology Corporation System and method for reducing the multiple listing of a media item in a playlist
US7865522B2 (en) * 2007-11-07 2011-01-04 Napo Enterprises, Llc System and method for hyping media recommendations in a media recommendation system
US9060034B2 (en) * 2007-11-09 2015-06-16 Napo Enterprises, Llc System and method of filtering recommenders in a media item recommendation system
US9224150B2 (en) * 2007-12-18 2015-12-29 Napo Enterprises, Llc Identifying highly valued recommendations of users in a media recommendation network
US9734507B2 (en) * 2007-12-20 2017-08-15 Napo Enterprise, Llc Method and system for simulating recommendations in a social network for an offline user
US8396951B2 (en) * 2007-12-20 2013-03-12 Napo Enterprises, Llc Method and system for populating a content repository for an internet radio service based on a recommendation network
US8117193B2 (en) 2007-12-21 2012-02-14 Lemi Technology, Llc Tunersphere
US8316015B2 (en) 2007-12-21 2012-11-20 Lemi Technology, Llc Tunersphere
US8060525B2 (en) 2007-12-21 2011-11-15 Napo Enterprises, Llc Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information
US8725740B2 (en) 2008-03-24 2014-05-13 Napo Enterprises, Llc Active playlist having dynamic media item groups
US10664889B2 (en) 2008-04-01 2020-05-26 Certona Corporation System and method for combining and optimizing business strategies
US20090259621A1 (en) * 2008-04-11 2009-10-15 Concert Technology Corporation Providing expected desirability information prior to sending a recommendation
US8484311B2 (en) 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US9015778B2 (en) 2008-06-25 2015-04-21 AT&T Intellectual Property I. LP Apparatus and method for media on demand commentaries
US8839327B2 (en) * 2008-06-25 2014-09-16 At&T Intellectual Property Ii, Lp Method and apparatus for presenting media programs
US20100042618A1 (en) * 2008-08-12 2010-02-18 Peter Rinearson Systems and methods for comparing user ratings
US8195668B2 (en) * 2008-09-05 2012-06-05 Match.Com, L.L.C. System and method for providing enhanced matching based on question responses
CN101685458B (zh) * 2008-09-27 2012-09-19 华为技术有限公司 一种基于协同过滤的推荐方法和系统
US8640163B2 (en) * 2008-09-30 2014-01-28 Microsoft Corporation Determining user-to-user similarities in an online media environment
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US8484227B2 (en) 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US9129008B1 (en) 2008-11-10 2015-09-08 Google Inc. Sentiment-based classification of media content
US8583563B1 (en) 2008-12-23 2013-11-12 Match.Com, L.L.C. System and method for providing enhanced matching based on personality analysis
CN101777064A (zh) * 2009-01-12 2010-07-14 鸿富锦精密工业(深圳)有限公司 图片搜索系统及方法
US8200602B2 (en) 2009-02-02 2012-06-12 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US9276761B2 (en) * 2009-03-04 2016-03-01 At&T Intellectual Property I, L.P. Method and apparatus for group media consumption
US8275623B2 (en) 2009-03-06 2012-09-25 At&T Intellectual Property I, L.P. Method and apparatus for analyzing discussion regarding media programs
US8301624B2 (en) * 2009-03-31 2012-10-30 Yahoo! Inc. Determining user preference of items based on user ratings and user features
AU2010201495B2 (en) * 2009-04-16 2012-04-12 Accenture Global Services Limited Touchpoint customization system
US8612435B2 (en) 2009-07-16 2013-12-17 Yahoo! Inc. Activity based users' interests modeling for determining content relevance
JP5609056B2 (ja) * 2009-10-14 2014-10-22 ソニー株式会社 コンテンツ関係可視化装置、表示制御装置、コンテンツ関係可視化方法およびプログラム
US8266652B2 (en) * 2009-10-15 2012-09-11 At&T Intellectual Property I, L.P. Apparatus and method for transmitting media content
US9830605B2 (en) * 2009-10-30 2017-11-28 At&T Intellectual Property I, L.P. Apparatus and method for product marketing
US8224756B2 (en) * 2009-11-05 2012-07-17 At&T Intellectual Property I, L.P. Apparatus and method for managing a social network
US8760469B2 (en) 2009-11-06 2014-06-24 At&T Intellectual Property I, L.P. Apparatus and method for managing marketing
US9031379B2 (en) * 2009-11-10 2015-05-12 At&T Intellectual Property I, L.P. Apparatus and method for transmitting media content
US8316303B2 (en) 2009-11-10 2012-11-20 At&T Intellectual Property I, L.P. Method and apparatus for presenting media programs
US8387088B2 (en) * 2009-11-13 2013-02-26 At&T Intellectual Property I, Lp Method and apparatus for presenting media programs
US10708663B2 (en) 2009-11-13 2020-07-07 At&T Intellectual Property I, L.P. Apparatus and method for media on demand commentaries
US9100550B2 (en) 2009-11-20 2015-08-04 At&T Intellectual Property I, L.P. Apparatus and method for managing a social network
US8839306B2 (en) 2009-11-20 2014-09-16 At&T Intellectual Property I, Lp Method and apparatus for presenting media programs
US8373741B2 (en) * 2009-11-20 2013-02-12 At&T Intellectual Property I, Lp Apparatus and method for collaborative network in an enterprise setting
US20110125763A1 (en) * 2009-11-24 2011-05-26 Nokia Corporation Method and apparatus for determining similarity of media interest
US9094726B2 (en) 2009-12-04 2015-07-28 At&T Intellectual Property I, Lp Apparatus and method for tagging media content and managing marketing
CN102169566A (zh) * 2010-02-26 2011-08-31 国际商业机器公司 在陌生领域中生成推荐项目的方法和装置
US9996587B1 (en) * 2010-09-24 2018-06-12 Amazon Technologies, Inc. Systems and methods for obtaining segment specific feedback
EP2463818A1 (de) * 2010-12-07 2012-06-13 Digital Foodie Oy Verfahren zur Erstellung einer computererzeugten Einkaufsliste
JP2013033388A (ja) * 2011-08-02 2013-02-14 Nec Corp データ処理装置、そのデータ処理方法およびコンピュータプログラム
US8776043B1 (en) 2011-09-29 2014-07-08 Amazon Technologies, Inc. Service image notifications
US9015109B2 (en) 2011-11-01 2015-04-21 Lemi Technology, Llc Systems, methods, and computer readable media for maintaining recommendations in a media recommendation system
US8463295B1 (en) * 2011-12-07 2013-06-11 Ebay Inc. Systems and methods for generating location-based group recommendations
EP2682910A1 (de) * 2012-07-06 2014-01-08 Axel Springer Digital TV Guide GmbH Vorrichtung und Verfahren zur automatischen Filtereinstellung
KR102017746B1 (ko) * 2012-11-14 2019-09-04 한국전자통신연구원 유사도 산출 방법 및 그 장치
EP2956896A4 (de) * 2013-02-14 2016-11-30 Wine Ring Inc Empfehlungssystem auf basis von gruppenprofilen eines persönlichen geschmacks
US20150199777A1 (en) * 2014-01-16 2015-07-16 Putnam Road Associates System and method for restaurant menuing
CN104102691B (zh) * 2014-06-04 2017-11-07 百度移信网络技术(北京)有限公司 一种相似性度量的方法以及系统
US9477713B2 (en) * 2014-06-06 2016-10-25 Netflix, Inc. Selecting and ordering groups of titles
EP2960849A1 (de) * 2014-06-26 2015-12-30 Deutsche Telekom AG Verfahren und system zum empfehlen eines gegenstandes an einen benutzer
US10671679B2 (en) * 2014-12-30 2020-06-02 Oath Inc. Method and system for enhanced content recommendation
US9524468B2 (en) * 2015-11-09 2016-12-20 International Business Machines Corporation Method and system for identifying dependent components
CN105760443B (zh) * 2016-02-03 2017-11-21 广州市动景计算机科技有限公司 项目推荐系统、项目推荐装置以及项目推荐方法
US10419376B2 (en) * 2016-12-19 2019-09-17 Google Llc Staggered notification by affinity to promote positive discussion
CN108573041B (zh) * 2018-04-08 2022-09-27 南京理工大学 基于加权信任关系的概率矩阵分解推荐方法
CN109615466A (zh) * 2018-11-27 2019-04-12 浙江工商大学 面向移动订餐系统的内容推荐和协同过滤推荐的混合方法
US11176959B2 (en) * 2019-08-23 2021-11-16 International Business Machines Corporation Sentimental and emotional analysis of electronic documents
US11386301B2 (en) 2019-09-06 2022-07-12 The Yes Platform Cluster and image-based feedback system
CN113553513B (zh) * 2021-09-22 2021-12-10 平安科技(深圳)有限公司 基于人工智能的课程推荐方法、装置、电子设备及介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3705409A (en) * 1970-12-09 1972-12-05 Ibm Tableau network design system
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US5050213A (en) * 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4996642A (en) * 1987-10-01 1991-02-26 Neonics, Inc. System and method for recommending items
US4870579A (en) * 1987-10-01 1989-09-26 Neonics, Inc. System and method of predicting subjective reactions
US4961139A (en) * 1988-06-30 1990-10-02 Hewlett-Packard Company Data base management system for real-time applications
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
CN1912885B (zh) * 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US6112186A (en) * 1995-06-30 2000-08-29 Microsoft Corporation Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering
US6049777A (en) * 1995-06-30 2000-04-11 Microsoft Corporation Computer-implemented collaborative filtering based method for recommending an item to a user
US6092049A (en) * 1995-06-30 2000-07-18 Microsoft Corporation Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering
US5790426A (en) * 1996-04-30 1998-08-04 Athenium L.L.C. Automated collaborative filtering system
US20010013009A1 (en) * 1997-05-20 2001-08-09 Daniel R. Greening System and method for computer-based marketing
US6317722B1 (en) * 1998-09-18 2001-11-13 Amazon.Com, Inc. Use of electronic shopping carts to generate personal recommendations
US6266649B1 (en) * 1998-09-18 2001-07-24 Amazon.Com, Inc. Collaborative recommendations using item-to-item similarity mappings
US6412012B1 (en) * 1998-12-23 2002-06-25 Net Perceptions, Inc. System, method, and article of manufacture for making a compatibility-aware recommendations to a user
US6598054B2 (en) * 1999-01-26 2003-07-22 Xerox Corporation System and method for clustering data objects in a collection
US6564202B1 (en) * 1999-01-26 2003-05-13 Xerox Corporation System and method for visually representing the contents of a multiple data object cluster
US6567797B1 (en) * 1999-01-26 2003-05-20 Xerox Corporation System and method for providing recommendations based on multi-modal user clusters
US7082407B1 (en) * 1999-04-09 2006-07-25 Amazon.Com, Inc. Purchase notification service for assisting users in selecting items from an electronic catalog
US6963850B1 (en) * 1999-04-09 2005-11-08 Amazon.Com, Inc. Computer services for assisting users in locating and evaluating items in an electronic catalog based on actions performed by members of specific user communities
AU5934900A (en) * 1999-07-16 2001-02-05 Agentarts, Inc. Methods and system for generating automated alternative content recommendations
KR100328670B1 (ko) * 1999-07-21 2002-03-20 정만원 다중 추천 에이전트들을 이용하는 추천 시스템
JP2001100935A (ja) * 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> ディスク装置およびその制御方法
US20040205065A1 (en) * 2000-02-10 2004-10-14 Petras Gregory J. System for creating and maintaining a database of information utilizing user opinions
US7143089B2 (en) * 2000-02-10 2006-11-28 Involve Technology, Inc. System for creating and maintaining a database of information utilizing user opinions
US7617127B2 (en) * 2000-04-28 2009-11-10 Netflix, Inc. Approach for estimating user ratings of items
AU2001277071A1 (en) * 2000-07-21 2002-02-13 Triplehop Technologies, Inc. System and method for obtaining user preferences and providing user recommendations for unseen physical and information goods and services
WO2002010954A2 (en) * 2000-07-27 2002-02-07 Polygnostics Limited Collaborative filtering
US8185487B2 (en) * 2001-02-12 2012-05-22 Facebook, Inc. System, process and software arrangement for providing multidimensional recommendations/suggestions
US7085845B2 (en) * 2001-05-09 2006-08-01 Gene Fein Method, apparatus and computer program product for identifying a playing media file and tracking associated user preferences

Also Published As

Publication number Publication date
US20140081996A1 (en) 2014-03-20
US8700448B2 (en) 2014-04-15
US20020178057A1 (en) 2002-11-28
US11157984B2 (en) 2021-10-26

Similar Documents

Publication Publication Date Title
DE10154656A1 (de) System und Verfahren für Empfehlungen von Artikeln
DE10247927A1 (de) Verbessertes Verfahren zum Bewerten von Einheiten innerhalb eines Empfehlungssystems auf der Grundlage zusätzlicher Kenntnisse über die Verknüpfung der Einheiten untereinander
DE10247929A1 (de) Auslegen eines Empfehlungssystems zum Vorsehen von Anwender-zu-Anwender-Empfehlungen
DE60221153T2 (de) Verfahren und vorrichtung für ähnlichkeitssuche und gruppenbildung
DE69804821T2 (de) Informationswiedergewinnung
DE602005001940T2 (de) Verfahren und system zur erzeugung einer für eine menge von benutzern eines kommunikationsnetzes repräsentativen population
EP1783633B1 (de) Suchmaschine für eine ortsbezogene Suche
DE19624696A1 (de) Wiederauffinden von Dokumenten über Netzwerke
DE602004006485T2 (de) Verfahren zur automatisierten anmerkung von berichten mehrdimensionaler datenbanken mit informationsobjekten eines datenspeichers
DE10035043A1 (de) Mehrdimensionale Indexierungsstruktur zur Verwendung mit linearen Optimierungsanfragen
DE60030735T2 (de) Voraussage der realisierbarkeit eines verbindungsweges
DE10247928A1 (de) Auslegen von Empfehlungssystemen, so dass sie allgemeine Eigenschaften im Empfehlungsprozess behandeln
DE102018010163A1 (de) Automatisches Generieren sinnvoller Nutzersegmente
DE10034694B4 (de) Verfahren zum Vergleichen von Suchprofilen sowie dessen Verwendung
DE102018000039A1 (de) Bündeln von Onlinecontentfragmenten zur Präsentation auf Grundlage von contentspezifischen Metriken und Intercontentrandbedingungen
CN111078859A (zh) 一种基于引用次数的作者推荐方法
DE102019000432A1 (de) Online Training und Aktualisieren von Faktorisierungsmaschinen unter Verwendung einer alternierende kleinste Quadrate Optimierung
DE112021003058T5 (de) Verbessertes auflösen von entitäten in stammdaten unter verwendung einer qualifizierten beziehungsbewertung
DE212017000034U1 (de) Computersystem zum Bestimmen von Prämiensätzen und Ermässigungen sowie Speicher dafür
EP1285385B1 (de) Verfahren zum auffinden von objekten
DE102021127398A1 (de) Beziehungserkennung und -quantifizierung
DE102012025351B4 (de) Verarbeitung eines elektronischen Dokuments
Miller GroupLens: An open architecture for collaborative filtering
DE19959142A1 (de) Verfahren und Vorrichtung zum Übermitteln von Inhalten, insbesondere von Werbung
DE10001613C2 (de) Verfahren sowie Datenverarbeitungsanlage zur Verwaltung von Datensätzen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection