-
GEBIET DER TECHNIK
-
Die vorliegende Offenbarung betrifft Aspekte der Vorhersage des nächsten Kontakts, der durch einen Benutzer eines Kommunikationssystems angerufen werden soll.
-
ALLGEMEINER STAND DER TECHNIK
-
Anrufsysteme stellen typischerweise Adressbuchfunktionen bereit, die eine Liste der Kontakte bereitstellen, die angerufen werden können. Anrufsysteme beinhalten in der Regel auch eine Favoritenliste der Kontakte, auf die häufig zugegriffen wird, sowie eine Liste der verpassten oder kürzlich getätigten Anrufe.
-
KURZDARSTELLUNG
-
In einem oder mehreren veranschaulichenden Beispielen ist ein Speicher dazu konfiguriert, Anrufdatensätze für eine Vielzahl von Kontakten zu speichern. Ein Prozessor ist dazu programmiert, Wahrscheinlichkeiten für das Anrufen von Kontakten gemäß aktuellen Kontextinformationen und Anrufschlussfolgerungen bestimmt, die aus Clustern eines kontextcodierten Modells ermittelt wurden, das aus den Anrufdatensätzen erstellt wurde, wobei jeder Cluster einer eindeutigen Kombination aus Wertebereichen der Kontextinformationen entspricht, und den Kontakt, der am wahrscheinlichsten als Nächstes angerufen wird, als den einen der Vielzahl von Kontakten mit einer höchsten der Wahrscheinlichkeiten zu identifizieren.
-
In einem oder mehreren veranschaulichenden Beispielen beinhaltet ein Verfahren das Aktualisieren von Parametern von Clustern eines kontextcodierten Modells gemäß einer Häufigkeitsschätzung eines Aspekts von Anrufen an Kontakte in Bezug auf eindeutige Kombinationen von Kontextdaten von Anrufen, die mit den jeweiligen Clustern übereinstimmen; Gewichten der Cluster nach Relevanz der eindeutigen Kombinationen von Kontextdaten für aktuelle Kontextinformationen; und Bestimmen der Wahrscheinlichkeiten des Anrufens von Kontakten gemäß den aktuellen Kontextinformationen und einer oder mehreren Schlussfolgerungen zwischen Anrufen, die aus den Clustern als gewichtet bestimmt wurden.
-
In einem oder mehreren veranschaulichenden Beispielen beinhaltet ein nichttransitorisches computerlesbares Medium Anweisungen, die bei Ausführung durch eine Rechenvorrichtung die Rechenvorrichtung dazu veranlassen, Parameter von Clustern eines kontextcodierten Modells gemäß einer Häufigkeitsschätzung eines Aspekts von Anrufen an Kontakte in Bezug auf eindeutige Kombinationen von Kontextdaten von Anrufen zu aktualisieren, die mit den jeweiligen Clustern übereinstimmen; die Cluster nach Relevanz der eindeutigen Kombinationen von Kontextdaten für aktuelle Kontextinformationen zu gewichten; und Wahrscheinlichkeiten des Anrufens von Kontakten gemäß den aktuellen Kontextinformationen und einer oder mehreren Schlussfolgerungen zwischen Anrufen zu bestimmen, die aus den Clustern als gewichtet bestimmt wurden.
-
Figurenliste
-
- 1 ist ein schematisches Diagramm einer beispielhaften Ausführungsform eines Systems zum Durchführen einer intelligenten Anrufeinstufung;
- 2 veranschaulicht ein Beispiel für einen Graphen einer kumulativen Verteilungsfunktion der Wahrscheinlichkeit des Auftretens eines Anrufs an einen Kontakt;
- 3 veranschaulicht ein Beispiel für Anrufereignisse an einem Satz von Kontakten;
- 4 veranschaulicht ein Beispiel für ein kontextcodiertes Modell zur Verwendung beim Identifizieren einer vorhergesagten Anrufliste;
- 5 veranschaulicht ein Beispiel für einen Prozess zum Lernen von Werten für das kontextcodierte Modell;
- 6 veranschaulicht ein weiteres Beispiel für ein kontextcodiertes Modell zur Verwendung beim Identifizieren einer vorhergesagten Anrufliste;
- 7 veranschaulicht einen beispielhaften Prozess zum Vorhersagen des Anrufens von Kontakten, um die vorhergesagte Anrufliste zu erzeugen;
- 8 veranschaulicht eine beispielhafte Bestimmung der Nähe und der Gewichtungen;
- 9 veranschaulicht ein Beispiel für Schlussfolgerungs- und Merkmalsauswahl und Modellstrukturoptimierung;
- 10 veranschaulicht ein Beispiel für die Berücksichtigung kreisförmiger Beziehungen zwischen Partitionen des kontextcodierten Modells; und
- 11 veranschaulicht ein alternatives Beispiel für ein kontextcodiertes Modell einschließlich zusätzlicher Kontextdaten.
-
DETAILLIERTE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Offenbarung werden in dieser Schrift beschrieben. Es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht unbedingt maßstabsgetreu; einige Merkmale können vergrößert oder verkleinert dargestellt sein, um Einzelheiten bestimmter Komponenten zu zeigen. Deshalb sind in dieser Schrift offenbarte konkrete strukturelle und funktionelle Einzelheiten nicht als einschränkend auszulegen, sondern lediglich als repräsentative Grundlage, um den Fachmann die verschiedenen Einsatzmöglichkeiten der Ausführungsformen zu lehren. Für einen Durchschnittsfachmann versteht es sich, dass verschiedene Merkmale, die in Bezug auf beliebige der Figuren veranschaulicht und beschrieben sind, mit Merkmalen kombiniert werden können, die in einer oder mehreren anderen Figuren veranschaulicht sind, um Ausführungsformen zu erzeugen, die nicht explizit veranschaulicht oder beschrieben sind. Die Kombinationen veranschaulichter Merkmale stellen repräsentative Ausführungsformen für typische Anwendungen bereit. Verschiedene Kombinationen und Modifikationen der Merkmale, die mit den Lehren dieser Offenbarung vereinbar sind, könnten jedoch für bestimmte Anwendungen oder Umsetzungen wünschenswert sein.
-
Aktuelle Anrufsysteme können nicht vorhersagen, welchen Kontakt oder welche Kontakte ein Benutzer wahrscheinlich als Nächstes anruft. Es kann jedoch wünschenswert sein, dass ein Anrufsystem eine derartige Vorhersage bereitstellt. Zum Beispiel kann es in der Fahrzeugumgebung für einen Benutzer unerwünscht sein, durch Namenslisten zu scrollen, während der Benutzer Fahraufgaben ausführt.
-
Es kann ein intelligenter Anrufrangfolgeersteller und/oder eine intelligente Wählvorrichtung erstellt werden, der/die das Anrufverhalten des Benutzers lernt und der/die die nächsten anzurufenden Kontakte basierend auf dem aktuellen Kontext vorhersagt und einstuft. Die Vorrichtung kann Kontakte eines Benutzers auf intelligente Weise gemäß intelligenten Häufigkeitsschätzungen einstufen, einschließlich der Zeit zwischen Kontakten derselben Person, der relativen Häufigkeit zwischen wahrscheinlichen Kontakten, der Zeit seit dem letzten Kontakt einer Person usw. Die Vorrichtung kann ferner zusätzliche Kontextinformationen, wie etwa Tag, Uhrzeit und Ort, nutzen, sodass das die Vorrichtung den Kontext als Prädiktoren dafür verwenden kann, welche Kontakte mit größerer Wahrscheinlichkeit aufgerufen werden. Die Vorrichtung kann ferner dazu konfiguriert sein, mit Unsicherheiten in der resultierenden Liste umzugehen und Vorhersagen in Unsicherheitssituationen bereitzustellen. Die Vorrichtung kann ferner einen inkrementellen Lernansatz nutzen und von Grund auf neu lernen.
-
Eine rekursive Schätzung kann entweder innerhalb oder außerhalb der Vorrichtung implementiert werden. Unter Verwendung der Schätzung können Kontakte höher eingestuft werden, wenn ihre durchschnittliche Kontakthäufigkeit hoch ist. Bei gleichen Kontakthäufigkeiten können Kontakte, die in älterer Zeit kontaktiert wurden, als hoch eingestuft werden. Bei Bedarf können andere Kontexte mit zusätzlichen Parametern aufgenommen werden. Rückschlüsse auf Anrufe an die Kontakte können auf rekursiven Schätzungen basieren, die das jüngste Verhalten widerspiegeln, sodass das Löschen alter Anrufdaten automatisch erfolgt. Zusätzliche kontextbezogene Faktoren bezüglich der historischen Anrufe (z. B. Tag, Uhrzeit, Ort usw.) können ebenfalls unter Verwendung von Informationscodierungstechniken in das Vorhersagemodell aufgenommen werden. Die Vorhersagemodelle können mit einer oder mehreren Schlussfolgerungen mit oder ohne die codierten Informationen konstruiert werden. Derartige Ansätze können sowohl für die Verwendung im Auto als auch für einen tragbaren Kontaktprädiktor geeignet sein, der von einer verbundenen Rechenvorrichtung aktiviert wird.
-
1 ist ein schematisches Diagramm einer beispielhaften Ausführungsform eines Systems 100 zum Durchführen einer intelligenten Anrufeinstufung. Das System 100 beinhaltet einen Prozessor 102, der mit einem Speicher 110 wirkverbunden ist, Eingangssteuerungen 118, eine Netzwerkvorrichtung 120 und eine Anzeigevorrichtung 108. In dem System 100 kann der Prozessor 102 eine oder mehrere integrierte Schaltungen beinhalten, welche die Funktionalität einer Zentraleinheit (central processing unit - CPU) und/oder eines Grafikprozessor (graphics processing unit - GPU) implementieren. In einigen Beispielen handelt es sich bei dem Prozessor 102 um ein System auf einem Chip (system on a chip - SoC), das die Funktionalität der CPU und des GPU und optional anderer Komponenten, einschließlich beispielsweise des Speichers 110, einer Netzwerkvorrichtung und eines Positionierungssystems, in eine einzelne integrierte Vorrichtung integriert. In anderen Beispielen sind die CPU und der GPU über eine Peripherieverbindungsvorrichtung, wie etwa PCI Express oder eine andere geeignete Peripheriedatenverbindung, miteinander verbunden. In einem Beispiel handelt es sich bei der CPU um eine im Handel erhältliche zentrale Verarbeitungsvorrichtung, die einen Befehlssatz, wie etwa eine der x86-, ARM-, Power- oder MIPS-Befehlssatzfamilien, implementiert. Zusätzlich dazu können alternative Ausführungsformen des Prozessors 102 Mikrocontroller, anwendungsspezifische integrierte Schaltungen (application specific integrated circuits - ASICs), feldprogrammierbare Gate-Arrays (FPGAs), digitale Signalprozessoren (DSPs) oder andere geeignete digitale Logikvorrichtungen beinhalten. Unabhängig von den Besonderheiten führt der Prozessor 102 während des Betriebs gespeicherte Programmanweisungen aus, die aus dem Speicher 110 abgerufen werden. Die gespeicherten Programmanweisungen beinhalten Software, die den Betrieb des Prozessors 102 steuert, um die in dieser Schrift beschriebenen Vorgänge durchzuführen.
-
Der GPU kann Hardware und Software zum Anzeigen von mindestens zweidimensionalen (2D) und optional dreidimensionalen (3D) Grafiken auf einer Anzeigevorrichtung 108 beinhalten. Die Anzeigevorrichtung 108 kann einen elektronischen Anzeigebildschirm, einen Projektor, einen Drucker oder eine beliebige andere geeignete Vorrichtung beinhalten, die eine grafische Anzeige reproduziert. In einigen Beispielen führt der Prozessor 102 Softwareprogramme einschließlich Treibern und anderen Softwareanweisungen unter Verwendung der Hardwarefunktionalität in dem GPU aus, um die Leistung des maschinellen Lernens oder anderer in dieser Schrift beschriebener Rechenvorgänge zu beschleunigen.
-
Die Anzeigevorrichtung 108 kann einen elektronischen Anzeigebildschirm, einen Projektor, einen Drucker oder eine beliebige andere geeignete Vorrichtung beinhalten, die eine grafische Anzeige reproduziert, die über den Prozessor 102 erzeugt wird. In einem Beispiel kann es sich bei der Anzeigevorrichtung 108 um eine Instrumentenanzeige eines Fahrzeugs handeln. In einem anderen Beispiel kann es sich bei der Anzeigevorrichtung 108 um einen Bildschirm eines Smartphones, Tablets, einer Uhr oder einer anderen tragbaren Rechenvorrichtung handeln.
-
Der Speicher 110 kann Vorrichtungen sowohl mit nichtflüchtigem Speicher als auch mit flüchtigem Speicher beinhalten. Der nichtflüchtige Speicher beinhaltet Festkörperspeicher, wie etwa einen NAND-Flash-Speicher, magnetische und optische Speichermedien oder eine beliebige andere geeignete Datenspeichervorrichtung, die Daten speichert, wenn das System 100 deaktiviert wird oder elektrische Leistung verliert. Der flüchtige Speicher beinhaltet einen statischen und dynamischen Direktzugriffsspeicher (random-access memory - RAM), der Programmanweisungen und Daten während des Betriebs des Systems 100 speichert. Wie gezeigt, kann der Speicher 110 die Kontakte 112, Anrufdaten 114, Kontextdaten 122 und die Anrufvorhersageanwendung 116 zur Wartung und zum Abrufen speichern.
-
Die Eingabesteuerungen 118 können beliebige verschiedene Vorrichtungen beinhalten, die es dem System 100 ermöglichen, Steuereingaben zu empfangen. Beispiele für geeignete Eingabevorrichtungen beinhalten Eingaben für die Benutzeroberfläche, wie etwa Tastaturen, Mäuse, Touchscreens, Spracheingabevorrichtungen und dergleichen.
-
Eine Netzwerkvorrichtung 120 kann eine beliebige von verschiedenen Vorrichtungen beinhalten, die es dem System 100 ermöglichen, die Anrufdaten 114, Kontextdaten 122 oder andere Daten von einer externen Vorrichtung zu empfangen. Beispiele für geeignete Netzwerkvorrichtungen 120 beinhalten einen Netzwerkadapter oder eine periphere Verbindungsvorrichtung, die Daten von einem anderen Computer oder einer externen Datenspeichervorrichtung empfängt, was zum effizienten Empfangen großer Sätze von Anrufdaten 114 nützlich sein kann.
-
Die Kontakte 112 beziehen sich auf Datensätze, die jeweils Informationen über einen Kontakt definieren, welche unter Verwendung der Netzwerkvorrichtung 120 aufgerufen werden können. In einem Beispiel können die Kontakte 112 einen Namen eines Kontakts und eine oder mehrere Kennungen angeben, die zum Senden oder Empfangen von Kommunikationen mit dem Kontakt verwendet werden können. Diese Kennungen können als einige nicht einschränkende Beispiele Telefonnummern, Kontonamen für Sofortnachrichten, Online-Benutzernamen, E-Mail-Adressen usw. beinhalten.
-
Die Anrufdaten 114 beziehen sich auf eine Vielzahl von Datensätzen, die jeweils für einen Anruf oder eine andere Kommunikationssitzung zwischen dem Benutzer und einem Kontakt 112 repräsentativ sind. Jeder Anrufdatensatz 114 kann eine Angabe beinhalten, mit welchem Kontakt 112 kommuniziert wurde, ob der Benutzer oder der Kontakt 112 die Kommunikation initiiert hat, ob der Kontakt 112 verfügbar war (z. B. den Anruf angenommen hat), einen Tag und eine Uhrzeit, zu der die Kommunikationssitzung initiiert wurde, und eine Dauer der Kommunikationssitzung. In einigen Fällen können einige oder alle Anrufdaten 114 von einer Datenspeichervorrichtung empfangen werden.
-
Die Kontextdaten 122 können zusätzliche Informationen über Umstände beinhalten, welche die Anrufe in den Anrufdaten 114 umgeben. In einem Beispiel können die Kontextdaten 122 den Standort des Benutzers während des Anrufs angeben. In einem anderen Beispiel können die Kontextdaten 122 die Reisegeschwindigkeit des Benutzers und/oder die Fahrtrichtung des Benutzers während des Anrufs beinhalten. In noch einem anderen Beispiel können die Kontextdaten 122 die während des Anrufs zurückgelegte Entfernung angeben (z.B. als Differenz zwischen dem Standort des Benutzers zu Beginn des Anrufs und dem Standort des Benutzers am Ende des Anrufs). In einem anderen Beispiel kann der Tag in eine Vielzahl von Zeitsegmenten (z. B. Stunden, halbe Stunden usw.) unterteilt werden, und die Kontextdaten 122 können angeben, während welchem Zeitsegment der Anruf getätigt wurde. Die Kontextdaten 122 können zudem Hardwarekennungen beinhalten, die sich auf die Netzwerkvorrichtung 120 selbst beziehen, wie etwa eine MAC-Adresse der Netzwerkvorrichtung 120, SIM-Daten, eine Firmware-Version der Netzwerkvorrichtung 120, Aspekte des Netzwerks, mit denen die Netzwerkvorrichtung 120 verbunden wurde (z. B. ob die Verbindung über 3G, 4G LTE, 5G usw. bestand, ob die Netzwerkvorrichtung 120 im Roaming-Zustand war usw.) und so weiter.
-
Als einige andere Beispiele können in Fällen, in denen sich der Benutzer in einem Fahrzeug befindet, die Kontextdaten 122 Daten über das Fahrzeug beinhalten, wie etwa einen Tag und eine Uhrzeit der Einschaltung für das Fahrzeug, Schlüsselhandsenderinformationen (die z. B. möglicherweise eine Identität eines Fahrers angeben), ob die Netzwerkvorrichtung 120 mit dem Fahrzeug gekoppelt war, verschiedene Fahrzeugsignale (z. B. in welchem Gang sich das Fahrzeug befand, Fahrzeuggeschwindigkeit, Sicherheitsgurtstatus usw.). Die Kontextdaten 122 können andere Informationen über die Fahrt des Benutzers beinhalten, der den Anruf tätigt, wie etwa welche Art von Straße der Benutzer gefahren ist (z. B. unbefestigte Straße, Schnellstraße, Geschwindigkeitsbegrenzung der Straße, Anzahl der Fahrspuren der Straße usw.).
-
Die vorhergesagte Anrufliste 124 kann eine Liste von einem oder mehreren Kontakten 112 beinhalten, von denen angenommen wird, dass sie am wahrscheinlichsten durch den Benutzer als Nächstes angerufen werden. In einem Beispiel kann bestimmt werden, dass jeder vorhergesagte Anruf auf der vorhergesagten Anrufliste eine Wahrscheinlichkeit aufweist, der nächste Anruf zu sein, und die vorhergesagte Anrufliste 124 kann in absteigender Reihenfolge der Wahrscheinlichkeit sortiert sein.
-
Während das veranschaulichte System 100 unter Verwendung einer einzelnen Rechenvorrichtung gezeigt wird, welche die Anzeigevorrichtung 108 beinhaltet, können andere beispielhafte Systeme 100 mehrere Rechenvorrichtungen beinhalten. Als ein Beispiel erzeugt der Prozessor 102 die vorhergesagte Anrufliste 124 und überträgt die vorhergesagte Anrufliste 124 unter Verwendung der Netzwerkvorrichtung 120 über ein Datennetzwerk an eine entfernte Rechenvorrichtung. Die entfernte Rechenvorrichtung kann dann eine Benutzerschnittstelle anzeigen, welche die vorhergesagte Anrufliste 124 anzeigt. In einem anderen nicht einschränkenden Beispiel ist der Prozessor 102 in einem Server-Rechenvorrichtung implementiert, welche die Anrufvorhersageanwendung 116 ausführt, um einen Webserver zu implementieren, der Daten über ein Datennetzwerk an einen Webbrowser in einer entfernten Client-Rechenvorrichtung überträgt. Die Client-Rechenvorrichtung implementiert einen Webbrowser oder eine andere geeignete Bildanzeigesoftware, um die von dem Server empfangenen Daten unter Verwendung einer Anzeigevorrichtung 108 der Client-Rechenvorrichtung anzuzeigen.
-
Die Anrufvorhersageanwendung 116 beinhaltet Anweisungen, die, wenn sie durch den Prozessor 102 des Systems 100 ausgeführt werden, das System 100 dazu veranlassen, die in dieser Schrift beschriebenen Prozesse und Vorgänge durchzuführen. Die Anrufvorhersageanwendung 116 kann dazu programmiert sein, eine rekursive Schätzung durchzuführen, um Schlussfolgerungen für das Anrufverhalten abzuschätzen. Diese Schlussfolgerungen können die Zeit zwischen Anrufen, Anrufhäufigkeiten und/oder Anrufdauer beinhalten. Beispielsweise können Kontakte 112 höher eingestuft werden, wenn ihre durchschnittliche Kontakthäufigkeit höher ist, ihre Anrufdauer höher ist oder ihre Zeit zwischen Anrufen niedriger ist. Zusätzlich dazu können für Kontakte 112, welche die gleiche Kontakthäufigkeiten aufweisen, die Kontakte 112, die in älterer Zeit kontaktiert wurden, höher eingestuft werden. Die Lernrate kann eingestellt werden, um langfristige gegenüber kurzfristigen Verhaltensweisen zu erfassen. Dies kann die Reduzierung von Problemen beim Löschen alter oder anderweitig veralteter Daten ermöglichen. Die Anrufvorhersageanwendung 116 kann ferner dazu programmiert sein, bei Bedarf andere Aspekte aus den Kontextdaten 122 aufzunehmen, um zusätzliche Parameter bei der Vorhersage zu verwenden.
-
In Bezug auf die Häufigkeitsschätzung für die Zeit zwischen Anrufrückschluss kann die Anrufvorhersageanwendung 116 dazu programmiert sein, die Kontakthäufigkeit durch Zählen des Auftretens von Anrufen in den Anrufdaten 114 in Bezug auf jeden der Kontakte 112 zu bestimmen. In einigen Beispielen können Zeitinformationen für die Anrufe in den Anrufdaten 114 zusätzlich mit einem Vergessensfaktor betrachtet werden, sodass Anrufe, die zeitlich weniger aktuell sind, weniger gezählt werden als Anrufe, die zeitlich jünger sind. Zusätzlich dazu können Kontextdaten 122 für jeden der Anrufe in die Häufigkeitsdaten eingebettet werden, um aussagekräftige Informationen zur Verwendung in dem Vorhersageprozess bereitzustellen.
-
Eine beispielhafte Gleichung zum Lernen der mittleren Zeit zwischen Anrufen (mean time between calls - MTBC) für einen Kontakt
112 ist in Gleichung (1) wie folgt gezeigt:
wobei:
- α: eine Lernrate ist (z. B. 0,9);
- i ein Kontakt ist;
- t eine Zeiteinheit ist;
- TBC ein zuletzt beobachteter Zeitwert zwischen Anrufen ist;
- βi(t) die mittlere Zeit zwischen den Anrufparametern zum Zeitpunkt t ist; und βi(t+1) die mittlere Zeit zwischen den Anrufparametern zu einem nächsten Zeitpunkt t+1 ist.
-
Ein numerisches Beispiel ist in Gleichung (2) wie folgt gezeigt:
-
Die mittlere Zeit zwischen Anrufen kann in Stunden, Tagen, Minuten oder anderen Zeiteinheiten als β
i für den Kontakt i gemessen werden. Insbesondere β = 1/λ, λ bezieht sich also auf die Häufigkeit (z. B. die Rate des Auftretens über einen festgelegten Zeitraum). Die Wahrscheinlichkeit, den Kontakt i zu einem bestimmten Zeitpunkt anzurufen, kann wie folgt in Gleichung (3) angegeben werden:
wobei:
- i ein Kontakt ist;
- X die Zeit seit dem letzten Anruf beim Kontakt i ist; und
- βi eine mittlere Zeit zwischen Anrufparametern für den Kontakt i ist.
-
2 veranschaulicht ein Beispiel 200 für einen Graphen einer kumulativen Verteilungsfunktion der Wahrscheinlichkeit des Auftretens eines Anrufs an einen Kontakt. Wie gezeigt, stellt die X-Achse die Zeit seit dem letzten Anrufereignis an den Kontakt 112 dar, während die Y-Achse die Gesamtsumme der Wahrscheinlichkeit des Auftretens eines nächsten Anrufs an den Kontakt 112 im Laufe der Zeit darstellt.
-
3 veranschaulicht ein Beispiel 300 für Anrufereignisse an einem Satz von Kontakten 112. Wie gezeigt, wird der Kontakt 112 „A“ in der Größenordnung von zweimal täglich angerufen (z. B. λA = 2 ← → βA = ½ Tag), während Kontakt 112 „B“ in der Größenordnung von einmal am Tag angerufen wird (z. B. λB = 1 ← → βB = 1 Tag).
-
In einem ersten Szenario sei die Zeit ein Tag, seit entweder A oder B angerufen wurde. Zu dem Zeitpunkt gilt XA = XB = 1, gemäß Gleichung (3) beträgt die Wahrscheinlichkeit, A anzurufen, 1-e-2*1 = 0,8647, während die Wahrscheinlichkeit, B anzurufen, 1-e-1*1 = 0,6321 beträgt. Wenn der Benutzer weiterhin weder A noch B anruft, steigen sowohl XA als auch XB langsam an, ebenso wie die Wahrscheinlichkeiten. In einem zweiten Szenario sei die Zeit ein Tag, aber ein Anruf bei A wurde gerade abgeschlossen. Angesichts der Tatsache, dass gerade ein Anruf bei A getätigt wurde, gilt dementsprechend XA ~= 0, → was bedeutet, dass die Wahrscheinlichkeit, A → anzurufen -= 0. Da B nicht angerufen wurde, steigt die Wahrscheinlichkeit, B anzurufen, weiter an. Um das nächste Xi für einen Kontakt 112 zu bestimmen, können im Allgemeinen Anrufdaten 114, die sich auf letzte Anrufe beziehen, gepuffert werden, oder es kann eine gefilterte Version von Xi gelernt werden.
-
Andere rekursive Schlussfolgerungen außer der Zeit zwischen Anrufen können zusätzlich oder alternativ dazu verwendet werden. In der Tat können viele andere einfache Schlussfolgerungen, wie etwa die relative Anrufhäufigkeit und die Anrufdauer, mit Formeln ähnlich wie in Gleichung (1) gelernt und aktualisiert werden. Beispielsweise kann die folgende Gleichung verwendet werden, um Schlussfolgerungen für die relative Häufigkeit von Anrufen zu bestimmen:
-
In Gleichung (4) werden Anrufe an verschiedene Kontakte
112 als sich gegenseitig ausschließende Ereignisse behandelt. Somit stellt das Flag
i,T/F Binärwerte dar (z. B. 0 oder 1, wahr oder falsch usw.). Alle relativen Häufigkeitswerte (RH) des Kontakts
112 können dementsprechend aktualisiert werden, wenn ein neuer Anruf getätigt wird. In einem anderen Beispiel kann die folgende Gleichung verwendet werden, um Schlussfolgerungen in Bezug auf die Anrufdauer zu bestimmen:
-
In Gleichung (5) werden Anrufe an verschiedene Kontakte 112 als getrennt behandelt. Dementsprechend kann nur eine Anrufdauer (AD) für einen Kontakt 112 aktualisiert werden, wenn ein neuer Anruf getätigt wird.
-
In Bezug auf rekursionsbasierte Schätzungen kann eine Aktualisierung mit den neuesten relevanten Anrufdaten durchgeführt werden. Darüber hinaus ist das Löschen alter Informationen integriert, da die Schätzungen einige Erkenntnisse widerspiegeln, die schrittweise aus dem jüngsten Verlauf erfasst wurden (ohne den Verlauf zu puffern). Insbesondere bei rein zählbasierten Schätzungen können Probleme mit dem Löschen alter Informationen auftreten, sofern kein großer Puffer vorhanden ist.
-
Zusätzliche Faktoren können über die Anrufhäufigkeit oder die mittlere Zeit zwischen Anrufen hinaus berücksichtigt werden, wenn die Wahrscheinlichkeit eines nächsten Anrufs bestimmt wird. In einem Beispiel können Kontextdaten 122 zusätzlich für die Anrufe berücksichtigt werden, wie etwa, ob die Anrufe innerhalb oder außerhalb des Fahrzeugkontexts getätigt wurden (z. B. war ein Fahrzeug mit dem Telefon gekoppelt), Standort des Anrufs, Route, die ein Fahrzeug während des Anrufs nahm, Verkehr entlang der Route während des Anrufs usw. Es gibt verschiedene Mechanismen, um zusätzliche Kontexte in die Gleichung einzubeziehen. In einem Beispiel können bestimmte Informationen direkt beinhaltet sein. In einem anderen Beispiel können Informationen indirekt beinhaltet sein (z. B. durch Codierung der Informationen in eine vereinfachte Darstellung).
-
4 veranschaulicht ein Beispiel 400 für ein kontextcodiertes Modell
402 zur Verwendung beim Identifizieren einer vorhergesagten Anrufliste
124. Wie in dem Beispiel 400 gezeigt, beinhaltet das kontextcodierte Modell
402 Tageszeit und Standort als zusätzliche Kontextdaten
122. Beispielsweise kann jede Zelle des Modells
402 wie in Gleichung (6) gezeigt definiert werden:
wobei
- i einen Kontakt angibt;
- WT-TZ eine Wochentag/Tageszeit-Partition angibt; und
- Standort einen Anrufstandort angibt.
-
In einigen Beispielen kann der Anrufstandort ein Standort des Fahrzeugs sein, wenn der Anruf in ein Fahrzeug für Anrufe eintritt, die vor dem Eintritt in den Fahrzeugkontext gestartet werden. Zusätzlich dazu kann ein oder ein aggregiertes (gewichtsgemitteltes) β verwendet werden, um die Unsicherheit während der Vorhersagephase anzugehen. Einige beispielhafte Arten der Informationsaggregation beinhalten die Verwendung von Informationen, die der Nähe in Bezug auf Kontexte (d. h. WT-TZ und Standort) oder historische Werte von Verwendungen zugehörig sind.
-
Ein weiteres potenzielles Kontextelement, das einbezogen werden kann, kann das Lernen der Benutzerakzeptanz sein. Zu diesem Zweck kann ein zusätzlicher Parameter auf der Schlussfolgerungsebene und/oder auf der codierten Informationsebene des Modells 402 festgelegt werden. Der Lernmechanismus kann dem aus den Gleichungen (1), (4) oder (5) ähnlich sein, wobei die Akzeptanz so definiert ist, dass der vorgeschlagene Kontakt 112 innerhalb eines vordefinierten Zeitraums verwendet wird, und die Ablehnung so definiert ist, dass der vorgeschlagene Kontakt 112 innerhalb des vordefinierten Zeitraums nicht verwendet wird Die Verwendung des Kontakts 112 kann anhand einzelner Schlussfolgerungen gesteuert werden. Zusätzlich dazu kann auch gemäß dem aktuellen Kontext gesteuert werden, ob der Benutzer zur Anzeige der vorhergesagten Anrufliste 124 aufgefordert werden soll oder nicht.
-
5 veranschaulicht ein Beispiel für einen Prozess 500 zum Lernen von Werten für das kontextcodierte Modell 402. In einem Beispiel kann der Prozess 500 durch die Anrufvorhersageanwendung 116 durchgeführt werden, die durch den Prozessor 102 gemäß den Anrufdaten 114 ausgeführt wird.
-
Bei Vorgang 502 empfängt der Prozessor 102 Anrufdaten 114. Die Anrufdaten 114 können Informationen, wie etwa Kontaktinformationen 112, Tag/Uhrzeit der Anrufinitialisierung, Anrufdauer beinhalten und ob der Anruf eingehend oder ausgehend war. Die Anrufdaten 114 können ferner Kontextdaten 122, wie etwa Tag/Uhrzeit des Einschaltens, Standortinformationen, MAC-Adresse oder eine andere Kennung der Netzwerkvorrichtung 120, Kopplungsstatus der Netzwerkvorrichtung 120 mit einem Fahrzeug oder einer anderen Vorrichtung, Schlüsselhandsenderinformationen für ein Fahrzeug, wenn der Anruf in einem Fahrzeug stattfand, Fahrzeugsignale, wenn der Anruf in einem Fahrzeug stattfand (z. B. Fahrzeuggang, Geschwindigkeit, Türstatus, Sicherheitsgurtstatus usw.), Straßenklasse oder Straßentyp usw. beinhalten.
-
Der Prozessor 102 reinigt die Anrufdaten 114 bei 504. In einem Beispiel kann der Prozessor 102 die Anrufe in den Anrufdaten 114 nach der Dauer filtern, ob der Anruf die Teilnehmer erfolgreich verbunden hat, ob der Anruf eingehend oder ausgehend war oder nach anderen relevanten Kriterien. Beispielsweise können nur erfolgreich abgeschlossene Anrufe verwendet und Anrufversuche herausgefiltert werden. Oder es können Anrufe unter einer Mindestdauer ausgeschlossen werden. Es ist anzumerken, dass dies lediglich Beispiele sind und verschiedene Reinigungstechniken für Anrufdaten 114 verwendet werden können.
-
Bei 506 verarbeitet der Prozessor 102 die Anrufdaten 114 in ein kontextcodiertes Modell 402. In einem Beispiel erzeugt der Prozessor 102 eine neue Kennung für einen Kontakt 112, der durch einen Anruf in den Anrufdaten 114 spezifiziert ist, wenn der Kontakt 112 nicht bereits in einer Datenbank der letzten Anrufe referenziert ist. Der Prozessor 102 kann ferner den/die WT/TZ mit einem bestehenden WT/TZ-Cluster/Raster des kontextcodierten Modells 402 abgleichen oder kann einen neuen Cluster/ein neues Raster erstellen, falls noch nicht vorhanden. Der Prozessor 102 kann auch den Standort des Anrufs mit einem vorhandenen Standortcluster/-raster abgleichen und kann bei Bedarf einen neuen Cluster erstellen. Der Prozessor 102 kann optional zudem Datensätze von mehreren Anrufen an denselben Kontakt 112 in einem einzigen Cluster konsolidieren. Dementsprechend aktualisiert der Prozessor 102 die empfangenen und gefilterten Anrufdaten 114 in das kontextcodierte Modell 402.
-
Bei Vorgang 508 erzeugt oder aktualisiert der Prozessor 102 gelernte Parameter für das kontextcodierte Modell 402. In einem Beispiel kann der Prozessor 102 die Informationen des kontextcodierten Modells 402 verwenden, um die nächsten Male zum Anrufen jedes Kontakts 112 in dem kontextcodierten Modell 402 vorherzusagen, wie etwa unter Verwendung der/den vorstehend beschriebenen Gleichung (4) und Techniken. Der Prozessor 102 kann zudem den zuletzt getätigten Anruf an den Kontakt 112 i puffern. Nach Vorgang 508 endet der Prozess 500.
-
6 veranschaulicht ein weiteres Beispiel 600 für ein kontextcodiertes Modell 402 zur Verwendung beim Identifizieren einer vorhergesagten Anrufliste 124. Wie gezeigt, beinhaltet das Modell 402 beispielhafte Daten für drei unterschiedliche Kontakte 112 an einem Standort 3 und für die Zeitpartition (1). Diese Kontakte (A, B und C) können eine mittlere Zeit zwischen Anrufmessungen aufweisen, die wie gezeigt berechnet wurden. Für Kontakt A beträgt die MTBC beispielsweise 40 Stunden, für Kontakt B beträgt die MTBC 20 Stunden und für Kontakt C beträgt die MTBC 8 Stunden.
-
Es ist zu beachten, dass für die Dauer der Zeitpartition verschiedene Werte gewählt werden können. Als einige Möglichkeiten kann die Dauer von mindestens fünfzehn Minuten bis maximal einer Stunde oder vier Stunden als weiteres Beispiel eingestellt werden. Als ein weiterer Parameter, der variieren kann, kann ein Radius eines Clusterstandorts als eine Anzahl von Meilen definiert werden, wie etwa von einem Minimum von ¼ Meile bis zu einem Maximum von einer Meile oder vielleicht fünf Meilen. Oder die durch den Anrufteilnehmer zurückgelegte Entfernung kann ein Faktor sein. Bei einer Anrufdauer von vier Minuten kann die während des Anrufs zurückgelegte Entfernung bei 45 Meilen pro Stunde drei Meilen betragen, während bei 70 Meilen pro Stunde die während des Anrufs zurückgelegte Entfernung 4,66 Meilen betragen kann.
-
Im Laufe der Zeit können selten verwendete kontextcodierte Modelle 402 (oder Teile des Modells 402) gelöscht werden. Beispielsweise kann ein Kontakt 112, der für einen vordefinierten Zeitraum nicht mehr angerufen wird, vollständig aus dem Modell 402 entfernt werden. Zu den Entfernungskriterien gehören unter anderem die mittlere Zeit zwischen Anrufen, die einen vordefinierten Wert überschreiten, die lange Anrufdauer seit dem letzten Anruf oder einzelne Datensätze ohne zweiten Anruf. Die Benutzerüberprüfung kann verwendet werden, um das Beschneiden der Modelle 402 zu unterstützen. Als eine andere Möglichkeit können ähnliche Modelle 402 konsolidiert werden, z. B. für Kontakte 112, die mit ähnlicher Häufigkeit und ähnlichem Kontext zueinander angerufen werden.
-
7 veranschaulicht einen beispielhaften Prozess 700 zum Vorhersagen des Anrufens von Kontakten 112, um die vorhergesagte Anrufliste 124 zu erzeugen. In einem Beispiel kann der Prozess 700 durch die Anrufvorhersageanwendung 116 durchgeführt werden, die durch den Prozessor 102 gemäß dem kontextcodierten Modell 402 ausgeführt wird.
-
Bei Vorgang 702 sammelt der Prozessor 102 Kontextdaten 122. In einem Beispiel kann der Prozessor 102 den/die aktuelle(n) WT/TZ bestimmen (z. B. unter Verwendung einer Uhr oder einer anderen Quelle von Zeitinformationen). In einem anderen Beispiel kann der Prozessor 102 den aktuellen Standort des Prozessors 102 bestimmen (z. B. unter Verwendung von GNSS oder einer anderen Quelle von Standortinformationen).
-
Bei 704 identifiziert der Prozessor 102 relevante Cluster des Modells 402 gemäß den gesammelten Kontextdaten 122. In einem Beispiel verwendet der Prozessor 102 den/die aktuelle(n) WT/TZ, um den/die nächstgelegenen WT/TZ-Cluster zu bestimmen. In einem anderen Beispiel verwendet der Prozessor 102 die aktuellen Standortinformationen, um den/die nächstgelegenen Standort-Cluster zu bestimmen.
-
Der Prozessor 102 identifiziert bei 706 Gewichtungen für die relevanten Cluster des Modells 402. In einem Beispiel kann der Prozessor 102 eine bestimmte Nähe des/der aktuellen Tages/Uhrzeit nutzen, um Gewichtungsfaktoren für relevante Tag-/Uhrzeit-Cluster zu bestimmen, die als WWT/TZ bezeichnet werden können, und kann die Nähe des aktuellen Standorts verwenden, um Gewichtungsfaktoren für relevante Standortcluster zu bestimmen, die als WStandort bezeichnet werden können.
-
8 veranschaulicht eine beispielhafte Bestimmung 800 der Nähe und der Gewichtungen. Wie gezeigt, erhalten Zeiten, die näher an dem Tag und der Uhrzeit des Elements der Cluster des Modells 402 liegen, eine höhere Gewichtung als diejenigen, die weiter von dem Tag und der Uhrzeit des Elements entfernt sind. Ebenso erhalten Standorte, die näher an dem Tag und der Uhrzeit des Elements der Cluster des Modells 402 liegen, eine höhere Gewichtung als diejenigen, die weiter von dem Standort des Elements entfernt sind.
-
Unter erneuter Bezugnahme auf 7 schätzt der Prozessor 102 bei Vorgang 708 die mittlere Zeit zwischen Anrufen für die relevanten Cluster. In einem Beispiel bestimmt der Prozessor 102 für jeden der Cluster ein β für den gegebenen Cluster von Tag/Uhrzeit- und Standortparameter. Der Prozessor 102 kann zudem für jeden der Kontakte 112 ein βi als gewichteten Durchschnitt des β für jeden relevanten Cluster für den Kontakt unter Verwendung der bei Vorgang 706 identifizierten Gewichtungen bestimmen.
-
Bei 710 bestimmt der Prozessor 102 die Wahrscheinlichkeiten des nächsten Anrufs jedes der Kontakte 112. In einem Beispiel berechnet der Prozessor 102 Xi = Taktuell - Ti und wandelt das Ergebnis in eine geeignete Einheit (z. B. Stunden) um. Der Prozessor 102 berechnet zudem Pi für jeden relevanten Kontakt 112, z.B. gemäß Gleichung (3). Diese Informationen können verwendet werden, um die vorhergesagte Anrufliste 124 als eine Liste der Kontakte 112 in absteigender Reihenfolge der Wahrscheinlichkeit zu erzeugen. Zum Beispiel kann die maximale Pj als der wahrscheinlichste nächste anzurufende Kontakt 112 identifiziert werden. Nach Vorgang 710 endet der Prozess 700.
-
Somit kann das Anrufverhalten des Benutzers gelernt und verwendet werden, um die nächsten anzurufenden Kontakte 112 basierend auf dem aktuellen Kontext vorherzusagen und einzustufen. Zusätzliche Kontextdaten 122, wie etwa Tag, Uhrzeit und Standort, können ebenfalls verwendet werden, sodass der aktuelle Kontext des Benutzers als Prädiktor dafür fungieren kann, welche Kontakte 112 mit größerer Wahrscheinlichkeit angerufen werden.
-
9 veranschaulicht ein Beispiel 900 für Schlussfolgerungs- und Merkmalsauswahl und Modellstrukturoptimierung. Wie gezeigt, können viele Variationen der beschriebenen Systeme und Verfahren verwendet werden. Beispielsweise können in Bezug auf die verschiedenen Schlussfolgerungen für das Anrufverhalten diese Schlussfolgerungen bei der Durchführung der Schätzung nacheinander oder parallel angewendet werden. Zusätzlich dazu können zusätzlich andere maschinelle Lern- oder Hybridverfahren in Bezug auf die Schätzphase verwendet werden.
-
Hinsichtlich des kontextcodierten Modells 402 können zusätzliche Kontextdaten 122 bei der Bestimmung der nächsten anzurufenden Kontakte 112 genutzt werden. Beispielsweise können zusätzliche Informationen in das kontextcodierte Modell 402 codiert werden. Dies kann als einige nicht einschränkende Beispiele Tag und Uhrzeit, Startort des Anrufs, Endposition des Anrufs, Routenkennung einer Route umfassen, die durch ein Fahrzeug einschließlich des Anrufers durchquert wird, unabhängig davon, ob der Anruf innerhalb oder außerhalb eines Fahrzeugs getätigt wurde, ob die Anrufvorrichtung mit dem Fahrzeug verbunden ist, und eine sekundäre Zeit in Bezug dazu beinhalten, wie weit von der Einleitung einer Route im Fahrzeug der Anruf eingeleitet wurde. Alternativ dazu ist es möglich, dass keine Informationscodierung verwendet wird.
-
Mit den vielen verfügbaren Variationen können individuelle oder personalisierte Modelle erstellt werden, die eine optimale Modellkonfiguration ermöglichen, welche Leistung, Robustheit und Einfachheit im Design des Modells in Einklang bringt. In Bezug auf die inkrementelle Modellverfeinerung können statistische Parameter durch Rekursionen aktualisiert werden, und die Leistung einzelner Schlussfolgerungen kann über die Zeit verfolgt werden sowie die Leistung zwischen Gesamt- und Situationsvarianten. Gemäß diesen einzelnen Schlussfolgerungen oder unter Verwendung paralleler Schlussfolgerungsaggregationen können Einstellungen der Einflussgewichtungen zwischen unterschiedlichen Schlussfolgerungen sowie Einstellungen der Einflussgewichtungen von Gesamt- gegenüber Situationsmodellen durchgeführt werden. Eine auf Sammelbewertung basierende Verfeinerung kann ebenfalls durchgeführt werden, wie etwa das Speichern eines gehashten goldenen Datensatzes, das Erstellen zusätzlicher Schlussfolgerungen basierend auf zusätzlichen Eingaben oder neu erworbenem Wissen oder verschiedene Konfigurationen von Aggregationen vom seriellen Typ der mehreren Schlussfolgerungen.
-
10 veranschaulicht ein Beispiel für die Berücksichtigung kreisförmiger Beziehungen zwischen Partitionen des kontextcodierten Modells 402. Beispielsweise kann das sich wiederholende Muster von Tageszeiten und Wochentagen, wie gezeigt, Beispiele für derartige kreisförmigen Beziehungen sein. Das kontextcodierte Modell 402 kann verbessert werden, um diese und andere Beispiele von Partitionen mit kreisförmigen Beziehungen anzugehen. Beispielsweise kann die Kreisbeziehung auf der Modellseite als Winkel oder Umdrehungsgrad dargestellt werden, sodass Werte und der Beginn und das Ende einer Umdrehung durch das Kreismuster durch das Modell als benachbart betrachtet werden. Für jeden Wochentag ist die Identifizierung von Nachbarn trivial, wenn eine derartige kreisförmige Beziehung besteht. Eine derartige Beziehung kann zur Unterstützung der Vorhersagephase genutzt werden, während der Informationen von benachbarten Partitionen dazu beitragen können, vernünftige Muster zu erzeugen.
-
11 veranschaulicht ein alternatives Beispiel 1100 für ein kontextcodiertes Modell 402 einschließlich zusätzlicher Kontextdaten 122. Wie gezeigt, beinhaltet das alternative beispielhafte kontextcodierte Modell 402 ferner den Startstandort (start location - SL), den Endstandort (end location - EL), unabhängig davon, ob der Anruf von dem Fahrzeug aus erfolgte oder nicht, und eine(n) Route/Standort für den Anruf. Darüber hinaus wird eine zusätzliche Berechnung in Bezug auf Zeit/Entfernung seit dem Einschalten ebenfalls bereitgestellt. Diese sekundäre Komponente kann die Unterscheidung zwischen Situationen ermöglichen, in denen ein Benutzer kurz nach dem Betreten eines Fahrzeugs anruft, im Vergleich zu Anrufen während einer Route. Das endgültige β kann als aggregiertes oder gewichtungsgemitteltes β dieser Ergebnisse berechnet werden.
-
In Bezug auf die zusätzlichen Informationen kann der Prozess
500 zum Lernen von Werten für das kontextcodierte Modell
402 eingestellt werden. Beispielsweise können die gelernten Parameter unter Verwendung der folgenden Gleichungen anstelle von Gleichung (4) erzeugt oder aktualisiert werden:
-
Zusätzlich dazu kann auch der Prozess 700 zum Vorhersagen der nächsten Kontakte 112 eingestellt werden. Beispielsweise kann der Prozessor 102 bei Vorgang 702 zusätzlich eine weitere Zeiteingabe als Taktuell= Aktuelle Uhrzeit + Δt bestimmen, wobei Δt eine Zeitspanne ab dem Start des Fahrzeugs (oder dem Zeitpunkt, zu dem der Benutzer in einem anderen Beispiel in das Fahrzeug einsteigt) ist. Zusätzlich kann der Prozessor 102 bei Vorgang 708 βBC und auch βKO für jeden relevanten Kontakt 112 schätzen. Bei Vorgang 710 kann der Prozessor 102 PBC,i und PKO,i für jeden relevanten Kontakt 112 berechnen, z. B. gemäß den Gleichungen (5), wobei PBC,i und PKO,i um ein Maximum von WWT/TZ und WStandort skaliert werden können. Das Maximum von PBC,i unter Verwendung von PKO,i als Tiebreaker, kann dann verwendet werden, um den Kontakt 112 zu identifizieren, der wahrscheinlichen als Nächstes angerufen wird.
-
Es können noch weitere Verbesserungen an den beschriebenen Systemen und Verfahren durchgeführt werden. Beispielsweise können in Bezug auf die Musterextraktion zusätzliche Aspekte berücksichtigt werden, wie etwa die Zeit zwischen Anrufen (insgesamt vs. bedingt); relative Häufigkeiten von Anrufen (insgesamt vs. bedingt); andere Attribute, wie etwa Anrufdauer (insgesamt vs. bedingt); Muster bezüglich Arbeit vs. Freizeit; und fahrzeuginterne vs. genetische, normale oder fahrzeugexterne Muster.
-
Ereignisse und Erinnerungen können auch bei der Bestimmung der vorgeschlagenen Kontakte 112, die angerufen werden sollen, berücksichtigt werden. Zum Beispiel können wiederkehrende Ereignisse von Bedeutung im Zusammenhang mit Anrufen beinhaltet sein, wie etwa das Erinnern des Benutzers, den Mutterkontakt 112 am Muttertag anzurufen, oder das Erinnern des Benutzers an Rückrufe (z. B. extrahiert aus dem Nachrichteninhalt einer Voicemail, wie etwa einer Aussage in einer Voicemail, in welcher der Benutzer aufgefordert wird, die Person während der Freizeit oder während einer bestimmten Zeit zurückzurufen).
-
Schlussfolgerungen zu dem Fahrzeugsystemzustand und Informationen zum Fahrzeugzustand können ebenfalls berücksichtigt werden. Beispielsweise kann ein plötzlicher Systemfehler, wie etwa ein platter Reifen, andere Anrufempfehlungen außer Kraft setzen, um stattdessen zu veranlassen, dass das System einen Kontakt 112 für ein nächstgelegenes Geschäft, einen nächstgelegenen Händler oder einen nächstgelegenen Straßen-/Notfallassistenten bereitstellt. Als weiteres Beispiel kann eine Rückrufbenachrichtigung oder ein signifikanter Diagnosefehlercode (DTC) eine Übersteuerung für das System verursachen, um einen Kontakt 112 für einen lokales Händler zu empfehlen.
-
Es sind noch weitere Verbesserungen möglich. Beispielsweise kann das System einen Vorhersagemechanismus nutzen, um Gewichtungen für die verschiedenen Schlussfolgerungen anhand verschiedener Muster, die in den Anrufdaten 114 beobachtet werden, adaptiv einzustellen. Oder das System kann sich dafür entscheiden, Nummern von Kontakten 112 herauszufiltern, wenn sie sich in der Nähe voneinander befinden (z. B. um zu vermeiden, dass mehrere Versuche, eine einzelne Person zu erreichen, überzählt werden).
-
Es ist zudem anzumerken, dass die beschriebenen Systeme und Verfahren Daten und Prozessoren beinhalten können, die in der Cloud gespeichert sind, wobei die Anrufdaten 114 und die Bestimmung der nächsten Kontakte 112 zwischen Verarbeitungsvorrichtungen, welche die nächsten Kontakte 112 bestimmen, und Anrufvorrichtungen, welche die wahrscheinlich nächsten Kontakte 112 anrufen, synchronisiert werden können.
-
Während sich das System in vielen Beispielen auf Anrufe bezieht, ist anzumerken, dass die beschriebenen Systeme und Verfahren auch auf andere Kommunikationsformen anwendbar sein können, wie etwa Textnachrichten, Nachrichten in sozialen Medien und so weiter. In einem Beispiel kann der Algorithmus die Verwendung von Telefon- und Textübertragungen von derselben Nummer austauschbar bestimmen. Das System kann zusätzlich dazu im Fall der Vorhersage eines Kontextes zum Schreiben einer Kurznachricht anbieten, eine Textnachricht an einen Kontakt 112 zu senden, von dem angegeben ist, dass er der Kontakt 112 ist, dem am wahrscheinlichsten eine Kurznachricht geschrieben wird. Beispielsweise kann eine Benutzerschnittstelle Optionen bereitstellen, um einen Text an den wahrscheinlichen Kontakt 112 zu übertragen.
-
Es ist zudem anzumerken, dass in einigen Fällen ein Kontakt 112 mehrere unterschiedliche Telefonnummern oder andere Kennungen aufweisen kann. Beispielsweise kann ein Kontakt 112 über ein Haustelefon, ein Bürotelefon, ein Mobiltelefon und mehrere Nachrichtenanwendungen verfügen. In einem derartigen Beispiel kann der Algorithmus diese Adressen als denselben Kontakt 112 behandeln. Oder als eine andere Möglichkeit kann der Algorithmus einen Vektor dieser Adressen für einen bestimmten Kontakt 112 verarbeiten, um eine geeignete Adresse zu bestimmen, die verwendet werden soll, um den Kontakt 112 zu erreichen, z. B. basierend auf Tag, Uhrzeit oder einem anderen Kontext. Beispielsweise kann eine Gewichtung berechnet und als Funktion der Kommunikationsaktivität eines Elements in dem Vektor auf den Vektor angewendet werden.
-
Als eine andere Möglichkeit kann ein Vorhersagealgorithmus die Kontaktinformationen des aktiven Radiosenders verwenden, um eine vorhergesagte Wahrscheinlichkeit einer gewünschten Kontaktnummer zu erzeugen. Beispielsweise kann der Vorhersagealgorithmus eine Vielzahl von Elementen von Kontextinformationen verwenden, wie etwa einen im Fahrzeug gehörten Radiosender, Zustandsinformationen des Fahrzeugs, eine aktuelle Zeit, einen aktuellen Standort, ausgewählte Kontakte. Zusätzlich dazu kann der Inhalt von Textnachrichten verwendet werden, um eine Wahrscheinlichkeit des gewünschten Textes zum Ausfüllen einer vorgeschlagenen Textnachricht an einen wahrscheinlichen Kontakt 112 vorherzusagen, dem als Nächstes eine Nachricht gesendet werden soll.
-
Die in dieser Schrift offenbarten Prozesse, Verfahren oder Algorithmen können einer Verarbeitungsvorrichtung, einer Steuerung oder einem Computer zuführbar sein/davon angewendet werden, die/der eine existierende programmierbare elektronische Steuerungseinheit oder eine spezielle elektronische Steuereinheit beinhalten kann. Ebenso können die Prozesse, Verfahren oder Algorithmen als Daten und Anweisungen gespeichert sein, die von einer Steuerung oder einem Computer in vielen Formen, einschließlich unter anderem Informationen, die permanent in nicht beschreibbaren Speichermedien wie ROM-Vorrichtungen gespeichert sind, und Informationen, die veränderbar in beschreibbaren Speichermedien wie Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und sonstigen magnetischen und optischen Medien gespeichert sind, ausführbar sind. Die Prozesse, Verfahren und Algorithmen können auch in einem mit Software ausführbaren Objekt umgesetzt sein. Alternativ können die Prozesse, Verfahren oder Algorithmen ganz oder teilweise unter Verwendung geeigneter Hardwarekomponenten verkörpert sein, wozu etwa anwendungsspezifische integrierte Schaltungen (ASIC), feldprogrammierbare Gate-Anordnungen (FPGA), Zustandsmaschinen, Steuerungen oder sonstige Hardwarekomponenten oder Vorrichtungen oder eine Kombination aus Hardware-, Software- und Firmware-Komponenten zählen.
-
Wenngleich vorstehend beispielhafte Ausführungsformen beschrieben sind, sollen diese Ausführungsformen nicht alle möglichen Formen beschreiben, die durch die Patentansprüche eingeschlossen werden. Die in der Beschreibung verwendeten Ausdrücke sind vielmehr beschreibende Ausdrücke als einschränkende Ausdrücke, und es versteht sich, dass verschiedene Änderungen vorgenommen werden können, ohne von dem Geist und Umfang der Offenbarung abzuweichen. Wie zuvor beschrieben, können die Merkmale verschiedener Ausführungsformen miteinander kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden, die unter Umständen nicht ausdrücklich beschrieben oder veranschaulicht sind. Wenngleich verschiedene Ausführungsformen so beschrieben sein können, dass sie Vorteile bereitstellen oder gegenüber anderen Ausführungsformen oder Umsetzungen des Stands der Technik in Bezug auf eine oder mehrere erwünschte Eigenschaften bevorzugt sind, wird ein Durchschnittsfachmann erkennen, dass ein oder mehrere Merkmale oder eine oder mehrere Eigenschaften in Frage gestellt werden können, um die gewünschten Gesamtattribute des Systems zu erzielen, welche von der konkreten Anwendung und Umsetzung abhängig sind. Zu diesen Attributen können unter anderem Kosten, Festigkeit, Haltbarkeit, Kosten über die Lebensdauer hinweg, Marktgängigkeit, Erscheinungsbild, Verpackung, Größe, Wartbarkeit, Gewicht, Herstellbarkeit, Einfachheit der Montage usw. gehören. Soweit also Ausführungsformen in Bezug auf eine oder mehrere Eigenschaften als weniger wünschenswert als andere Ausführungsformen oder Umsetzungen des Stands der Technik beschrieben werden, liegen diese Ausführungsformen doch nicht außerhalb des Schutzumfangs der Offenbarung und können für bestimmte Anwendungen wünschenswert sein.
-
Gemäß der vorliegenden Erfindung ist eine Anrufvorhersagevorrichtung bereitgestellt, aufweisend: einen Speicher, der dazu konfiguriert ist, Datensätze von Telefonanrufen an eine Vielzahl von Kontakten zu speichern; und einen Prozessor, der dazu programmiert ist, Wahrscheinlichkeiten für das Anrufen jedes der Vielzahl von Kontakten gemäß aktuellen Kontextinformationen für einen Anrufer und Anrufschlussfolgerungen bestimmt, die aus Clustern eines kontextcodierten Modells ermittelt wurden, das aus den Anrufdatensätzen erstellt wurde, wobei jeder Cluster einer eindeutigen Kombination aus Wertebereichen der Kontextinformationen entspricht; und den Kontakt, der am wahrscheinlichsten als Nächstes angerufen wird, als den einen der Vielzahl von Kontakten mit einer höchsten der Wahrscheinlichkeiten zu identifizieren.
-
Gemäß einer Ausführungsform beinhalten die Anrufschlussfolgerungen eine oder mehrere der Folgenden: geschätzte mittlere Zeit zwischen Anrufen in den Anrufdatensätzen, relative Häufigkeit von Anrufen in den Anrufdatensätzen, Anzahl der Anrufe in den Anrufdatensätzen oder Dauer von Anrufen in den Anrufdatensätzen.
-
Gemäß einer Ausführungsform umfassen die Kontextinformationen Tag, Uhrzeit und Standort.
-
Gemäß einer Ausführungsform ist der Prozessor ferner dazu programmiert, die Relevanz der aktuellen Kontextinformationen für die Cluster gemäß dem Tag, der Uhrzeit und dem Standort zu bestimmen, die jedem der Cluster entsprechen, sodass, je näher der Tag, die Uhrzeit und der Standort, die einem Cluster entsprechen, bei den aktuellen Kontextinformationen hinsichtlich Tag, Uhrzeit und Standort liegen, diesen Clustern eine größere Gewichtung hinsichtlich der Relevanz bei der Bestimmung der Wahrscheinlichkeit des Anrufens von Kontakten gegeben wird.
-
Gemäß einer Ausführungsform beinhalten die Kontextinformationen ferner einen Startstandort einer Route und einen Endstandort der Route.
-
Gemäß einer Ausführungsform ist der Prozessor ferner dazu programmiert, gelernte Parameter des kontextcodierten Modells gemäß einer Häufigkeitsschätzung bezüglich dessen, wie oft ein jeweiliger Kontakt gemäß den Anrufdatensätzen angerufen wurde, in Bezug auf die eindeutige Kombination aus Wertebereichen der Kontextinformationen des jeweiligen Clusters zu aktualisieren.
-
Gemäß einer Ausführungsform ist der Prozessor ferner dazu programmiert, einen Vergessensfaktor auf die Häufigkeitsschätzung anzuwenden, sodass Anrufe der Anrufdatensätze, die in älterer Zeit getätigt wurden, die Häufigkeitsschätzung weniger beeinflussen als Anrufe der Anrufdatensätze, die in jüngerer Zeit getätigt wurden.
-
Gemäß einer Ausführungsform ist der Prozessor ferner dazu programmiert, die gelernten Parameter zu aktualisieren, wenn zusätzliche Anrufdatensätze zu den gespeicherten Anrufdatensätzen hinzugefügt werden.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch eine Anzeige, wobei der Prozessor ferner dazu programmiert ist, der Anzeige eine Anrufliste auszugeben, die einen oder mehrere Kontakte beinhaltet, der/die als derjenige/diejenigen identifiziert wurden, die am wahrscheinlich als Nächstes angerufen werden.
-
Gemäß einer Ausführungsform ist der Prozessor ferner dazu programmiert, die Anrufliste in absteigender Reihenfolge der Wahrscheinlichkeit des Anrufs anzuzeigen, wobei der Kontakt mit der höchsten der Wahrscheinlichkeiten zuerst aufgeführt wird.
-
Gemäß einer Ausführungsform ist der Prozessor ferner dazu programmiert, eine zweite Wahrscheinlichkeit zu nutzen, die unter Verwendung eines zweiten kontextcodierten Modells bestimmt wird, das mit einer Zeit seit dem Beginn einer Route in einem Fahrzeug als Tiebreaker verknüpft ist, wenn zwei Kontakte die gleiche bestimmte Wahrscheinlichkeit aufweisen, angerufen zu werden.
-
Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren: das Aktualisieren von Parametern von Clustern eines kontextcodierten Modells gemäß einer Häufigkeitsschätzung eines Aspekts von Anrufen an Kontakte in Bezug auf eindeutige Kombinationen von Kontextdaten von Anrufen, die mit den jeweiligen Clustern übereinstimmen; das Gewichten der Cluster nach Relevanz der eindeutigen Kombinationen von Kontextdaten für aktuelle Kontextinformationen; und das Bestimmen der Wahrscheinlichkeiten des Anrufens von einzelnen Kontakten gemäß den aktuellen Kontextinformationen und einer oder mehreren Schlussfolgerungen zwischen Anrufen, die aus den Clustern als gewichtet bestimmt wurden.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Bereitstellen einer Angabe eines Kontakts aus den Kontakten, der gemäß den bestimmten Wahrscheinlichkeiten am wahrscheinlichsten als nächstes angerufen wird.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Anzeigen einer Liste von Kontakten in absteigender Reihenfolge der Wahrscheinlichkeit des Anrufs, wobei der Kontakt mit der höchsten der Wahrscheinlichkeiten zuerst aufgeführt wird.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Nutzen einer zweiten Wahrscheinlichkeit, die unter Verwendung eines zweiten kontextcodierten Modells bestimmt wird, das mit der Zeit seit dem Beginn einer Route in einem Fahrzeug als Tiebreaker für die Wahrscheinlichkeiten dafür, ein wahrscheinlich nächster Anruf zu sein, verknüpft ist.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch: das Aktualisieren gelernter Parameter des kontextcodierten Modells gemäß einer Häufigkeitsschätzung bezüglich dessen, wie oft ein jeweiliger Kontakt angerufen wurde, gemäß gespeicherter Anrufdatensätze in Bezug auf die eindeutige Kombination von Wertebereichen der Kontextinformationen des jeweiligen Clusters; und das Anwenden eines Vergessensfaktors auf die Häufigkeitsschätzung, sodass Anrufe der Anrufdatensätze, die in älterer Zeit getätigt wurden, niedriger bewertet werden als Anrufe der Anrufdatensätze, die in jüngerer Zeit getätigt wurden.
-
Gemäß der vorliegenden Erfindung ist ein nichttransitorisches computerlesbares Medium bereitgestellt, aufweisend Anweisungen, die bei Ausführung durch eine Rechenvorrichtung die Rechenvorrichtung zu Folgendem veranlassen: Aktualisieren von Parametern von Clustern eines kontextcodierten Modells gemäß einer Häufigkeitsschätzung eines Aspekts von Anrufen an Kontakte in Bezug auf eindeutige Kombinationen von Kontextdaten von Anrufen, die mit den jeweiligen Clustern übereinstimmen; Gewichten der Cluster nach Relevanz der eindeutigen Kombinationen von Kontextdaten für aktuelle Kontextinformationen; und Bestimmen von Wahrscheinlichkeiten des Anrufens von Kontakten gemäß den aktuellen Kontextinformationen und einer oder mehreren Schlussfolgerungen zwischen Anrufen, die aus den Clustern als gewichtet bestimmt wurden.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch eines oder mehrere von Folgenden: das Bereitstellen eines Kontakts aus den Kontakten, die am wahrscheinlichsten als Nächstes angerufen werden; und das Anzeigen einer Liste von Kontakten in absteigender Reihenfolge der Wahrscheinlichkeit, wobei der Kontakt mit der höchsten der Wahrscheinlichkeiten zuerst aufgeführt wird.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Nutzen einer zweiten Wahrscheinlichkeit, die unter Verwendung eines zweiten kontextcodierten Modells bestimmt wird, das mit der Zeit seit dem Beginn einer Route in einem Fahrzeug als Tiebreaker für die Wahrscheinlichkeiten dafür, ein wahrscheinlich nächster Anruf zu sein, verknüpft ist.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch: das Aktualisieren gelernter Parameter des kontextcodierten Modells gemäß einer Häufigkeitsschätzung bezüglich dessen, wie oft ein jeweiliger Kontakt angerufen wurde, gemäß gespeicherter Anrufdatensätze in Bezug auf die eindeutige Kombination von Wertebereichen der Kontextinformationen des jeweiligen Clusters; und das Anwenden eines Vergessensfaktors auf die Häufigkeitsschätzung, sodass Anrufe der Anrufdatensätze, die in älterer Zeit getätigt wurden, niedriger bewertet werden als Anrufe der Anrufdatensätze, die in jüngerer Zeit getätigt wurden.