DE10154656A1 - System und Verfahren für Empfehlungen von Artikeln - Google Patents
System und Verfahren für Empfehlungen von ArtikelnInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90324—Query formulation using system suggestions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0222—During 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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
Diese Datenstruktur "benutzt" stellt ein zeitweiliges Abbild
bereit, um zurückzuverfolgen, welche Datenelemente schon besucht
und ausgenutzt worden sind.
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:
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.
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.
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.
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.
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)
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)
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 |
-
2001
- 2001-11-07 DE DE10154656A patent/DE10154656A1/de not_active Ceased
- 2001-12-05 US US10/007,583 patent/US8700448B2/en not_active Expired - Fee Related
-
2013
- 2013-11-25 US US14/088,870 patent/US11157984B2/en not_active Expired - Lifetime
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 |