DE112021006069T5 - Priorisierte anwendungsaktualisierungen - Google Patents

Priorisierte anwendungsaktualisierungen Download PDF

Info

Publication number
DE112021006069T5
DE112021006069T5 DE112021006069.4T DE112021006069T DE112021006069T5 DE 112021006069 T5 DE112021006069 T5 DE 112021006069T5 DE 112021006069 T DE112021006069 T DE 112021006069T DE 112021006069 T5 DE112021006069 T5 DE 112021006069T5
Authority
DE
Germany
Prior art keywords
application
update
computing device
applications
machine learning
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.)
Pending
Application number
DE112021006069.4T
Other languages
English (en)
Inventor
Haifeng Ji
Zhiwei Gu
Jing Zhao
Vitor Baccetti Garcia
Alexey Semenov
Apeksha Singhal
Scott Williams
Yudi Wu
Jiahui Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE112021006069T5 publication Critical patent/DE112021006069T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Computersystem kann eine Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehreren auf einem Computergerät installierte(n) Anwendung(en) empfangen. Das Computersystem ermittelt basierend auf der Anforderung von Anwendungsaktualisierungsinformationen eine Menge von zu aktualisierenden Anwendungen und wendet ein Maschinenlernmodell zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen an. Das Computersystem sendet eine Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen an das Computergerät. In Reaktion auf das Empfangen der Aktualisierungsanforderung von dem Computergerät, leitet das Computersystem die Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen ein.

Description

  • HINTERGRUND
  • Computergeräte wie z. B. das Mobiltelefon haben sich in den letzten Jahren stark ausgebreitet. Diese Geräte können mit Prozessoren, Speicher und der Fähigkeit ausgestattet sein, über lokale und Weitverkehrsnetze, einschließlich des Internets, zu kommunizieren. Diese Geräte können mit Betriebssystemen ausgestattet sein, die den Geräten die Ausführung einer Vielzahl von Computerprogrammen und Softwareanwendungen, normalerweise „Apps“ genannt, ermöglichen. Der Benutzer eines Computergeräts kann Anwendungen durch direkte Kommunikation mit einem Computersystem (z. B. einem Server, der einen App-Store hostet) über ein Mobilfunknetz oder ein drahtloses lokales Netzwerk herunterladen und installieren. Entwickler dieser Anwendungen aktualisieren die Anwendungen regelmäßig und geben die aktualisierte Version der Anwendung an das Computersystem weiter, um die aktualisierte Version der Anwendung zur Installation durch die Computergeräte bereitzustellen. Aufgrund der Anzahl an Anwendungsaktualisierungen, die möglicherweise installiert werden müssen, kann die Verwaltung von Anwendungsaktualisierungen für einen Benutzer jedoch schwierig sein.
  • KURZDARSTELLUNG
  • Es werden Techniken beschrieben, mit denen ein Computersystem und ein Computergerät arbeiten können, um die Installation von Aktualisierungen für eine Menge von auf dem Computergerät installierten Anwendungen zu priorisieren. Im Allgemeinen können Benutzer der Computergeräte Anwendungsaktualisierungen verwalten, indem sie die Anwendungsaktualisierungen manuell herunterladen oder sich dafür entscheiden, dass die Anwendungsaktualisierungen automatisch auf die Computergeräte übertragen werden, sobald die Anwendungsaktualisierungen verfügbar sind („Auto-Aktualisierungen“). Während automatische Aktualisierungen die Installation von Anwendungsaktualisierungen ohne Benutzerinteraktion durch den Benutzer ermöglichen, können automatische Aktualisierungen, die alle Anwendungen in Bezug auf die Aktualisierungspriorität gleich behandeln, aus verschiedenen Gründen dazu führen, dass Anwendungen, die für den Benutzer relativ unwichtig sind, aktualisiert werden (z. B. eine erfolgreiche Installation) und Anwendungen, die relativ wichtig sind (z. B. eine erfolglose Installation), nicht aktualisiert werden.
  • Anstatt Anwendungsaktualisierungen automatisch zu installieren, ohne eine Priorisierung der Anwendungsaktualisierung vorzunehmen, ermöglichen die Techniken dieser Offenbarung dem Computergerät, Anwendungsaktualisierungen zu identifizieren, die eine höhere Wahrscheinlichkeit für eine erfolgreiche Installation haben, und gleichzeitig Aktualisierungen für Anwendungen zu priorisieren, die der Benutzer am häufigsten verwendet. Im Allgemeinen kann ein Computergerät und/oder ein Cloud-Computing-System ein Maschinenlernmodell auf einen oder mehrere Anwendungsnutzungsverläufe, Anwendungsaktualisierungs-Installationsverläufe, Netzwerkeinstellungen für automatische Aktualisierungen und dergleichen anwenden, um Aktualisierungsprioritätsbewertungen für eine Menge von Anwendungsaktualisierungen zu ermitteln. Das Computergerät und/oder das Cloud-Computing-System kann die Anwendungsaktualisierungen basierend auf den Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen priorisieren (z. B. einstufen). Unter Nutzung dieser Einstufung der Anwendungsaktualisierung kann das Computergerät das Herunterladen und Installieren von zumindest einer der am höchsten eingestuften Anwendungsaktualisierungen priorisieren.
  • Auf diese Weise können verschiedene Aspekte der Techniken das Computergerät in die Lage versetzen, Anwendungsaktualisierungen zu identifizieren, die eine höhere Wahrscheinlichkeit einer erfolgreichen Installation haben und die für den Benutzer von größerer Bedeutung sind. Durch diese Priorisierung der Aktualisierungen kann die Anzahl an fehlgeschlagenen Installationen von Anwendungsaktualisierungen reduziert werden, was wiederum den Bandbreiten-, Prozessor- und Energieverbrauch des Geräts verringern kann. Ferner können durch die Priorisierung von Anwendungsaktualisierungen für die Anwendungen, an denen der Benutzer des Computergeräts am meisten interessiert ist und/oder die er häufiger nutzt, Anwendungsaktualisierungen für relativ unwichtige Anwendungen nicht oder weniger häufig heruntergeladen werden (z. B. aufgrund ihrer geringeren Priorität), wodurch auch die Bandbreitennutzung (z. B. durch das Nichtherunterladen unerwünschter Anwendungsaktualisierungen) und die CPU-Auslastung (z. B. durch die Priorisierung von Aktualisierungen, die mit größerer Wahrscheinlichkeit erfolgreich installiert werden, was zu weniger fehlgeschlagenen Installationen führt) verringert werden kann. Darüber hinaus kann die Priorisierung von Aktualisierungen für Anwendungen, die der Benutzer häufig verwendet, dazu beitragen, Abstürze oder andere Fehler in solchen Anwendungen zu vermeiden.
  • In einigen Beispielen beinhaltet ein Verfahren das Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen durch ein Computersystem und von einem Computergerät, das Ermitteln einer Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist, und das Anwenden eines Maschinenlernmodells durch das Computersystem zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen. Das Verfahren kann ferner das Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen durch das Computersystem und an das Computergerät, das Empfangen einer Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen durch das Computersystem und von dem Computergerät, wobei die zumindest eine Anwendung aus der Menge von Anwendungen von dem Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird, und, in Reaktion auf das Empfangen der Aktualisierungsanforderung, das Einleiten der Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen durch das Computersystem beinhalten.
  • In einigen Beispielen beinhaltet ein Computersystem einen Speicher und einen oder mehrere Prozessoren. Der eine oder die mehreren Prozessoren können zum Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen von einem Computergerät, zum Ermitteln einer Menge von zu aktualisierenden Anwendungen basierend auf der Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist, und zum Anwenden eines Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen konfiguriert sein. Der eine oder die mehreren Prozessoren können ferner zum Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen an das Computergerät, zum Empfangen einer Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen von dem Computergerät, wobei die zumindest eine Anwendung aus der Menge von Anwendungen von dem Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird, und in Reaktion auf das Empfangen der Aktualisierungsanforderung zum Einleiten der Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen konfiguriert sein.
  • In einigen Beispielen ist ein nichtflüchtiges computerlesbares Speichermedium mit Anweisungen kodiert, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren zum Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen von einem Computergerät, zum Ermitteln einer Menge von zu aktualisierenden Anwendungen basierend auf der Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist, und zum Anwenden eines Maschinenlernmodells, um eine jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen zu ermitteln, veranlassen. Die Anweisungen können den einen oder die mehreren Prozessoren ferner zum Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen an das Computergerät, zum Empfangen einer Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen von dem Computergerät, wobei die zumindest eine Anwendung aus der Menge von Anwendungen von dem Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird, und in Reaktion auf das Empfangen der Aktualisierungsanforderung zum Einleiten der Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen veranlassen.
  • In einigen Beispielen beinhaltet ein Verfahren das Senden einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen durch ein Computergerät und an ein Computersystem, das Empfangen einer Angabe einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen mit einer entsprechenden anstehenden Aktualisierung durch das Computergerät und von dem Computersystem, wobei jede jeweilige Aktualisierungsprioritätsbewertung durch das Computersystem durch zumindest das Anwenden eines Maschinenlernmodells auf jede Anwendung der Menge von Anwendungen mit der entsprechenden anstehenden Aktualisierung ermittelt wird und durch das Computergerät und basierend auf den jeweiligen Aktualisierungsprioritätseinstufungen zumindest eine entsprechende anstehende Aktualisierung ausgewählt wird, die von dem Computersystem anzufordern ist. Das Verfahren kann auch das Senden einer Aktualisierungsanforderung für die zumindest eine entsprechende ausstehende Aktualisierung durch das Computergerät und an das Computersystem, und in Reaktion auf das Empfangen der zumindest einen entsprechenden ausstehenden Aktualisierung durch das Computergerät und von dem Computersystem, das Installieren der zumindest einen entsprechenden ausstehenden Aktualisierung durch das Computergerät beinhalten.
  • In einigen Beispielen beinhaltet ein Gerät Mittel zum Senden einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen an ein Computergerät, Mittel zum Empfangen einer Angabe einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen mit einer entsprechenden anstehenden Aktualisierung von dem Computersystem, wobei jede jeweilige Aktualisierungsprioritätsbewertung durch das Computersystem durch zumindest das Anwenden eines Maschinenlernmodells auf jede Anwendung der Menge von Anwendungen mit der entsprechenden anstehenden Aktualisierung ermittelt wird, und Mittel zum Auswählen, basierend auf den jeweiligen Aktualisierungsprioritätseinstufungen zumindest einer entsprechenden anstehenden Aktualisierung, die von dem Computersystem anzufordern ist. Das Gerät kann auch Mittel zum Senden einer Aktualisierungsanforderung für die zumindest eine entsprechende ausstehende Aktualisierung an das Computersystem, und, in Reaktion auf das Empfangen der zumindest einen entsprechenden ausstehenden Aktualisierung durch das Computersystem, Mittel zum Installieren der zumindest einen entsprechenden ausstehenden Aktualisierung beinhalten.
  • In einigen Beispielen beinhaltet ein Verfahren das Ermitteln, durch ein Computersystem, der Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem ersten Computergerät installiert sind und basierend auf einer jeweiligen ersten Aktualisierungsprioritätsbewertung für jede Anwendung, die von dem ersten Maschinenlernmodell erzeugt wurde, priorisiert wurden, das Ermitteln, durch das Computersystem, einer Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem zweiten Computergerät installiert sind, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede Anwendung, die durch das zweite Maschinenlernmodell erzeugt wurde, priorisiert wurden, und das Auswählen, durch das Computersystem und basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines effektiveren der ersten und zweiten Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlemmodell zu nutzen ist.
  • In einigen Beispielen beinhaltet ein Computergerät einen Speicher, der ein oder mehrere Module speichert, und einen oder mehrere Prozessoren. Der eine oder die mehreren Prozessoren führen das eine oder die mehreren Module zum Ermitteln einer Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem ersten Computergerät installiert sind und basierend auf einer jeweiligen ersten Aktualisierungsprioritätsbewertung für jede durch das erste Maschinenlernmodell erzeugte Anwendung priorisiert wurden, zum Ermitteln der Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem zweiten Computergerät installiert sind und basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede durch das zweite Maschinenlernmodell erzeugte Anwendung priorisiert wurden, und zum Auswählen, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines der effektiveren Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu nutzen ist, aus.
  • In einigen Beispielen veranlasst ein nichtflüchtiges computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren veranlassen zum Ermitteln einer Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem ersten Computergerät installiert sind und basierend auf einer jeweiligen ersten Aktualisierungsprioritätsbewertung für jede durch das erste Maschinenlernmodell erzeugte Anwendung priorisiert wurden, zum Ermitteln der Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem zweiten Computergerät installiert sind und basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede durch das zweite Maschinenlernmodell erzeugte Anwendung priorisiert wurden, und zum Auswählen, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines der effektiveren Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu nutzen ist.
  • Die Details eines oder mehrerer Beispiele sind in den zugehörigen Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aufgaben und Vorteile der Offenbarung werden aus der Beschreibung und den Zeichnungen sowie aus den Ansprüchen ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist eine konzeptionelle Darstellung, die ein beispielhaftes Computersystem und Computergerät zur Priorisierung von Anwendungsaktualisierungen gemäß Techniken dieser Offenbarung veranschaulicht.
    • 2 ist eine Blockdiagramm, das ein beispielhaftes Computergerät zur Priorisierung von Anwendungsaktualisierungen gemäß Techniken dieser Offenbarung veranschaulicht.
    • 3 ist ein Blockdiagramm, das Aspekte eines beispielhaften Maschinenlernmodells zur Priorisierung von Anwendungsaktualisierungen gemäß Techniken dieser Offenbarung veranschaulicht.
    • 4 ist ein Blockdiagramm, das einen beispielhaften Betrieb des Maschinenlernmodells gemäß Techniken dieser Offenbarung veranschaulicht.
    • 5 ist ein Ablaufdiagramm, das einen beispielhaften Betrieb des Computersystems und Computergeräts gemäß Techniken der vorliegenden Offenbarung veranschaulicht.
    • 6 ist ein Ablaufdiagramm, das einen weiteren beispielhaften Betrieb des Computersystems und Computergeräts gemäß Techniken der vorliegenden Offenbarung veranschaulicht.
    • 7 ist ein Ablaufdiagramm, das einen beispielhaften Betrieb des Computergeräts gemäß Techniken der vorliegenden Offenbarung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist eine konzeptionelle Darstellung, die ein beispielhaftes Computersystem und Computergerät zur Priorisierung von Anwendungsaktualisierungen gemäß Techniken dieser Offenbarung veranschaulicht. Wie in dem Beispiel von 1 dargestellt, können ein Computergerät 100 und ein Computersystem 110 die Verwaltung von Anwendungsaktualisierungen durch Priorisierung der Installation von Aktualisierungen für eine Menge von auf dem Computergerät 100 installierten Anwendungen gemäß einer oder mehrerer Techniken dieser Offenbarung erleichtern.
  • In dem Beispiel von 1 ist das Computergerät 100 ein mobiles Computergerät. Das Computergerät 100 kann jedoch ein beliebiges mobiles oder nicht-mobiles Computergerät sein, wie z. B. ein Mobiltelefon, ein Smartphone, ein persönlicher digitaler Assistent (PDA), ein Desktop-Computer, ein Laptop-Computer, ein Tablet-Computer, ein tragbares Spielgerät, ein tragbarer Medienspieler, ein E-Book-Reader, eine Uhr (einschließlich einer sogenannten Smartwatch), ein Zusatzgerät (z. B. ein Casting-Gerät), eine intelligente Brille, eine Spielsteuerung oder eine andere Art von Computergerät.
  • In ähnlicher Weise kann das Computersystem 110 jedes geeignete entfernte Computersystem sein, wie z. B. ein oder mehrere Desktop-Computer, Laptops, Mainframes, Server, Cloud-Computing-Systeme, virtuelle Maschinen usw., die Informationen über das Netzwerk 108 senden und empfangen können. In einigen Beispielen kann das Computersystem 110 ein Cloud-Computing-System darstellen, das einen oder mehrere Dienste über das Netzwerk 108 bereitstellt. Das heißt, in einigen Beispielen kann das Computersystem 110 ein verteiltes Computersystem sein. Ein oder mehrere Computergeräte, wie z. B. das Computergerät 100, können auf die von der Cloud bereitgestellten Dienste durch Kommunikation mit dem Computersystem 110 zugreifen. Während hierin zumindest teilweise als durch das Computersystem 110 ausgeführt beschrieben, können einige oder alle Techniken der vorliegenden Offenbarung auch durch ein oder mehrere andere Geräte, wie z. B. das Computergerät 100, ausgeführt werden. Das heißt, in einigen Beispielen kann das Computergerät 100 zum alleinigen Ausführen einer oder mehrerer Techniken der vorliegenden Offenbarung betreibbar sein.
  • Das Computergerät 100 kann Anwendungsverwaltungsmodul 107, präsenzempfindliche Anzeige 120 und Kommunikationskomponenten („KOMM.”-Komponenten) 124 beinhalten. Die Anzeige 120 kann ein präsenzempfindliches Gerät sein, das sowohl als Eingabegerät als auch als Ausgabegerät arbeitet. Die präsenzempfindliche Anzeige kann beispielsweise als ein Eingabegerät unter Nutzung einer präsenzempfindlichen Eingabekomponente, wie z. B. eines Widerstands-Touchscreens, eines SAW-Touchscreens („Surface Acoustic Wave“, Touchscreen mit akustischer Oberflächenwellentechnologie), eines kapazitiven Touchscreens, eines projizierend kapazitiven Touchscreens, eines druckempfindlichen Bildschirms, eines APR-Touchscreens („Acoustic Pulse Recognition“, eines Touchscreens mit akustischer Impulserkennung) oder anderer präsenzempfindlicher Anzeigetechnologie fungieren. Die präsenzempfindliche Anzeige kann als ein Ausgabegerät (z. B. Anzeigegerät) unter Nutzung einer oder mehrerer Anzeigekomponenten, wie z. B. einer Flüssigkristallanzeige (Liquid Crystal Display, LCD), einer Punktmatrixanzeige, einer Leuchtdiodenanzeige (Light Emitting Diode, LED), einer Mikro-Leuchtdiodenanzeige (micro Light-Emitting Diode, micoLED), einer E-Ink-Anzeige, einer organischen Leuchtdiodenanzeige (Organic Light Emitting Diode, OLED), , einer organischen Aktivmatrix-Leuchtdiodenanzeige (Active Matrix Organic Light-Emitting Diode, AMOLED), oder einer ähnlichen Monochrom- oder Farbanzeige, die sichtbare Informationen für einen Benutzer eines Computergeräts 100 ausgeben kann, dienen.
  • Die KOMM.-Komponenten 124 können verschiedene Arten von Informationen, wie z. B. Informationen über anstehende Aktualisierungen, die mit einer oder mehreren auf dem Computergerät 100 installierten Anwendungen 106 assoziiert sind, empfangen und über das Netzwerk 108 übertragen. Das Netzwerk 108 kann ein Weitverkehrsnetz wie das Internet, ein lokales Netzwerk (LAN), ein persönliches Netzwerk (PAN) (z. B. Bluetooth®), ein Unternehmensnetzwerk, ein drahtloses Netzwerk, ein Mobilfunknetzwerk, ein Telefonnetzwerk, ein Metropolitan Area Netzwerk (z. B. WIFI, WAN, WiMAX, usw.), eine oder mehrere andere Arten von Netzwerken oder eine Kombination aus zwei oder mehreren verschiedenen Arten von Netzwerken (z. B. eine Kombination aus einem Mobilfunknetzwerk und dem Internet) beinhalten.
  • Die KOMM.-Komponenten 124 können drahtlose Kommunikationsgeräte beinhalten, die Kommunikationssignale unter Nutzung des Netzwerks 108 senden und/oder empfangen können, wie z. B. ein Mobilfunkgerät, ein 3G-Funkgerät, ein 4G-Funkgerät, ein 5G-Funkgerät, ein Bluetooth®-Funkgerät (oder ein anderes PAN-Funkgerät), ein NFC-Funkgerät oder ein WIFI-Funkgerät (oder ein anderes WLAN-Funkgerät). Zusätzlich oder alternativ können die KOMM. -Komponenten 124 drahtgebundene Kommunikationsgeräte beinhalten, die Kommunikationssignale über eine direkte Verbindung über ein drahtgebundenes Kommunikationsmedium (z. B. ein Universal-Serial-Bus-Kabel („USB“-Kabel)) senden und/oder empfangen können.
  • Das Computergerät 100 kann (z. B. unter Nutzung einer oder mehrerer der KOMM. -Komponenten 124) eine oder mehrere Anwendungen 106 herunterladen, installieren und ausführen. Die Anwendungen 106A-N (zusammen „Anwendungen 106“) können eine Anwendung eines Erstanbieters darstellen, die als in ein Betriebssystem integrierte Anwendung entwickelt und bereitgestellt wird, oder eine Anwendung eines Drittanbieters, die ein Benutzer des Computergeräts 100 über die App-Store-Dienste erhält, die über das Betriebssystem bereitgestellt werden. Die Anwendung 106 kann die Softwarefunktionalität des Computergeräts 100 erweitern, wobei die Anwendung 106 innerhalb einer von dem Betriebssystem bereitgestellten Ausführungsumgebung ausgeführt werden kann. Die Anwendung 106 kann, um nur einige Beispiele zu nennen, Spieldienste (z. B. Videospiele), E-Mail-Dienste, Web-Browsing-Dienste, SMS- und/oder Chat-Dienste, Webkonferenzdienste, Videokonferenzdienste, Musikdienste (einschließlich Streaming-Musikdienste), Videodienste (einschließlich Video-Streaming-Dienste), Navigationsdienste, Textverarbeitungsdienste, Tabellenkalkulationsdienste, Dia- und/oder Präsentationsdienste, Assistenzdienste, Texteingabedienste oder jeden anderen Dienst, der gewöhnlich von Anwendungen bereitgestellt wird, beinhalten.
  • Gemäß den Techniken dieser Offenbarung kann das Computergerät 100 das Anwendungsverwaltungsmodul 107 ausführen, um die Verwaltung von Anwendungsaktualisierungen zu erleichtern, indem es in Verbindung mit einem Anwendungsaktualisierungsmodul 117 des Computersystems 110 arbeitet, um Anwendungsaktualisierungen intelligent zu priorisieren. Beispielsweise kann das Computergerät 100 das Anwendungsverwaltungsmodul 107 zum Erzeugen von Anwendungsverwaltungsinformationen verwenden, um die auf dem Computergerät 100 installierten Anwendungen 106 zu identifizieren. In verschiedenen Fällen kann das Anwendungsverwaltungsmodul 107 eine Client-Anwendung sein, die mit einem Anwendungsspeicher assoziiert ist, der von dem Computersystem 110 verwaltet und/oder bereitgestellt wird. Das heißt, das Computergerät 100 kann das Anwendungsverwaltungsmodul 107 ausführen, um eine grafische Benutzeroberfläche (z. B. GUI 104) für einen Online-App-Store über eine präsenzempfindliche Anzeige 120 darzustellen. Der App-Store kann von dem Computersystem 110 gehostet oder anderweitig bereitgestellt werden, und der App-Store kann einem Benutzer des Computergeräts 100 ermöglichen, verschiedene Anwendungen und Anwendungsaktualisierungen auf dem Computergerät 100 zu suchen, auszuwählen, zu kaufen, herunterzuladen und zu installieren.
  • Von Zeit zu Zeit können Entwickler verschiedener Anwendungen neue Funktionen hinzufügen, verschiedene Fehler beheben oder den Softwarecode für eine Anwendung anderweitig aktualisieren. Der Entwickler kann die Anwendungsaktualisierung (z. B. für die Anwendung 106A) in dem Online-App-Store veröffentlichen, der von dem Computersystem 110 bereitgestellt wird. Wenn das Computergerät 110 nach verfügbaren Aktualisierungen für die Anwendungen 106 sucht, kann das Computersystem 110 die veröffentlichte Anwendungsaktualisierung für die Anwendung 106A als eine neue verfügbare Aktualisierung für die Anwendung 106A identifizieren.
  • Das Computergerät 100 kann unter Nutzung einer oder mehrerer KOMM. -Komponenten 124 automatisch eine Anforderung von Anwendungsaktualisierungsinformationen an das Computersystem 110 senden (z. B. nach einem vordefinierten Zeitplan, basierend auf dem Anwendungsnutzungsverlauf usw.) oder eine solche Anforderung von Anwendungsaktualisierungsinformationen in Reaktion auf das Empfangen einer Benutzereingabe senden. Die Anforderung von Anwendungsaktualisierungsinformationen kann Informationen zum Identifizieren des Computergeräts 100, Informationen über eine oder mehrere der Anwendungen 106, Gerätespeicherinformationen, Benutzereinstellungen (z. B. Einstellungen für die automatische Aktualisierung) für Anwendungsaktualisierungen und andere Konfigurationsinformationen für das Computergerät 100 beinhalten. Die Informationen über die Anwendungen 106 können daher Informationen wie z. B. einen Namen oder einen anderen textbasierten Identifikator, Versionsinformationen für die installierten Anwendungen, historische Anwendungsnutzungsinformationen für jede installierte Anwendung, Ergebnisse früherer Anwendungsaktualisierungsversuche für die installierten Anwendungen usw. beinhalten.
  • Als ein Beispiel kann die auf dem Computergerät 100 installierte Anwendung 106A eine Fotografieanwendung sein, und die Anwendung 106N kann eine Musikanwendung sein. In einem solchen Beispiel kann das Anwendungsverwaltungsmodul 107 eine Anforderung zur Anwendungsaktualisierung für die Fotografieanwendung 106A und die Musikanwendung 106N erzeugen. Das Anwendungsverwaltungsmodul 107 kann daraufhin die Anforderung zur Anwendungsaktualisierung an das Computersystem 110 senden.
  • Während Beispiele beschrieben werden, in denen ein Computergerät und/oder ein Computersystem Informationen (z. B. Anwendungsnutzung, Gerätenutzung, Installationsverlaufusw.) analysiert, die mit einem Computergerät und einem Benutzer eines Computergeräts assoziiert sind, kann das Computergerät und/oder das Computersystem die Informationen nur analysieren, wenn das Computergerät von dem Benutzer des Computergeräts die Erlaubnis zum Analysieren der Informationen erhält. So wird dem Benutzer in nachfolgend beschriebenen Situationen, bevor ein Computergerät oder Computersy stem mit einem Benutzer verknüpfte Informationen sammeln kann oder verwenden darf, unter Umständen eine Möglichkeit gegeben, eine Eingabe vorzunehmen, um zu steuern, ob Programme oder Funktionen des Computergeräts und/oder des Computersystems Benutzerinformationen (wie z. B. Informationen zum aktuellen Standort eines Benutzers, die aktuelle Geschwindigkeit usw.) sammeln und verwenden dürfen, oder um festzulegen, ob und/oder wie das Gerät und/oder System Inhalte empfangen kann, die für den Benutzer ggf. relevant sind. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie durch die Computervorrichtung und/oder das Computersystem gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt sind. Deshalb kann der Benutzer darüber die Kontrolle haben, wie die Informationen über den Benutzer gesammelt und vom Computergerät und Computersystem verwendet werden.
  • Das Computersystem 110 kann basierend auf der Anforderung von Anwendungsaktualisierungsinformationen eine Menge von auf dem Computergerät 100 installierten Anwendungen ermitteln, die zu aktualisieren sind. Beispielsweise kann das Computersystem 100 basierend auf der Auflistung der Anwendungen und den jeweiligen Versionsinformationen für jede installierte Anwendung ermitteln, dass für die Anwendung 106A (z. B. eine Fotografieanwendung) und die Anwendung 106N (z. B. eine Musikanwendung) jeweils eine Anwendungsaktualisierung (z. B. im App-Store) ansteht.
  • Wie in 1 dargestellt, beinhaltet das Computersystem 110 einen oder mehrere Prozessoren 113 und Speicher 114. Prozessoren 113 können Funktionalität implementieren und/oder mit dem Computersystem 110 assoziierte Anweisungen ausführen. Beispiele der Prozessoren 113 beinhalten Anwendungsprozessoren, Anzeige-Controller, Zusatzprozessoren, ein oder mehrere Sensorhubs und jegliche andere Hardware, die dafür konfiguriert ist, als Prozessor, Verarbeitungseinheit oder Verarbeitungsgerät zu fungieren. Das Maschinenlernmodell 116, das Anwendungsaktualisierungsmodul 117, das Modellbewertungsmodul 118, der Modelltrainer 119 und dergleichen können von den Prozessoren 113 betrieben (oder, mit anderen Worten, ausgeführt) werden, um verschiedene Aktionen, Operationen oder Funktionen des Computersystems 110 auszuführen. Das heißt, die Module 116-119 können ausführbaren Bytecode bilden, der bei Ausführung die Prozessoren 113 zum Ausführen bestimmter Operationen gemäß verschiedenen Aspekten der hierin beschriebenen Techniken veranlasst (z. B. das Computersystem 110 zu einem zweckgebundenen Computer macht, durch den diese ausgeführt werden).
  • Das Computersystem 110 kann ferner Speicher 114 beinhalten. Der Speicher 114 kann den Anwendungsaktualisierungsspeicher 115, ein Maschinenlernmodell 116, ein Anwendungsaktualisierungsmodul 117 und ein Modellbewertungsmodul 118 speichern. Der Speicher 114 kann in einigen Beispielen als ein computerlesbares Speichermedium beschrieben sein. In einigen Beispielen ist der Speicher 114 ein temporärer Speicher, was bedeutet, dass der Hauptzweck des Speichers 114 nicht die Langzeitspeicherung ist. Der Speicher 114 kann auch als flüchtiger Speicher beschrieben werden, was bedeutet, dass der Speicher 114 den gespeicherten Inhalt nicht beibehält, wenn das Computersystem 110 ausgeschaltet wird. Zu Beispielen flüchtiger Speicher gehören Direktzugriffsspeicher (RAM), dynamische Direktzugriffsspeicher (DRAM), statische Direktzugriffsspeicher (SRAM) und andere Formen von flüchtigen Speichern, die auf dem Fachgebiet bekannt sind. In einigen Beispielen wird der Speicher 114 verwendet, um Programmanweisungen für das Ausführen durch die Prozessoren 113 zu speichern. Der Speicher 114 kann von Software oder von auf dem Computersystem 110 laufenden Anwendungen (z. B. zur Analyse von Anwendungen, die über einen Online-App-Store verfügbar sind) zur temporären Speicherung von Informationen während der Programmausführung verwendet werden.
  • In Reaktion auf das Empfangen der Anforderung von Anwendungsaktualisierungsinformationen kann das Anwendungsaktualisierungsmodul 117 eine Menge von Anwendungen aus Anwendungen 106 ermitteln, die ausstehende Aktualisierungen aufweisen (d. h. Aktualisierungen, die noch nicht erfolgreich auf dem Computergerät 100 installiert wurden). Das Anwendungsaktualisierungsmodul 117 kann beispielsweise eine Abfrage des Anwendungsaktualisierungsspeichers 115 durchführen, um zu ermitteln, ob und, falls vorhanden, welche der in den Anwendungsaktualisierungsinformationen identifizierten Anwendungen ausstehende Aktualisierungen haben. Als ein Beispiel beinhalten die Anwendungsaktualisierungsinformationen eine Angabe, dass die Fotografieanwendung 106A, die Musikanwendung 106N und eine soziale Netzwerkanwendung auf dem Computergerät 100 installiert sind. Das Anwendungsaktualisierungsmodul 117 kann eine Abfrage ausführen, um aktuelle Versionsinformationen für eine oder mehrere dieser Anwendungen abzurufen. Das Anwendungsaktualisierungsmodul kann die abgerufenen aktuellen Versionsinformationen mit der aktuell installierten Version der Fotografieanwendung 106A, der Musikanwendung 106N und der sozialen Netzwerkanwendung vergleichen. Basierend auf dem Versionsinformationsvergleich kann das Anwendungsaktualisierungsmodul 117 ermitteln, dass eine oder mehrere der Anwendungen ausstehende Aktualisierungen aufweisen.
  • Zur Erleichterung der Priorisierung von Anwendungsaktualisierungen kann das Computersystem 110 durch Anwenden des Maschinenlernmodells 116 eine Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen ermitteln. Das Maschinenlernmodell 116 kann in Anwendungsaktualisierungsspeicher 115 gespeicherte Eingabedaten zum Bereitstellen von Ausgabedaten, wie z. B. Aktualisierungsprioritätsbewertungen, nutzen. Die Eingabedaten in dem Anwendungsaktualisierungsspeicher 115 können die Anwendungsnutzung, den Installationsverlauf, gerätespezifische Netzwerkeinstellungen für die automatische Anwendungsaktualisierung und dergleichen beinhalten. Zum Beispiel kann das Computersystem 110 dem Maschinenlernmodell 116 zumindest einige der in der Anforderung von Anwendungsaktualisierungsinformationen enthaltenen Informationen sowie andere Informationen bereitstellen, wie z. B. historische Anwendungsnutzungsinformationen (z. B. benutzerspezifische Nutzung, globale Nutzung, Nutzung durch ähnliche Benutzer usw.), die von dem Computersystem 110 gesammelt und gespeichert wurden. Das Maschinenlernmodell 116 verarbeitet die Eingaben und erzeugt eine Aktualisierungsprioritätsbewertung für Anwendungenmit anstehenden Aktualisierungen (z. B. Fotografieanwendung 106A und Musikanwendung 106N).
  • Wie durch die Elemente 108A und 108N in GUI 104 dargestellt, hat das Maschinenlernmodul 116 eine Aktualisierungsprioritätsbewertung für die Fotografieanwendung 106A von 90 und eine Aktualisierungsprioritätsbewertung für die Musikanwendung 106N von 85 erzeugt. Die Höhe der Aktualisierungsprioritätsbewertung kann eine Angabe über die Priorität der Anwendungsaktualisierung sein. Somit kann eine Aktualisierungsprioritätsbewertung von 90 anzeigen, dass die Anwendungsaktualisierung für die Fotografieanwendung 106A eine höhere Priorität hat als für die Musikanwendung 106N. Während 1 die GUI 104 enthält, kann das Computergerät 100 in verschiedenen Beispielen keine GUI ausgeben, die die Aktualisierungsprioritätsbewertungen für eine oder mehrere der Anwendungen 106 beinhaltet. Als nicht einschränkendes Beispiel kann das Computergerät 100 die Anwendungsaktualisierung zumindest teilweise basierend auf den Aktualisierungsprioritätsbewertungen verarbeiten, ohne GUI 104 auszugeben, oder es kann eine Liste der ausstehenden Anwendungsaktualisierungen basierend auf den Aktualisierungsprioritätsbewertungen ausgeben.
  • Das Computersystem 110 kann eine Angabe zu den Aktualisierungsprioritätsbewertungen oder die Prioritätsbewertungen selbst an das Computergerät 100 senden. In Reaktion auf das Empfangen der Angaben zu den Prioritätsbewertungen kann das Anwendungsverwaltungsmodul 107 basierend auf den Angaben zu den Aktualisierungsprioritätsbewertungen eine Reihenfolge ermitteln, in der Anwendungsaktualisierungen angefordert werden, sodass Anwendungsaktualisierungen, die eine höhere Wahrscheinlichkeit einer erfolgreichen Installation haben und für Anwendungen, die der Benutzer am häufigsten verwendet, gegenüber anderen Anwendungsaktualisierungen priorisiert werden. Die Reihenfolge der Anwendungsaktualisierungen kann beispielsweise angeben, dass das Computergerät 100 zuerst eine Aktualisierungsanforderung für die Anwendung 106A senden sollte, da die Anwendung 106A die höchste Aktualisierungsprioritätsbewertung aufweist. Die Reihenfolge der Anwendungsaktualisierungen kann ferner angeben, dass eine Aktualisierungsanforderung für Anwendung 106N an zweiter Stelle steht, da Anwendung 106N die zweithöchste Aktualisierungsprioritätsbewertung aufweist.
  • Das Computergerät 100 kann eine Aktualisierungsanforderung für eine oder mehrere der Anwendungen mit ausstehenden Aktualisierungen erzeugen. Beispielsweise kann das Computergerät eine Aktualisierungsanforderung für die Fotografieanwendung 106A erzeugen, da die Fotografieanwendung 106A eine höhere Aktualisierungsprioritätsbewertung (z. B. 90) als die Musikanwendung 106N (z. B. 85) aufweist, was bedeutet, dass die Installation der Aktualisierung der Fotografieanwendung 106A von höherer Priorität ist als die Installation der Aktualisierung der Musikanwendung 106N. Die Aktualisierungsanforderung kann die zu aktualisierenden Anwendungen, Berechtigungseinstellungen (z. B. Netzwerkpräferenzen) und dergleichen identifizieren.
  • Das Computergerät 100 kann die Aktualisierungsanforderung an das Computersystem 110 senden. In Reaktion auf das Empfangen der Aktualisierungsanforderung kann das Anwendungsaktualisierungsmodul 117 die Installation der zumindest einen Anwendungsaktualisierung an dem Computergerät 100 einleiten. Das Anwendungsaktualisierungsmodul 117 kann beispielsweise über das Netzwerk 108 ein oder mehrere Installationspakete für die Anwendungsaktualisierung an das Computergerät 110 senden. In Reaktion auf das Empfangen der Installationspakete für die Anwendungsaktualisierung kann das Anwendungsverwaltungsmodul die Installation von zumindest einem der Installationspakete für die Anwendungsaktualisierung einleiten.
  • In einigen Beispielen kann das Computersystem 110 das Modellbewertungsmodul 118 zum Ermitteln der Effektivität eines oder mehrerer Maschinenlernmodelle basierend auf einer Vielzahl von Metriken verwenden. Zum Beispiel kann das Computersystem 110 das Modellbewertungsmodul 118 zum Ermitteln der Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von auf einem ersten Computergerät installierten Anwendungsaktualisierungen verwenden, die basierend auf der jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden. Das Computersystem 110 kann das Modellbewertungsmodul 118 ferner zum Ermitteln der Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von auf einem zweiten Computergerät installierten Anwendungsaktualisierungen verwenden, die basierend auf der jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede von dem zweiten Maschinenlernmodell erzeugte Anwendung priorisiert wurden. Das Computersystem 110 kann dann basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells ein effektiveres des ersten und zweiten Maschinenlernmodells auswählen, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist.
  • Das Computersystem 110 kann ferner Modelltrainer 119 beinhalten. Der Modelltrainer 119 kann das Maschinenlemmodell 116 zur Verbesserung der Effektivität des Maschinenlernmodells 116 trainieren. Der Modelltrainer 119 kann das Maschinenlernmodell 116 sowohl Offline als auch Online trainieren. Bei dem Offline-Training (auch als Batch-Lernen bekannt) kann das Maschinenlernmodell 216 über die Gesamtheit eines statischen Trainingsdatensatzes trainiert werden. Bei dem Online-Lernen kann das Maschinenlernmodell 216 kontinuierlich trainiert (oder neu trainiert) werden, wenn neue Trainingsdaten verfügbar werden (z. B. wenn neue Informationen über die Anwendungsnutzung, den Installationsverlauf und den Kontext erzeugt werden).
  • Obwohl als auf dem Computersystem 110 gespeichert und durch dieses ausgeführt beschrieben, können in einigen Beispielen einige oder alle des Anwendungsaktualisierungsspeichers 115, des Maschinenlernmodells 116, des Anwendungsaktualisierungsmoduls 117 und des Modellbewertungsmoduls 118 auf dem Computersystem 100 gespeichert und/oder ausgeführt werden, sodass die durch eines oder mehrere des Anwendungsaktualisierungsspeichers 115, des Maschinenlernmodells 116, des Anwendungsaktualisierungsmoduls 117 und des Modellbewertungsmoduls 118 bereitgestellte Funktionalität durch das Computergerät 100 bereitgestellt werden kann, ohne dass das Computergerät 100 Informationen an das Computersystem 110 senden und von diesem empfangen muss. Mit anderen Worten können einige oder alle der in dieser Offenbarung beschriebenen Techniken lokal auf dem Computergerät 100 ausgeführt werden.
  • Verschiedene Aspekte der Techniken können den Betrieb des Computergeräts 100 durch Erhöhung der Wahrscheinlichkeit einer erfolgreichen Installation von Anwendungsaktualisierungen für Anwendungen, die für den Benutzer relativ wichtig sind, verbessern. Durch diese Priorisierung der Aktualisierungen kann die Anzahl an fehlgeschlagenen Installationen von Anwendungsaktualisierungen reduziert werden, was wiederum den Bandbreiten-, Prozessor- und Energieverbrauch des Geräts verringern kann. Ferner können durch die Priorisierung von Anwendungsaktualisierungen für diese Anwendungen, an denen der Benutzer des Computergeräts am meisten interessiert ist und/oder die er häufiger nutzt, Anwendungsaktualisierungen für relativ unwichtige Anwendungen nicht heruntergeladen werden, wodurch auch die Bandbreitennutzung (z. B. durch das Nichtherunterladen unerwünschter Anwendungsaktualisierungen) und die CPU-Auslastung (z. B. durch die Priorisierung von Aktualisierungen, die mit größerer Wahrscheinlichkeit erfolgreich installiert werden, was zu weniger fehlgeschlagenen Installationen führt) verringert werden kann. Darüber hinaus kann die Priorisierung von Aktualisierungen für Anwendungen, die der Benutzer häufig verwendet, dazu beitragen, Abstürze oder andere Fehler in solchen Anwendungen zu vermeiden.
  • 2 ist eine konzeptionelle Darstellung, die ein beispielhaftes Computergerät zur Priorisierung von Anwendungsaktualisierungen gemäß Techniken dieser Offenbarung veranschaulicht. Das in dem Beispiel von 2 dargestellte Computergerät 200 ist ein Beispiel für das in 1 dargestellte Computergerät 100. Ferner implementiert das in dem Beispiel von 2 dargestellte Computergerät 200 lokal ein Maschinenlernmodell und führt eine oder mehrere andere Aufgaben aus, die ansonsten von dem Computersystem 110 ausgeführt werden könnten.
  • Wie in dem Beispiel von 2 dargestellt, beinhaltet das Computergerät 200 eine präsenzempfindliche Anzeige 220, die 120 ähnlich oder im Wesentlichen ähnlich sein kann, einen oder mehrere Prozessoren 222, eine oder mehrere KOMM.-Komponenten 224, die 124 ähnlich oder im Wesentlichen ähnlich sein können, und ein oder mehrere Speichergeräte 226. Die Speichergeräte 226 des Computergeräts 200 können ein Betriebssystem 205 beinhalten, das eine Ausführungsumgebung für eine oder mehrere Anwendungen 206 und Module, sowie ein Anwendungsverwaltungsmodul 207, ein Maschinenlemmodell 216, ein Anwendungsaktualisierungsmodul 217, ein Modellbewertungsmodell 218 und einen Modelltrainer 219 bereitstellt. Die Module 206-219 können den Modulen 106-119 ähnlich oder im Wesentlichen ähnlich sein.
  • Die präsenzempfindliche Anzeige 220 des Computergeräts 200 kann Funktionen einer Eingabekomponente und/oder einer Ausgabekomponenten beinhalten. In dem Beispiel von 2 kann die präsenzempfindliche Anzeige 220 eine präsenzempfindliche Eingabekomponente 228 (Presence-Sensitive Input, „PSI-Komponente 228“) enthalten, wie z. B. einen präsenzempfindlichen Bildschirm oder berührungsempfindlichen Bildschirm. In einigen Beispielen kann die präsenzempfindliche Eingabekomponente 228 ein Objekt an und/oder in der Nähe der präsenzempfindlichen Eingabekomponente erkennen. Als ein exemplarischer Bereich kann die präsenzempfindliche Eingabekomponente 228 ein Objekt, wie z. B. einen Finger oder einen Eingabestift, erkennen, der sich innerhalb von zwei Zoll oder weniger zu der präsenzempfindlichen Eingabekomponente 228 befindet. Die präsenzempfindliche Eingangskomponente 228 kann eine Position (z. B. eine (x,y)-Koordinate) der präsenzempfindlichen Eingabekomponente ermitteln, an der das Objekt erkannt wurde. In einem anderen exemplarischen Bereich kann die präsenzempfindliche Eingabekomponente 228 ein Objekt erfassen, das zwei Zoll oder weniger von der präsenzempfindlichen Eingabekomponente 228 entfernt ist, wobei andere Bereiche ebenfalls möglich sind. Die präsenzempfindliche Eingabekomponente 228 kann die Position der durch den Finger des Nutzers ausgewählten präsenzempfindlichen Eingabekomponente 228 mit kapazitiven, induktiven und/oder optischen Erkennungstechniken bestimmen.
  • In einigen Beispielen kann die präsenzempfindliche Anzeige 220 auch eine Ausgabe unter Nutzung von taktilen, Audio- oder Videostimuli an einen Benutzer bereitstellen. Die präsenzempfindliche Anzeige 220 kann beispielsweise eine Anzeigekomponente 230 beinhalten, die eine grafische Benutzeroberfläche anzeigt. Die Anzeigekomponente 230 kann jede Art von Ausgabekomponente sein, die eine visuelle Ausgabe bereitstellt, wie z. B. eine Flüssigkristallanzeige (LCD), eine Punktmatrixanzeige, eine Leuchtdiodenanzeige (LED-Anzeige), eine Mikro-LED-Anzeige, eine organische Leuchtdiodenanzeige (OLED-Anzeige), eine E-Ink-Anzeige, eine Aktivmatrix-Anzeige mit organischen Leuchtdioden (AMOLED-Anzeige), usw. Obwohl als integrierte Komponente des Computergeräts 200 veranschaulicht, kann die präsenzempfindliche Anzeige 220 in einigen Beispielen eine externe Komponente sein, die einen Daten- oder Informationspfad mit anderen Komponenten des Computergeräts 200 zum Senden und/oder Empfangen von Eingaben und Ausgaben teilt.
  • Die präsenzempfindliche Anzeige 220 kann beispielsweise eine eingebaute Komponente des Computergeräts 200 sein, die sich innerhalb des externen Gehäuses des Computergeräts 200 befindet und physisch mit diesem verbunden ist. In einem anderen Beispiel kann die präsenzempfindliche Anzeige 220 eine externe Komponente des Computergeräts 200 sein, die sich außerhalb des Gehäuses des Computergeräts 200 befindet und physisch von diesem getrennt ist. In einigen Beispielen kann die präsenzempfindliche Anzeige 220, wenn sie außerhalb und physisch von dem Gehäuse des Computergeräts 200 getrennt ist, durch zwei getrennte Komponenten implementiert werden: eine präsenzempfindliche Eingabekomponente 228 zum Empfangen der Eingabe und eine Anzeigekomponente 230 zum Bereitstellen einer Ausgabe.
  • Ein oder mehrere Prozessoren 222 können Funktionalität implementieren und/oder mit dem Computergerät 200 assoziierte Anweisungen ausführen. Beispiele für die Prozessoren 222 beinhalten Anwendungsprozessoren, Anzeige-Controller, Zusatzprozessoren, ein oder mehrere Sensorhub(s) und jegliche andere Hardware, die konfiguriert ist, als Prozessor, Verarbeitungseinheit oder Verarbeitungsgerät zu fungieren. Das Betriebssystem 205, die Anwendungen 206, das Anwendungsverwaltungsmodul 207, das Maschinenlernmodell 216 und dergleichen können von den Prozessoren 222 bedient (oder mit anderen Worten ausgeführt) werden, um verschiedene Aktionen, Operationen oder Funktionen des Computergeräts 200 auszuführen. Das heißt, die Module 205-219 können ausführbaren Bytecode bilden, der bei Ausführung die Prozessoren 222 zum Ausführen bestimmter Operationen gemäß verschiedenen Aspekten der hierin beschriebenen Techniken veranlasst (z. B. das Computergerät 200 zu einem zweckgebundenen Computer macht, durch den diese ausgeführt werden). Beispielsweise können die Prozessoren 222 des Computergeräts 200 von den Speichergeräten 226 gespeicherte Anweisungen abrufen und ausführen, die die Prozessoren 222 zum Ausführen der hierin beschriebenen Operationen veranlassen, die dem Betriebssystem 205, den Anwendungen 206 und der Projektionsanwendung 220 zugeordnet sind. Die Anweisungen können, bei Ausführung durch die Prozessoren 222, das Computergerät 200 zum Speichern von Informationen in Speichergeräten 226, wie z. B. in Anwendungsaktualisierungsspeicher 215, veranlassen.
  • Ein oder mehrere Speichergeräte 226 innerhalb des Computergeräts 200 können Informationen für die Verarbeitung während des Betriebs des Computergeräts 200 speichern (z. B. kann das Computergerät 200 Daten speichern, auf die das Betriebssystem 205 während der Ausführung auf dem Computergerät 200 zugreifen können). Speichergeräte 226 können ferner Daten speichern, die mit dem Anwendungsaktualisierungsspeicher 215, dem Maschinenlernmodell 216, dem Anwendungsverwaltungsmodul 217, dem Modellbewertungsmodul 218 und dem Modelltrainer 219 assoziiert sind.
  • In einigen Beispielen ist das Speichergerät 226 ein temporärer Speicher, das heißt, dass der Hauptzweck des Speichergeräts 226 nicht in der Langzeitspeicherung besteht. Die Speichergeräte 226 des Computergeräts 200 können zur Kurzzeitspeicherung von Informationen als flüchtige Speicher konfiguriert sein, weshalb, wenn diese ausgeschaltet werden, die gespeicherten Inhalte verloren gehen. Zu Beispielen flüchtiger Speicher gehören Direktzugriffsspeicher (RAM), dynamische Direktzugriffsspeicher (DRAM), statische Direktzugriffsspeicher (SRAM) und andere Formen von flüchtigen Speichern, die auf dem Fachgebiet bekannt sind.
  • In einigen Beispielen kann das Speichergerät 226 auch ein oder mehrere computerlesbare Speichermedien beinhalten. Speichergeräte 226 beinhalten in einigen Beispielen ein oder mehrere nichtflüchtige computerlesbare Speichermedien. Speichergeräte 226 können zur Speicherung größerer Mengen an Informationen konfiguriert sein, als in der Regel in flüchtigen Speichern gespeichert wird. Speichergeräte 226 können ferner zur Langzeitspeicherung von Informationen als nichtflüchtiger Speicherplatz und zum Halten von Informationen nach Einschalt-/Ausschaltzyklen konfiguriert sein. Zu Beispielen für nichtflüchtige Speicher gehören magnetische Festplatten, optische Festplatten, Flashspeicher oder Formen von elektrisch programmierbaren Speichern (EPROM) oder von elektrisch überschreibbaren und programmierbaren (EEPROM) Speichern. Speichergeräte 226 können Programmanweisungen und/oder Informationen (z. B. Daten) speichern, die mit dem Betriebssystem 205, den Anwendungen 206 und dem Anwendungsverwaltungsmodul 207 assoziiert sind.
  • Wie ferner in dem Beispiel von 2 dargestellt, beinhaltet der Anwendungsaktualisierungsspeicher Informationen über die Anwendungsnutzung 215A, den Installationsverlauf 215B und den Kontext 215C. Die Anwendungsnutzung 215A kann Informationen über die Häufigkeit, Dauer und dergleichen beinhalten, mit der der Benutzer des Computergeräts 200 jede der Anwendungen 206 nutzt. Ferner kann die Anwendungsnutzung 215A solche Informationen für alle Geräte oder Benutzer beinhalten, die von einem von dem Computersystem 110 von 1 bereitgestellten App-Store herunterladen, installieren oder anderweitig damit interagieren. Die Informationen über die Häufigkeit, mit der der Benutzer die einzelnen Anwendungen nutzt, können zum Beispiel beinhalten, wie oft der Benutzer über einen vorbestimmten Zeitraum (z. B. einen Tag, eine Woche, einen Monat usw.) die Anwendung öffnet, wie oft der Benutzer mit der Anwendung interagiert, wie viel Zeit er mit der Anwendung verbringt usw.
  • Der Installationsverlauf 215B kann Informationen über die von dem Computergerät 200 unternommenen Versuche zur Installation jeder Anwendung aus der Menge von Anwendungen beinhalten. Die Informationen zu den Versuchen des Computergeräts 200 können beispielsweise die Anzahl an Versuchen des Computergeräts 200 zur Installation einer Anwendungsaktualisierung, die Anzahl an erfolgreichen Anwendungsaktualisierungsversuchen, die Anzahl an erfolglosen Anwendungsaktualisierungsversuchen, die Zeitspanne seit der Installation der vorherigen Anwendungsaktualisierung durch das Computergerät 200 und dergleichen für einen vorbestimmten Zeitraum beinhalten.
  • Kontext 215C kann Informationen über fehlgeschlagene Versuche der Installation von Anwendungsaktualisierungen für jede Anwendung aus der Menge von Anwendungen beinhalten. Die Informationen über fehlgeschlagene Versuche der Installation von Anwendungsaktualisierungen können beispielsweise den verfügbaren Speicherplatz, die Größe der Anwendungsaktualisierung, die zum Zeitpunkt der versuchten Installation der Anwendungsaktualisierung aktiven Netzwerkeinstellungen für die automatische Anwendungsaktualisierung und dergleichen beinhalten.
  • Während Beispiele beschrieben werden, in denen ein Computergerät und/oder ein Computersystem Informationen (z. B. Anwendungsnutzung, Gerätenutzung, Installationsverlauf usw.) analysiert, die mit einem Computergerät und einem Benutzer eines Computergeräts assoziiert sind, kann das Computergerät und/oder das Computersystem die Informationen nur analysieren, wenn das Computergerät von dem Benutzer des Computergeräts die Erlaubnis zum Analysieren der Informationen erhält. So wird dem Benutzer in nachfolgend beschriebenen Situationen, bevor ein Computergerät oder Computersystem mit einem Benutzer verknüpfte Informationen sammeln kann oder verwenden darf, unter Umständen eine Möglichkeit gegeben, eine Eingabe vorzunehmen, um zu steuern, ob Programme oder Funktionen des Computergeräts und/oder des Computersystems Benutzerinformationen (wie z. B. Informationen zum aktuellen Standort eines Benutzers, die aktuelle Geschwindigkeit usw.) sammeln und verwenden dürfen, oder um festzulegen, ob und/oder wie das Gerät und/oder System Inhalte empfangen kann, die für den Benutzer ggf. relevant sind. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie durch die Computervorrichtung und/oder das Computersystem gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt sind. Deshalb kann der Benutzer darüber die Kontrolle haben, wie die Informationen über den Benutzer gesammelt und vom Computergerät und Computersystem verwendet werden.
  • In verschiedenen Fällen kann das Computergerät 200 die Aktualisierungsanforderung und die mit der Anwendungsaktualisierung assoziierten Daten ohne jegliche Interaktion oder Aktivität seitens des Benutzers des Computergeräts 200 übertragen. Der Benutzer des Geräts muss beispielsweise die Anfrage nicht überprüfen, keine Befehle an das Computergerät 200 zur Installation der Anwendungsaktualisierung eingeben oder anderweitig mit dem Gerät interagieren, damit die Installation erfolgt.
  • In einigen Beispielen kann das Computergerät 200 ein Modellbewertungsmodul 218 beinhalten. Beispielsweise kann das Computergerät 200 das Modellbewertungsmodul 218 zum Ermitteln der Effektivität eines oder mehrerer Maschinenlernmodelle basierend auf einer Vielzahl von Metriken verwenden. Das Computergerät 200 kann dann basierend auf der Effektivität des einen oder der mehreren Maschinenlernmodelle das effektivste Modell auswählen, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist.
  • Das Computergerät 200 kann auch Modelltrainer 219 beinhalten. Das heißt, der Modelltrainer 219 kann das Maschinenlernmodell 216 sowohl Offline als auch Online trainieren. Bei dem Offline-Training (auch als Batch-Lernen bekannt) kann das Maschinenlernmodell 216 über die Gesamtheit eines statischen Trainingsdatensatzes trainiert werden. Bei dem Online-Lernen kann das Maschinenlernmodell 216 kontinuierlich trainiert (oder neu trainiert) werden, wenn neue Trainingsdaten verfügbar werden (z. B. wenn neue Informationen über die Anwendungsnutzung, den Installationsverlauf und den Kontext erzeugt werden). Der Modelltrainer 219 kann ein zentrales Training des Maschinenlernmodells 216 (z. B. basierend auf einem zentral gespeicherten Datensatz) durchführen. In anderen Beispielen können dezentralisierte Trainingstechniken wie verteiltes Training, föderiertes Lernen oder dergleichen verwendet werden, um das Maschinenlernmodell 216 zu trainieren, zu aktualisieren oder zu personalisieren.
  • In einigen Beispielen kann das Maschinenlernmodell 216 durch Optimierung einer Zielfunktion, wie z. B. der Effektivität des Maschinenlernmodells 216, trainiert werden. Die Zielfunktion kann eine Verlustfunktion sein oder beinhalten, die die von dem Modell aus den Trainingsdaten erzeugten Ausgabedaten und die mit den Trainingsdaten assoziierten Kennzeichnungen (z. B. Grundwahrheits-Kennzeichnungen) vergleicht (z. B. eine Differenz zwischen diesen ermittelt). Beispielsweise kann die Verlustfunktion eine Summe oder einen Mittelwert der quadratischen Differenzen zwischen den Ausgabedaten und den Kennzeichnungen auswerten. In einigen Beispielen kann die Zielfunktion eine Kostenfunktion sein oder beinhalten, die die Kosten für ein bestimmtes Ergebnis oder bestimmte Ausgabedaten beschreibt. Andere Beispiele für die Zielfunktion können margenbasierte Techniken, wie z. B. Triplettverlust oder Maximalmargentraining beinhalten.
  • Zur Optimierung der Zielfunktion können eine oder mehrere verschiedene Optimierungstechniken ausgeführt werden. Die Optimierungstechnik(en) können zum Beispiel die Zielfunktion minimieren oder maximieren. Beispielhafte Optimierungstechniken beinhalten Hesse-basierte Techniken und gradientenbasierte Techniken und dergleichen. Andere Optimierungstechniken beinhalten Black-Box-Optimierungstechniken und Heuristiken.
  • In einigen Beispielen kann die Rückwärtspropagation von Fehlern in Verbindung mit einer Optimierungstechnik (z. B. gradientenbasierten Techniken) verwendet werden, um das Maschinenlernmodell 216 zu trainieren (z. B. wenn das Maschinenlernmodell ein mehrschichtiges Modell wie z. B. ein künstliches neuronales Netz ist). Für das Training des Maschinenlernmodells 216 kann beispielsweise ein iterativer Zyklus aus Propagation und Aktualisierung der Modellparameter (z. B. der Gewichte) ausgeführt werden. Beispiele für Rückwärtspropagationstechniken beinhalten abgeschnittene Rückwärtspropagation über die Zeit, Levenberg-Marquardt-Rückwärtspropagation und dergleichen.
  • Zur Priorisierung von Anwendungsaktualisierungen gemäß den Techniken dieser Offenbarung kann das Computergerät 200 (z. B. unter Nutzung des Betriebssystems 205, der Prozessoren 222, der Speichergeräte 226 usw.) das Anwendungsverwaltungsmodul 207 ausführen, um eine Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät 100 installierte Anwendungen 206 an das Anwendungsaktualisierungsmodul 217 zu senden. Die Anwendungen 206 können die Anwendungen 206A und 206N beinhalten, bei denen es sich zum Beispiel um eine Fotografieanwendung bzw. eine Musikanwendung handeln kann. Die Anforderung von Anwendungsaktualisierungsinformationen kann Anwendungsverwaltungsinformationen beinhalten, auf die das Computergerät 200 unter Nutzung des Anwendungsverwaltungsmoduls 207 zugreifen kann.
  • Die Anwendungsverwaltungsinformationen können das Computergerät 200 identifizierende Informationen und das Computergerät 200 betreffende Konfigurationsinformationen beinhalten. Die Anwendungsverwaltungsinformationen können auch eine oder mehrere auf dem Computergerät 200 installierte Anwendungen identifizieren. Die Anwendungsverwaltungsinformationen können beispielsweise eine Auflistung der auf dem Computergerät 200 installierten Anwendungen (z. B. Anwendung 206A, Anwendung 206N, usw.) beinhalten. Die die installierten Anwendungen identifizierenden Informationen können Informationen wie einen Namen (z. B. „Fotografieanwendung“, „Musikanwendung“ usw.) oder andere textbasierte Kennungen und Versionsinformationen für die installierten Anwendungen beinhalten.
  • Die Anwendungsverwaltungsinformationen können auch eine oder mehrere gewährte Berechtigungseinstellungen identifizieren, die mit jeder installierten Anwendung assoziiert sind. Die Berechtigungseinstellungen für jede installierte Anwendung können steuern, wie jede Anwendung mit anderen Teilen des Computergeräts 200, mit dem Netzwerk 108 und dem Computersystem 110 sowie mit anderen Geräten interagiert. Berechtigungseinstellungen können Verbindungseinstellungen beinhalten. Verbindungseinstellungen können steuern, wie das Computergerät 200 mit anderen Geräten unter Nutzung von beispielsweise USB, Bluetooth®, WLAN oder anderen Kommunikationsverfahren kommuniziert.
  • Die Verbindungseinstellungen können auch die Option beinhalten, dass der Benutzer des Geräts eine Netzwerkpräferenz für das Herunterladen von Anwendungsaktualisierungen einstellt. Der Benutzer des Geräts kann zum Beispiel eine Netzwerkpräferenz festlegen, um eine Anwendungsaktualisierung nur dann automatisch herunterzuladen, wenn das Computergerät 200 über WLAN mit dem Internet verbunden ist. Die Netzwerkpräferenz für das Herunterladen einer Anwendungsaktualisierung (z. B. basierend auf der Größe der Anwendungsaktualisierung) kann für alle auf dem Computergerät 200 installierten Anwendungen oder für jede einzelne Anwendung festgelegt werden. Zusätzlich können die Verbindungseinstellungen Größenbeschränkungen für die Anwendungsaktualisierung beinhalten. Beispielsweise können Anwendungsaktualisierungen, die eine bestimmte Größe überschreiten, auf die automatische Aktualisierung bei Vorhandensein einer WLAN-Verbindung beschränkt werden.
  • Das Anwendungsaktualisierungsmodul 217 kann die Anwendungsverwaltungsinformationen zum Ermitteln einer Menge von auf dem Computergerät 200 installierten Anwendungen verwenden, die aktualisiert werden müssen. So kann das Anwendungsaktualisierungsmodul 217 beispielsweise ermitteln, dass für die Fotografieanwendung 206A und die Musikanwendung 206N jeweils eine Anwendungsaktualisierung ansteht. Zur Erleichterung der Priorisierung von Anwendungsaktualisierungen kann das Anwendungsaktualisierungsmodul 217 das Computergerät 200 zum Anwenden des Maschinenlernmodells 216 auf die in dem Anwendungsaktualisierungsspeicher 215 gespeicherten Informationen und/oder Daten veranlassen, um eine Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen zu ermitteln. Das heißt, das Maschinenlernmodell 216 kann in dem Anwendungsaktualisierungsspeicher 215 gespeicherte Eingabedaten wie z. B. Anwendungsnutzung 215A, Installationsverlauf 215B, Kontext 215C und dergleichen verwenden, um Ausgabedaten in Form von Aktualisierungsprioritätsbewertungen bereitzustellen.
  • Unter Nutzung der Informationen in dem Anwendungsaktualisierungsspeicher 215 (z. B. Anwendungsnutzung 215A, Installationsverlauf 215B, Kontext 215C usw.) kann das Maschinenlernmodell 216 eine Aktualisierungsprioritätsbewertung bereitstellen, die indikativ für die Wahrscheinlichkeit einer erfolgreichen Installation einer Anwendungsaktualisierung und die relative Wichtigkeit (z. B. basierend auf der Häufigkeit und Dauer der Nutzung der Anwendung durch den Benutzer) jeder Anwendung aus der Menge von Anwendungen ist. Somit können die Aktualisierungsprioritätsbewertungen die Priorisierung von Anwendungsaktualisierungen in dieser Hinsicht durch Identifizieren derjenigen Anwendungsaktualisierungen erleichtern, die sowohl eine höhere Wahrscheinlichkeit einer erfolgreichen Installation als auch eine relativ hohe Wichtigkeit für den Benutzer haben.
  • Das Maschinenlernmodell 216 kann eine oder mehrere der verschiedenen Arten von maschinell erlernten Modellen darstellen. In einigen Beispielen kann das Maschinenlernmodell 216 insbesondere Regression, Clustering, Anomalieerkennung und/oder andere Aufgaben ausführen.
  • In einigen Beispielen kann das Maschinenlernmodell 216 eine Regression durchführen, um Ausgabedaten in Form eines fortlaufenden numerischen Wertes bereitzustellen. Der fortlaufende numerische Wert kann einer beliebigen Anzahl an verschiedenen Metriken oder numerischen Darstellungen entsprechen, die beispielsweise Währungswerte, Bewertungen oder andere numerische Darstellungen beinhalten. Als Beispiel kann das Maschinenlernmodell 216 eine lineare Regression, eine polynomiale Regression oder eine nichtlineare Regression durchführen. Als Beispiele kann das Maschinenlernmodell 216 eine einfache Regression oder eine Mehrfachregression durchführen. Wie zuvor beschrieben, kann in einigen Beispielen eine Softmax-Funktion oder eine andere Funktion oder Schicht verwendet werden, um eine Menge von realen Werten, die jeweils mit zwei oder mehr möglichen Klassen assoziiert sind, zu einer Menge von realen Werten in dem Bereich (0, 1) zusammenzufassen, die sich zu eins summieren.
  • Das Maschinenlernmodell 216 kann verschiedene Arten von Clustering durchführen. Das Maschinenlernmodell 216 kann zum Beispiel einen oder mehrere zuvor definierte Cluster identifizieren, denen die Eingabedaten am wahrscheinlichsten entsprechen. Das Maschinenlernmodell 216 kann einen oder mehrere Cluster innerhalb der Eingabedaten identifizieren. Das heißt, in Fällen, in denen die Eingabedaten mehrere Objekte, Dokumente oder andere Entitäten beinhalten, kann das Maschinenlernmodell 216 die mehreren in den Eingabedaten enthaltenen Entitäten in eine Anzahl an Cluster sortieren. In einigen Beispielen, in denen das Maschinenlernmodell 216 ein Clustering durchführt, kann das Maschinenlernmodell 216 unter Nutzung unüberwachter Lerntechniken trainiert werden.
  • Das Maschinenlernmodell 216 kann Anomalieerkennung oder Ausreißererkennung ausführen. So kann das Maschinenlernmodell 216 beispielsweise Eingabedaten identifizieren, die einem erwarteten Muster oder einem anderen Charakteristikum nicht entsprechen (z. B. wie zuvor bei früheren Eingabedaten beobachtet). Als Beispiel kann die Anomalieerkennung zum Erkennen von Fehlern bei der Installation von Anwendungsaktualisierungen genutzt werden.
  • Nach dem Anwenden des Maschinenlernmodells 216 zum Ermitteln der Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen kann das Anwendungsaktualisierungsmodul 217 eine Angabe der Aktualisierungsprioritätsbewertungen an das Anwendungsverwaltungsmodul 207 senden. Die Angabe der Aktualisierungsprioritätsbewertung für die Fotografieanwendung 206A und die Musikanwendung 206N kann beispielsweise 90 bzw. 85 betragen. Das Computergerät 200 und/oder das Anwendungsverwaltungsmodul kann daraufhin basierend auf den Aktualisierungsprioritätsbewertungen eine Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen an ein Computersystem (z. B. das Computersystem 110) unter Nutzung der KOMM. -Komponenten 224 senden. Die Aktualisierungsanforderung kann die zu aktualisierenden Anwendungen, Berechtigungseinstellungen (z. B. Netzwerkpräferenzen) und dergleichen identifizieren. Beispielsweise kann die Aktualisierungsanforderung die Fotografieanwendung 206A als die zu aktualisierende Anwendung identifizieren, wenn das Computergerät 200 mit einem WLAN verbunden ist, da die Fotografieanwendung 206A die höchste Aktualisierungsprioritätsbewertung in der Menge von Anwendungen aufweist. Das Computersystem 110 kann in Reaktion auf die Aktualisierungsanforderung die Installation der zumindest einen Anwendungsaktualisierung für das Computergerät 200 einleiten.
  • In einigen Beispielen kann das Computergerät 200 ein Modellbewertungsmodul 218 beinhalten. Das Computergerät 200 kann das Modellbewertungsmodul 218 zum Ermitteln der Effektivität eines oder mehrerer Maschinenlernmodelle basierend auf einer Vielzahl von Metriken verwenden. Die Metriken können eine Anwendungsaktualitätsmetrik, eine Anwendungsaktualitätsmetrik für aktive Benutzer, eine Anwendungsaktualisierungsabdeckungsmetrik und eine Anwendungsaktualisierungseffizienzmetrik beinhalten, ohne darauf beschränkt zu sein.
  • Die Anwendungsaktualitätsmetrik kann einen Prozentsatz der in der Installationsbasis einer Anwendung enthaltenen Computergeräte beinhalten, die die Anwendung innerhalb eines vorbestimmten Zeitraums zum ersten Mal installiert haben („frische Installation“) und auf denen somit die aktuellste Version der Anwendung zum Zeitpunkt der Installation ausgeführt wird. Die Anwendungsaktualitätsmetrik kann unter Nutzung der folgenden Gleichung bewertet werden: A p p A k t u a l i t a ¨ t = A n z . ( f r i s c h e   A p p s ) A n z . ( A p p s )
    Figure DE112021006069T5_0001
  • Wie hier verwendet, können frische Apps als die frischen Installationen der Anwendung innerhalb des vorbestimmten Zeitraums definiert werden. Apps kann als die Größe der Installationsbasis der Anwendung definiert werden. So kann AppAktualität die Anzahl an frischen Installationen der Anwendung innerhalb eines vorbestimmten Zeitraums dividiert durch die Anzahl an Computergeräte, die die Anwendung installiert haben, darstellen.
  • Die Anwendungsaktualitätsmetrik für aktive Benutzer kann einen Prozentsatz der in der Installationsbasis einer Anwendung enthaltenen Computergeräte darstellen, die die Anwendung innerhalb eines ersten vorbestimmten Zeitraums frisch installiert haben und deren Benutzer die Anwendung (z. B. basierend auf der Anzahl an Öffnungen der Anwendung durch den Benutzer, der Anzahl an Interaktionen des Benutzers mit der Anwendung, der Dauer der Interaktionen des Benutzers mit der Anwendung usw.) innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben. Die Anwendungsaktualitätsmetrik für aktive Benutzer kann unter Nutzung der folgenden Gleichung bewertet werden: A p p A k t u a l i t a ¨ t F u ¨ r A k t i v e B e n u t z e r = A n z . ( f r i s c h   g e n u t z t e   A p p s ) A n z . ( g e n u t z t e   A p p s )
    Figure DE112021006069T5_0002
  • Wie hier verwendet, können frisch verwendete Apps als die frischen Installationen der Anwendung innerhalb eines ersten vorbestimmten Zeitraums definiert werden, die auch von den Benutzern der Computergeräte innerhalb eines zweiten vorbestimmten Zeitraums verwendet wurden. genutzte Apps kann definiert werden als die Größe der Teilmenge der Installationsbasis der Anwendung, die nur Anwendungen beinhaltet, die innerhalb des zweiten vorbestimmten Zeitraums genutzt wurden. So kann AppAktualität die Anzahl an frischen Installationen der Anwendung innerhalb des ersten vorbestimmten Zeitraums darstellen, die von den Benutzern des Computergeräts innerhalb des zweiten vorbestimmten Zeitraums verwendet wurden, dividiert durch die Anzahl an Computergeräte, die die Anwendung innerhalb des zweiten vorbestimmten Zeitraums ausgeführt haben.
  • Die Anwendungsaktualisierungsabdeckungsmetrik kann einen Prozentsatz der in einer Installationsbasis einer Anwendung enthaltenen Computergeräte beinhalten, die innerhalb eines ersten vorbestimmten Zeitraums eine veraltete Version (z. B. eine veraltete Version einer Anwendung) der Anwendung ausgeführt haben und deren Benutzer die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums genutzt haben. Die Anwendungsaktualisierungsabdeckungsmetrik kann unter Nutzung der folgenden Gleichung bewertet werden: A k t u a l i s i e r u n g A b d e c k u n g = A n z . ( A k t u a l i s i e r u n g e n   f u ¨ r   v e r a l t e t e ,   g e n u t z t e   A p p s ) A n z . ( v e r a l t e t e , g e n u t z t e   A p p s )
    Figure DE112021006069T5_0003
  • Wie hier verwendet, können Aktualisierungenfür veraltete Apps als die veralteten Versionen der Anwendung definiert werden, die innerhalb eines ersten vorbestimmten Zeitraums auf die aktuellste Version der Anwendung aktualisiert wurden, die auch von den Benutzern der Computergeräte innerhalb eines zweiten vorbestimmten Zeitraums verwendet wurden -. veraltete genutzte Apps können als die Größe der Teilmenge der Installationsbasis der Anwendung definiert werden, die nur Computergeräte beinhaltet, die eine veraltete Version der Anwendung innerhalb des ersten vorbestimmten Zeitraums ausgeführt haben, die von den Benutzern der Computergeräte innerhalb des zweiten vorbestimmten Zeitraums verwendet wurde. Somit kann AktualisierungAbdeckung die Anzahl an veralteten Versionen der Anwendung darstellen, die innerhalb des ersten vorbestimmten Zeitraums aktualisiert wurden und die von den Benutzern des Computergeräts innerhalb des zweiten vorbestimmten Zeitraums genutzt wurden, dividiert durch die Anzahl an Computergeräten, die eine veraltete Version der Anwendung innerhalb des ersten vorbestimmten Zeitraums ausgeführt haben, die von den Benutzern der Computergeräte innerhalb des zweiten vorbestimmten Zeitraums genutzt wurde.
  • Die Anwendungsaktualisierungseffizienzmetrik kann einen Prozentsatz der in einer Installationsbasis einer Anwendung enthaltenen Computergeräte beinhalten, die innerhalb eines ersten vorbestimmten Zeitraums eine veraltete Version der Anwendung ausgeführt haben und deren Benutzer die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums nach der Aktualisierung der Anwendung genutzt haben. Die Anwendungsaktualisierungseffizienzmetrik kann unter Nutzung der folgenden Gleichung bewertet werden: A k t u a l i s i e r u n g E f f i z i e n z = A n z . ( A k t u a l i s i e r u n g e n   f u ¨ r   v e r a l t e t e , g e n u t z t e   A p p s ) A n z . ( A k t u a l i s i e r u n g e n   f u ¨ r   v e r a l t e t e   A p p s )
    Figure DE112021006069T5_0004
  • Wie hier verwendet, können Aktualisierungenfür veraltete Apps als die Größe der Teilmenge der Installationsbasis der Anwendung definiert werden, die nur Computergeräte beinhaltet, die innerhalb des ersten vorbestimmten Zeitraums eine veraltete Version der Anwendung ausgeführt haben, die aktualisiert wurde. Somit kann AktualisierungEffizienz die Anzahl an veralteten Versionen der Anwendung darstellen, die innerhalb des ersten vorbestimmten Zeitraums aktualisiert wurden und die von den Benutzern des Computergeräts innerhalb des zweiten vorbestimmten Zeitraums genutzt wurden, dividiert durch die Anzahl der Computergeräte, die eine veraltete Version der Anwendung innerhalb des ersten vorbestimmten Zeitraums ausgeführt haben, die aktualisiert wurde.
  • Die zur Auswertung dieser Metriken erforderlichen Daten können regelmäßig, intermittierend und/oder gemäß den Anweisungen des Anwendungsverwaltungsmoduls (z. B. vom Betriebssystem 205, dem Anwendungsverwaltungsmodul 207 usw.) und unter Nutzung bekannter Techniken erfasst werden. Beispielsweise können die Daten jeden Tag für zumindest 35 Tage aggregiert, verpackt und in Speichergeräten 226 gespeichert werden. Das Modellbewertungsmodul 218 kann die Daten anschließend zum Ermitteln der Effektivität des Maschinenlernmodells 216 verwenden.
  • In einigen Beispielen kann das Modellbewertungsmodul 218 der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer, der Anwendungsaktualisierungsabdeckungsmetrik und der Anwendungsaktualisierungseffizienzmetrik eine jeweilige Gewichtung zuweisen. Das Modellbewertungsmodul 218 kann anschließend einen Algorithmus zum Ermitteln der Effektivität des Maschinenlernmodells 216 basierend auf den Metriken verwenden.
  • In einigen Beispielen kann das Computergerät 200 das Modellbewertungsmodul 218 zum Ermitteln der Effektivität eines oder mehrerer Maschinenlernmodelle basierend auf diesen Metriken verwenden. Beispielsweise kann das Modellbewertungsmodul 218 diese Metriken zum Bewerten der Effektivität einer Menge von auf einem ersten Computergerät installierten Anwendungsaktualisierungen verwenden, die basierend auf der jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden. In ähnlicher Weise kann das Computergerät 200 das Modellbewertungsmodul 218 ferner zum Ermitteln der Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von auf einem zweiten Computergerät installierten Anwendungsaktualisierungen verwenden, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede von dem zweiten Maschinenlernmodell erzeugte Anwendung priorisiert wurden. Das Computergerät 200 kann dann basierend auf der Effektivität (z. B. der auf den Metriken basierenden Ausgabe des Algorithmus) des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells ein effektiveres des ersten und zweiten Maschinenlernmodells auswählen, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlemmodell zu verwenden ist.
  • Der Modelltrainer 219 kann das Maschinenlernmodell 216 unter Nutzung einer oder mehrerer Metriken (z. B. der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer, der Anwendungsaktualisierungsabdeckungsmetrik, der Anwendungsaktualisierungseffizienzmetrik usw.) trainieren. Beispielsweise kann der Modelltrainer 219 die Optimierung der Zielfunktion versuchen. Die Zielfunktion kann die Maximierung der Effektivität des Maschinenlernmodells 216 basierend auf der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer, der Anwendungsaktualisierungsabdeckungsmetrik und der Anwendungsaktualisierungseffizienzmetrik sein. Als Ergebnis kann der Modelltrainer 219 die Effektivität des Maschinenlernmodells 216 zur Ausgabe von Aktualisierungsprioritätsbewertungen verbessern, die indikativ für die Wahrscheinlichkeit einer erfolgreichen Installation von Anwendungsaktualisierungen und die relative Wichtigkeit der Anwendungsaktualisierungen für den Benutzer sind.
  • Während das Computergerät 200 von 2 ein Maschinenlernmodul 216, ein Anwendungsaktualisierungsmodul 217, ein Modellbewertungsmodul 218 und einen Modelltrainer 219 beinhaltet, können in anderen Beispielen eines oder mehrere der Module 216, 217, 218 oder 219 in einem entfernten Computersystem (z. B. dem Computersystem 110 von 1) gespeichert sein und die von den Modulen 216, 217, 218 oder 219 bereitgestellte Funktionalität kann von einem solchen entfernten Computersystem bereitgestellt werden. Durch Einbeziehen eines oder mehrerer der Module 216, 217, 218 oder 219 kann das Computergerät 200 Techniken dieser Offenbarung auf dem Gerät (d. h., ohne Anwendungsnutzungsinformationen, Netzwerkeinstellungsinformationen, Anwendungsinstallationsinformationen, Anwendungsaktulisierungsverlaufsinformationen usw. zu senden) zu einem entfernten Computersystem ausführen.
  • 3 ist ein Blockdiagramm, das Aspekte eines beispielhaften Maschinenlernmodells zur Priorisierung von Anwendungsaktualisierungen gemäß Techniken dieser Offenbarung veranschaulicht. Wie in 3 veranschaulicht, wird ein Maschinenlernmodell 316, das dem Maschinenlernmodell 116, 216 ähnlich, wenn nicht sogar wesentlich ähnlich sein kann, darauf trainiert, Eingabedaten einer oder mehrerer Arten zu empfangen und in Reaktion darauf Ausgabedaten einer oder mehrerer Arten bereitzustellen. 3 veranschaulicht somit das Maschinenlernmodell 316, das Inferenzen durchführt. Die Eingabedaten können ein oder mehrere Merkmale beinhalten, die mit einer Instanz oder einem Beispiel assoziiert sind. In einigen Beispielen können die mit der Instanz oder dem Beispiel assoziierten Merkmale in einem Merkmalsvektor organisiert werden. In einigen Beispielen können die Ausgabedaten eine oder mehrere Vorhersagen beinhalten. Vorhersagen können auch als Inferenzen bezeichnet werden. Daher kann das Maschinenlernmodell 316 bei Vorliegen von mit einer bestimmten Instanz assoziierten Merkmalen eine Vorhersage für diese Instanz basierend auf den Merkmalen ausgeben.
  • Ein Anwendungsaktualisierungsspeicher 315, der 115, 215 ähnlich, wenn nicht sogar wesentlich ähnlich sein kann, kann Eingabedaten für den Zugriff des Maschinenlernmodells 316 speichern. Der Anwendungsaktualisierungsspeicher 315 kann die Anwendungsnutzung 315A, den Installationsverlauf 315B und den Kontext 315C beinhalten, die der Anwendungsnutzung 215A, dem Installationsverlauf 215B bzw. dem Kontext 215 ähnlich, wenn nicht sogar wesentlich ähnlich sind.
  • Die Anwendungsnutzung 315A kann Informationen über die Häufigkeit beinhalten, mit der der Benutzer eines Computergeräts (z. B. Computergerät 100, 200) jede Anwendung aus der Menge von Anwendungen nutzt. Die Informationen über die Häufigkeit, mit der der Benutzer die einzelnen Anwendungen nutzt, können zum Beispiel beinhalten, wie oft der Benutzer über einen vorbestimmten Zeitraum (z. B. einen Tag, eine Woche, einen Monat usw.) die Anwendung öffnet, wie oft der Benutzer mit der Anwendung interagiert, wie viel Zeit er mit der Anwendung verbringt usw.
  • Der Installationsverlauf 315B kann Informationen über die Wahrscheinlichkeit einer erfolgreichen Installation 340A beinhalten. Die Wahrscheinlichkeit einer erfolgreichen Installation 340A kann eine aus der Anzahl an Installationsversuchen durch das Computergerät, der Anzahl an erfolgreichen Installationen von Anwendungsaktualisierungen, der Anzahl an erfolglosen Installationen von Anwendungsaktualisierungen und dergleichen berechnete Statistik sein. Hat das Computergerät beispielsweise 10 Mal versucht, eine oder mehrere Anwendungsaktualisierungen für eine Anwendung (z. B. Anwendung 206A) zu installieren, und 7 dieser Versuche waren erfolgreich, während 3 Versuche fehlgeschlagen sind, kann das Computergerät eine Wahrscheinlichkeit für eine erfolgreiche Installation 340A von 70 % für die Anwendung speichern.
  • Der Installationsverlauf 315B kann ferner Informationen über die Zeit seit der vorherigen Anwendungsaktualisierung für eine Anwendung beinhalten. Beispielsweise kann das Computergerät die Zeitspanne (z. B. in Sekunden, Minuten, Stunden, Tagen usw.) zwischen dem letzten Herunterladen und Installieren der vorherigen Anwendungsaktualisierung durch das Computergerät und der letzten Überprüfung des Computergeräts auf eine Aktualisierung, der Installation der aktuellsten verfügbaren Version der Anwendungsaktualisierung durch das Computergerät und dergleichen speichern.
  • Der Kontext 315C kann Informationen über einen Computergerätspeicher 342A beinhalten. Der Computergerätspeicher 342A kann Informationen über den verfügbaren Speicher eines Computergeräts zum Installieren einer oder mehrerer Anwendungsaktualisierungen beinhalten. Der Computergerätspeicher 342A kann ferner Informationen über den verfügbaren Speicher des Computergeräts zum Installieren einer oder mehrerer Anwendungsaktualisierungen beinhalten.
  • Der Kontext 315C kann auch Informationen über Netzwerkpräferenzen 342B beinhalten. Die Netzwerkpräferenzen 342B können Informationen über die Netzwerkverbindungen beinhalten, über die das Computergerät eine oder mehrere Anwendungsaktualisierungen herunterladen kann (z. B. von dem Computersystem 110, 210). Die Netzwerkpräferenz 342B für das Herunterladen einer Anwendungsaktualisierung (z. B. basierend auf der Größe der Anwendungsaktualisierung) kann für alle auf dem Computergerät 200 installierten Anwendungen oder für jede einzelne Anwendung festgelegt werden. Zusätzlich können die Verbindungseinstellungen Größenbeschränkungen für die Anwendungsaktualisierung beinhalten. Beispielsweise können Anwendungsaktualisierungen, die eine bestimmte Größe überschreiten, auf die automatische Aktualisierung bei Vorhandensein einer WLAN-Verbindung beschränkt werden.
  • Das Maschinenlernmodell 316 kann Eingabedaten (z. B. Anwendungsnutzung 315A, Installationsverlauf 315B, Kontext 315C usw.) aus dem Anwendungsaktualisierungsspeicher 315 empfangen, um Ausgabedaten in Form einer Aktualisierungsprioritätsbewertung 332 bereitzustellen. Die Aktualisierungsprioritätsbewertung 332 kann auf den Eingabedaten basieren und somit indikativ für die Eingabedaten sein. Die Aktualisierungsprioritätsbewertung 332 kann beispielsweise indikativ für die Wahrscheinlichkeit einer erfolgreichen Installation einer Anwendungsaktualisierung, den Anwendungsnutzungsverlauf (der z. B. wiederum indikativ für die Wichtigkeit sein kann) sowie für die Veralterung (z. B. die Zeitspanne seit der Installation der vorherigen Anwendungsaktualisierung 340B) der Anwendung sein.
  • Zum Ermitteln einer Aktualisierungsprioritätsbewertung kann das Maschinenlemmodell eine Bewertungsfunktion berechnen, um einen erwarteten Wert der Aktualitätserhöhung (z. B. die Differenz zwischen der Aktualisierungsprioritätsbewertung einer Anwendung vor einer Anwendungsaktualisierung und der Aktualisierungsprioritätsbewertung für die Anwendung unmittelbar nach der Anwendungsaktualisierung) unter Verwendung der folgenden Gleichung zu formulieren: B e w e r t u n g ( C i ) = ƒ ( P E r f o l g I n s t a l l a t i o n ( C i ) , P A p p g e o ¨ f f n e t ( C i ) , F A k t u a l i t a ¨ t s e r h o ¨ h u n g ( C i ) )
    Figure DE112021006069T5_0005
    wobei Ci eine Kandidatenanwendungsaktualisierung darstellt, PErfolg-Installation(Ci) ein Wert (z. B. zwischen 0 und 1) ist, der die Wahrscheinlichkeit einer erfolgreichen Installation einer Anwendungsaktualisierung darstellt, wobei PApp-geöffnet(Ci) ein Wert (z. B. zwischen 0 und 1) ist, der die Wahrscheinlichkeit darstellt, dass eine Anwendung geöffnet und/oder genutzt wird (z. B. innerhalb eines vorbestimmten Zeitraums), und FAktualitätserhöhung(Ci) eine Glättungsfunktion ist, die auf die Veralterung einer Anwendungsaktualisierung angewendet wird. Beispielsweise kann FAktualitätserhähung(ci) einfach die Alterung der Anwendung in einer Anzahl an Tagen sein. Alternativ kann FAktuahtätserhöhung(Ci) ein unter Nutzung bekannter Techniken segmentierter Wert sein.
  • f(PErfolg-Instaiiation(Ci), PApp-geöffnet(Ci), FAktualitätserhöhung(Ci)) kann einen probalistischen erwarteten Wert angeben. f(PErfolg-instaiiation(Ci), PApp-geöffnet(Ci)) kann angeben, wie wahrscheinlich es ist, dass eine Anwendungsaktualisierung zu der Aktualitätserhöhung beiträgt, während FAktualitätserhöhung(Ci) den Umfang der Aktualitätserhöhung quantifizieren kann. FAktualitätserhöhung kann eine manuell eingestellte und/oder konstruierte Glättungsfunktion sein. Das Maschinenlernmodell 316 karm PErfolg-Installation (Ci) und PApp-geoffnet(Ci) schätzen.
  • Der probabilistische erwartete Wert kann als Aktualisierungsprioritätsbewertung genutzt oder als Grundlage für die Erzeugung der Aktualisierungsprioritätsbewertung verwendet werden. Beispielsweise kann das Computersystem 110 dem Computergerät 100 die für jede der Anwendungen mit ausstehenden Aktualisierungen erzeugten probabilistischen Werte bereitstellen. In einigen Fällen kann das Anwendungsaktualisierungsmodul 117 die von dem Maschinenlernmodell 316 erzeugten probalistischen erwarteten Werte zum Erzeugen der Aktualisierungsprioritätsbewertungen normalisieren, gewichten oder anderweitig anpassen.
  • 4 ist ein Blockdiagramm, das einen beispielhaften Betrieb des Maschinenlernmodells gemäß Techniken dieser Offenbarung veranschaulicht. Wie in 4 dargestellt, wird ein beispielhafter Trainingsprozess 450 zum Trainieren des Maschinenlernmodells 416 verwendet, das dem Maschinenlernmodell 116, 216, 316 ähnlich, wenn nicht sogar wesentlich ähnlich sein kann. Das Maschinenlernmodell 416 wird anhand von Trainingsdaten 451 trainiert, die Eingabedaten 452 mit Kennzeichnungen 453 beinhalten. Der Trainingsprozess 450 ist ein beispielhafter Trainingsprozess; andere Trainingsprozesse können ebenfalls verwendet werden.
  • Die von dem Trainingsprozess 450 verwendeten Trainingsdaten 451 können, sofern der Benutzer die Nutzung solcher Daten für das Training erlaubt, anonymisierte Nutzungsprotokolle von Freigabeflüssen beinhalten, z. B. gemeinsam genutzte Inhaltselemente, gebündelte Inhaltsstücke, die bereits als zusammengehörig identifiziert wurden, z. B. von Entitäten in einem Wissensgraphen, usw. In einigen Beispielen können die Trainingsdaten 451 Beispiele von Eingabedaten 452 (z. B. Anwendungsnutzung 315A, Installationsverlauf 315B, Kontext 315C usw.) beinhalten, die Ausgabedaten 454 (z. B. Aktualisierungsprioritätsbewertung 332) entsprechen, denen Kennzeichnungen 453 zugeordnet wurden, die den Ausgabedaten 454 entsprechen.
  • In einigen Beispielen kann das Maschinenlernmodell 416 durch Optimierung einer Zielfunktion, wie z. B. der Zielfunktion 455, trainiert werden. Beispielsweise kann die Zielfunktion 455 in einigen Beispielen eine Verlustfunktion sein oder beinhalten, die die von dem Modell aus den Trainingsdaten erzeugten Ausgabedaten und die mit den Trainingsdaten assoziierten Ausgabedaten (z. B. Grundwahrheits-Aktualisierungsprioritätsbewertungen) vergleicht (z. B. eine Differenz zwischen diesen ermittelt). Beispielsweise kann die Verlustfunktion eine Summe oder einen Mittelwert der quadratischen Differenzen zwischen den Ausgabedaten und den Kennzeichnungen auswerten. In einigen Beispielen kann die Zielfunktion 455 eine Kostenfunktion sein oder beinhalten, die die Kosten für ein bestimmtes Ergebnis oder bestimmte Ausgabedaten beschreibt. Andere Beispiele der Zielfunktion 455 können margenbasierte Techniken, wie z. B. Triplettverlust oder Maximalmargentraining beinhalten.
  • Zur Optimierung der Zielfunktion 455 können eine oder mehrere verschiedene Optimierungstechniken ausgeführt werden. Die Optimierungstechnik(en) können zum Beispiel die Zielfunktion 455 minimieren oder maximieren. Beispielhafte Optimierungstechniken beinhalten Hesse-basierte Techniken und gradientenbasierte Techniken, wie z. B. Koordinatenabstieg, Gradientenabstieg (z. B. stochastischer Gradientenabstieg), Subgradientenverfahren, usw. Andere Optimierungstechniken beinhalten Black-Box-Optimierungstechniken und Heuristiken.
  • In einigen Beispielen kann die Rückwärtspropagation von Fehlern in Verbindung mit einer Optimierungstechnik (z. B. gradientenbasierten Techniken) verwendet werden, um das Maschinenlernmodell 416 zu trainieren (z. B. wenn das Maschinenlernmodell ein mehrschichtiges Modell wie z. B. ein künstliches neuronales Netz ist). Für das Training des Maschinenlernmodells 416 kann beispielsweise ein iterativer Zyklus aus Propagation und Aktualisierung der Modellparameter (z. B. der Gewichte) ausgeführt werden. Beispiele für Rückwärtspropagationstechniken beinhalten abgeschnittene Rückwärtspropagation über die Zeit, Levenberg-Marquardt-Rückwärtspropagation usw.
  • In einigen Beispielen kann das hierin beschriebene Maschinenlernmodell 416 unter Nutzung unüberwachter Lerntechniken zum Erhöhen der Effektivität des Maschinenlernmodells 416 trainiert werden (z. B. basierend auf der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer usw.). Unüberwachtes Lernen kann das Ableiten einer Funktion zur Beschreibung der verborgenen Struktur aus unmarkierten Daten beinhalten. Zum Beispiel kann eine Klassifizierung oder Kategorisierung nicht in den Daten enthalten sein. Unüberwachtes Lernen kann zum Erzeugen von maschinell erlernten Modellen verwendet werden, die in der Lage sind, Clustering, Anomalieerkennung, das Erlernen latenter Variablenmodelle oder andere Aufgaben durchzuführen.
  • Das Maschinenlernmodell 416 kann zum Erhöhen der Effektivität des Maschinenlernmodells 416 unter Nutzung halbüberwachter Techniken trainiert werden, die Aspekte des überwachten und des unüberwachten Lernens kombinieren. Das Maschinenlernmodell 416 kann durch evolutionäre Techniken oder genetische Algorithmen trainiert oder anderweitig erzeugt werden. In einigen Beispielen kann das hierin beschriebene Maschinenlernmodell 416 unter Nutzung des Verstärkungslernens trainiert werden. Bei dem Verstärkungslernen kann ein Agent (z. B. ein Modell) in einer Umgebung Aktionen ausführen und das Maximieren von Belohnungen und/oder das Minimieren von Bestrafungen lernen, die aus diesen Aktionen resultieren. Das Verstärkungslernen kann sich von dem überwachten Lernproblem dadurch unterscheiden, dass weder korrekte Eingabe-/Ausgabepaare dargestellt werden, noch suboptimale Aktionen explizit korrigiert werden.
  • In einigen Beispielen kann das hierin beschriebene Maschinenlernmodell 416 eine Anzahl an Hyperparametern, wie z. B. die Lerngeschwindigkeit, die Anzahl an Schichten, die Anzahl an Knoten in jeder Schicht, die Anzahl an Blättern in einem Baum, die Anzahl an Clustern; usw., beinhalten oder anderweitig durch diese beeinflusst werden. Hyperparameter können die Modellleistung beeinflussen. Hyperparameter können manuell oder automatisch durch Anwendung von Techniken wie z. B. Gittersuche, Black-Box-Optimierungstechniken (z. B. Bayes'sche Optimierung, Zufallssuche, usw.), gradientenbasierte Optimierung, usw. ausgewählt werden. Beispielhafte Techniken und/oder Werkzeuge zum Ausführen der automatischen Hyperparameter-Optimierung beinhalten Hyperopt; Auto-WEKA; Spearmint; Metric Optimization Engine (MOE); usw.
  • In einigen Beispielen können verschiedene Techniken für die Optimierung und/oder Anpassung der Lemgeschwindigkeit beim Trainieren des Modells genutzt werden. Beispielhafte Techniken und/oder Werkzeuge zur Ausführung einer Lerngeschwindigkeitsoptimierung oder -anpassung beinhalten Adagrad; Adaptive Moment Estimation (ADAM); Adadelta; RMSprop; usw.
  • In einigen Beispielen können Übertragungslerntechniken zum Bereitstellen eines Ausgangsmodells genutzt werden, mit dem das Training des hierin beschriebenen Maschinenlernmodells 416 beginnen kann.
  • In einigen Beispielen kann das hierin beschriebene Maschinenlernmodell 416 in verschiedenen Abschnitten eines computerlesbaren Codes auf einem Computergerät enthalten sein. In einem Beispiel kann das Maschinenlernmodell 416 in einer bestimmten Anwendung oder einem bestimmten Programm enthalten sein und (z. B. ausschließlich) von dieser Anwendung oder diesem Programm genutzt werden. Daher kann ein Computergerät in einem Beispiel eine Anzahl an Anwendungen beinhalten, und eine oder mehrere dieser Anwendungen können ihre jeweilige eigene Maschinenlernbibliothek und ihr eigenes Maschinenlernmodell bzw. ihre eigenen Maschinenlernmodelle enthalten.
  • In einem anderen Beispiel kann das hierin beschriebene Maschinenlernmodell 416 in einem Betriebssystem eines Computergeräts (z. B. in einer zentralen Intelligenzschicht eines Betriebssystems) enthalten sein und kann von einer oder mehreren Anwendungen, die mit dem Betriebssystem interagieren, aufgerufen oder anderweitig genutzt werden. In einigen Beispielen kann jede Anwendung unter Nutzung einer Anwendungsprogrammierschnittstelle (API) (z. B. einer gemeinsamen, öffentlichen API für alle Anwendungen) mit der zentralen Intelligenzschicht (und dem/den darin gespeicherten Modell(en)) kommunizieren.
  • In einigen Beispielen kann die zentrale Intelligenzschicht mit einer zentralen Gerätedatenschicht kommunizieren. Die zentrale Gerätedatenschicht kann ein zentralisierter Speicher für die Daten des Computergeräts sein. Die zentrale Gerätedatenschicht kann mit einer Anzahl anderer Komponenten des Computergeräts, wie z. B. einem oder mehreren Sensoren, einem Kontextmanager, einer Gerätestatuskomponente und/oder zusätzlichen Komponenten kommunizieren. In einigen Beispielen kann die zentrale Gerätedatenschicht mit jeder Gerätekomponente unter Nutzung einer API (z. B. einer privaten API) kommunizieren.
  • Um das Maschinenlernmodell 416 gemäß den Techniken dieser Offenbarung zu trainieren, kann ein Modelltrainer (z. B. Modelltrainer 219) Trainingsdaten 451 nutzen, die die folgenden Eingabedaten 452 beinhalten, denen Kennzeichnungen 453 zugewiesen wurden, die den Ausgabedaten 454 entsprechen. In einigen Beispielen kann das Maschinenlernmodell 416 eine jeweilige Aktualisierungsprioritätsbewertung für jede Anwendungsaktualisierung unabhängig ermittelt. Daher kann eine unter Nutzung dieses Ansatzes ermittelte Reihenfolge der Aktualisierungsprioritätsbewertungen (z. B. f(PErfolg-Installation(Ci), PApp-geöffnet(Ci), FAktualitälserhöhung(Ci))) die Anwendungsaktualisierungen in eine relative Reihenfolge einstufen. In einem anderen Beispiel kann das Maschinenlernmodell 316 eine relative Reihenfolge zwischen einem Paar von Anwendungsaktualisierungen ermitteln. In diesem Beispiel kann das Maschinenlernmodell 316 eine ähnliche Bewertungsfunktion wie die zuvor beschriebene verwenden, diese jedoch auf Grundwahrheiten (z. B. binäre Werte) anwenden, um die erwartete Reihenfolge von zwei Anwendungsaktualisierungen zu kennzeichnen. Das heißt, das Maschinenlernmodell 316 kann die folgende Gleichung nutzen: B e w e r t u n g ( C i ) = ƒ ( i s t _ E r f o l g _ I n s t a l l ( C i ) , i s t _ a p p _ g e o ¨ f f n e t ( C i ) , F A k t u a l i t a ¨ y s e r h o ¨ h u n g ( C i ) )
    Figure DE112021006069T5_0006
    Ferner kann die Reihenfolgenkennzeichnung unter Nutzung des folgenden Algorithmus definiert werden: K e n n z e i c h n u n g R e i h e n f o l g e ( C i , C j ) = B e w e r t u n g ( C i ) > B e w e r t u n g ( C j )
    Figure DE112021006069T5_0007
  • 5 ist ein Ablaufdiagramm, das einen beispielhaften Betrieb des Computersystems und Computergeräts gemäß Techniken der vorliegenden Offenbarung veranschaulicht. In dem Beispiel von 5 können das Computergerät 100 und das Computersystem 110 die Installation von Anwendungsaktualisierungen für eine Menge von auf dem Computergerät 100 installierten Anwendungen durch Identifizieren von Anwendungsaktualisierungen, die eine höhere Wahrscheinlichkeit für eine erfolgreiche Installation aufweisen, priorisieren, wobei auch Aktualisierungen für Anwendungen, die der Benutzer am häufigsten verwendet, priorisiert werden. Das Computergerät 100 und das Computersystem 110 können anschließend das Maschinenlemmodell 116 zum Ermitteln von Aktualisierungsprioritätsbewertungen für eine Menge von Anwendungsaktualisierungen anwenden, die das Computergerät 100 zur Priorisierung (z. B. Einstufung) der Anwendungsaktualisierungen verwenden kann.
  • Wie in 5 dargestellt, kann das Anwendungsaktualisierungsmodul 117 des Computersystems 110 eine Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen 106 von dem Computergerät 100 empfangen (500). Das Computergerät 100 kann das Anwendungsverwaltungsmodul 107 zum Senden (z. B. unter Nutzung der KOMM.-Komponenten 124) der Anforderung von Anwendungsaktualisierungsinformationen an das Anwendungsaktualisierungsmodul 117 ausführen. Die Anwendungen 106 können die Anwendungen 106A und 106N beinhalten, bei denen es sich zum Beispiel um eine Fotografieanwendung bzw. eine Musikanwendung handeln kann. Die Anforderung von Anwendungsaktualisierungsinformationen kann Anwendungsverwaltungsinformationen beinhalten, auf die das Computergerät 210 unter Nutzung des Anwendungsverwaltungsmoduls 107 zugreifen kann.
  • Das Computersystem 110 kann, basierend auf der Anforderung von Anwendungsaktualisierungsinformationen, eine Menge von zu aktualisierenden Anwendungen ermitteln (502). Das Anwendungsaktualisierungsmodul 117 kann beispielsweise eine Abfrage des Anwendungsaktualisierungsspeichers 115 durchführen, um zu ermitteln, ob und, falls vorhanden, welche der in den Anwendungsaktualisierungsinformationen identifizierten Anwendungen ausstehende Aktualisierungen haben. Das Anwendungsaktualisierungsmodul 117 kann eine Abfrage ausführen, um aktuelle Versionsinformationen für eine oder mehrere dieser Anwendungen abzurufen. Das Anwendungsaktualisierungsmodul kann die abgerufenen aktuellen Versionsinformationen mit der aktuell installierten Version der Fotografieanwendung 106A, der Musikanwendung 106N und der sozialen Netzwerkanwendung vergleichen. Basierend auf dem Versionsinformationsvergleich kann das Anwendungsaktualisierungsmodul 117 ermitteln, dass eine oder mehrere der Anwendungen ausstehende Aktualisierungen aufweisen und diese Anwendungen in die Menge von Anwendungen aufnehmen.
  • Das Computersystem kann das Maschinenlernmodell 116 zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung (z. B. Aktualisierungsprioritätsbewertung 332) für jede Anwendung aus der Menge von Anwendungen anwenden (504). Das Maschinenlernmodell 116 kann die jeweiligen Aktualisierungsprioritätsbewertungen basierend auf in dem Anwendungsaktualisierungsspeicher gespeicherten Eingabedaten ermitteln. Beispielweise kann das Maschinenlernmodell 116 in dem Anwendungsaktualisierungsspeicher 115 gespeicherte Eingabedaten (z. B. Anwendungsnutzung 215A, Installationsverlauf 215B, Kontext 215C usw.) zum Bereitstellen von Ausgabedaten in Form von Aktualisierungsprioritätsbewertungen nutzen. Die Aktualisierungsprioritätsbewertung für jede Anwendung kann indikativ für die Wichtigkeit der Anwendung für den Benutzer des Computergeräts 100 (z. B. basierend auf der Anwendungsnutzung 215A, dem Installationsverlauf 215B, dem Kontext 215C, usw.) sein.
  • Das Computersystem 110 kann eine Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen an das Computergerät 100 senden (506). Die Aktualisierungsprioritätsbewertungen können indikativ für die Wahrscheinlichkeit einer erfolgreichen Installation einer Anwendungsaktualisierung und die relative Wichtigkeit (z. B. basierend auf der Häufigkeit und Dauer der Nutzung der Anwendung durch den Benutzer) jeder Anwendung aus der Menge von Anwendungen sein. Somit können die Aktualisierungsprioritätsbewertungen in dieser Hinsicht die Priorisierung von Anwendungsaktualisierungen durch Identifizieren derjenigen Anwendungsaktualisierungen erleichtern, die eine höhere Wahrscheinlichkeit einer erfolgreichen Installation, eine relativ hohe Wichtigkeit für den Benutzer und eine größere Aktualitätserhöhung aufweisen.
  • Das Computersystem 110 kann von dem Computergerät 100 eine Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen empfangen (508). Das Computergerät 100 kann die Aktualisierungsanforderung in Reaktion auf und basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen senden. Die zumindest eine Anwendung aus der Menge von Anwendungen kann von dem Computergerät 100 basierend auf der jeweiligen Aktualisierungsprioritätsbewertung (z. B. einer Einstufung) ausgewählt werden. Das Computersystem 110 kann, in Reaktion auf das Empfangen der Aktualisierungsanforderung, die Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen einleiten (510).
  • 6 ist ein Ablaufdiagramm, das einen weiteren beispielhaften Betrieb des Computersystems und Computergeräts gemäß Techniken der vorliegenden Offenbarung veranschaulicht. In dem Beispiel von 6 kann das Computersystem 110 die Effektivität eines oder mehrerer Maschinenlernmodelle 116 ermitteln, um, basierend auf der Effektivität des einen oder der mehreren Maschinenlernmodelle, das Effektivste für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes zu verwendende Maschinenlernmodell auszuwählen. Es versteht sich jedoch, dass das Computergerät 100 auch die Effektivität eines oder mehrerer Maschinenlernmodelle gemäß Techniken der vorliegenden Offenbarung ermitteln kann.
  • Wie in 6 dargestellt, kann das Computersystem 110 die Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von auf dem ersten Computergerät installierten Anwendungsaktualisierungen ermitteln, die basierend auf der jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden (600). Das Computersystem 100 kann die Effektivität des ersten Maschinenlernmodells basierend auf der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer, der Anwendungsaktualisierungsabdeckungsmetrik, der Anwendungsaktualisierungseffizienzmetrik und dergleichen ermitteln. Beispielsweise kann das Modellbewertungsmodul 118 die Metriken zum Bewerten der Effektivität einer Menge von auf einem ersten Computergerät installierten Anwendungsaktualisierungen verwenden, die basierend auf der jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden.
  • Das Computersystem 110 kann ferner die Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von auf einem zweiten Computergerät installierten Anwendungsaktualisierungen ermitteln, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertungfür jede von dem zweiten Maschinenlernmodell erzeugte Anwendung priorisiert wurden (602). In ähnlicher Weise kann das Computersystem 110 die Effektivität des zweiten Maschinenlernmodells basierend auf der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer, der Anwendungsaktualisierungsabdeckungsmetrik, der Anwendungsaktualisierungseffizienzmetrik und dergleichen ermitteln.
  • Das Computersystem 110 kann, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, ein effektiveres des ersten und zweiten Maschinenlernmodells auswählen, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist (604). Beispielsweise kann das Computersystem 110 das Maschinenlernmodell auswählen, das bei der Anwendungsaktualitätsmetrik, der Anwendungsaktualitätsmetrik für aktive Benutzer, der Anwendungsaktualisierungsabdeckungsmetrik, der Anwendungsaktualisierungseffizienzmetrik usw. eine bessere Leistung (z. B. eine höhere Bewertung) erzielt hat.
  • Darüber hinaus kann das Computersystem 110 das ausgewählte Maschinenlernmodell als bevorzugtes Maschinenlernmodell zur Priorisierung zukünftiger Anwendungsaktualisierungen verwenden (606). Beispielsweise kann das Computersystem 110 eine nachfolgende Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierte(n) Anwendung(en) empfangen. Das Computersystem 110 kann basierend auf der nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen eine nachfolgende Menge von zu aktualisierenden Anwendungen ermitteln, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist. Das Computersystem 110 kann das bevorzugte Maschinenlernmodell zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen anwenden und zum Senden einer Angabe der jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen an das erste Computergerät anwenden. Das Computergerät 100 kann anschließend zumindest eine auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen basierende Aktualisierungsanforderung an das Computersystem senden.
  • Auf diese Weise kann das Computersystem 110 zumindest eine nachfolgende Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen empfangen, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird (608). Das Computersystem 100 kann, in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, die Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen einleiten.
  • 7 ist ein Ablaufdiagramm, das einen beispielhaften Betrieb des Computergeräts gemäß Techniken der vorliegenden Offenbarung veranschaulicht. In dem Beispiel von 7 implementiert das Computergerät 100 lokal ein Maschinenlernmodell und führt eine oder mehrere andere Aufgaben aus, die ansonsten von dem Computersystem 110 ausgeführt werden könnten. Das Computergerät 100 kann zum Priorisieren der Installation von Aktualisierungen für eine Menge von auf dem Computergerät installierten Anwendungen durch Identifizieren von Anwendungsaktualisierungen, die eine höhere Wahrscheinlichkeit für eine erfolgreiche Installation aufweisen, betrieben werden, wobei auch Aktualisierungen für Anwendungen, die der Benutzer am häufigsten verwendet, priorisiert werden. Das Computergerät 100 kann anschließend das Maschinenlemmodell 116 zum Ermitteln von Aktualisierungsprioritätsbewertungen für eine Menge von Anwendungsaktualisierungen anwenden, die das Computergerät 100 zur Priorisierung der Anwendungsaktualisierungen verwenden kann.
  • Wie in 7 dargestellt, kann das Computergerät 100 eine Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen an das Computersystem 110 senden (700). Beispielsweise kann das Computergerät 100 das Anwendungsverwaltungsmodul 107 zum Erzeugen von Anwendungsverwaltungsinformationen verwenden, um die auf dem Computergerät 100 installierten Anwendungen 106 zu identifizieren. In verschiedenen Fällen kann das Anwendungsverwaltungsmodul 107 eine Client-Anwendung sein, die mit einem Anwendungsspeicher assoziiert ist, der von dem Computersystem 110 verwaltet und/oder bereitgestellt wird. Das heißt, das Computergerät 100 kann das Anwendungsverwaltungsmodul 107 ausführen, um eine grafische Benutzeroberfläche (z. B. GUI 104) für einen Online-App-Store über eine präsenzempfindliche Anzeige 120 darzustellen. Der App-Store kann von dem Computersystem 110 gehostet oder anderweitig bereitgestellt werden, und der App-Store kann einem Benutzer des Computergeräts 100 ermöglichen, verschiedene Anwendungen und Anwendungsaktualisierungen auf dem Computergerät 100 zu suchen, auszuwählen, zu kaufen, herunterzuladen und zu installieren.
  • Das Computergerät 100 kann eine Angabe einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen mit einer entsprechenden ausstehenden Aktualisierung von dem Computersystem 110 empfangen (702). Jede jeweilige Aktualisierungsprioritätsbewertung kann von dem Computersystem 110 durch Anwenden zumindest eines Maschinenlernmodells auf jede Anwendung der Menge von Anwendungen ermittelt werden, die die entsprechende anstehende Aktualisierung aufweisen. Zum Beispiel kann das Computersystem das Maschinenlemmodell 116 zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung (z. B. Aktualisierungsprioritätsbewertung 332) für jede Anwendung aus der Menge von Anwendungen anwenden. Das Maschinenlernmodell 116 kann die jeweiligen Aktualisierungsprioritätsbewertungen basierend auf in dem Anwendungsaktualisierungsspeicher gespeicherten Eingabedaten ermitteln. Beispielweise kann das Maschinenlernmodell 116 in dem Anwendungsaktualisierungsspeicher 115 gespeicherte Eingabedaten (z. B. Anwendungsnutzung 215A, Installationsverlauf 215B, Kontext 215C usw.) zum Bereitstellen von Ausgabedaten in Form von Aktualisierungsprioritätsbewertungen nutzen.
  • Das Computergerät 100 kann basierend auf den jeweiligen aktualisierten Prioritätseinstufungen zumindest eine entsprechende ausstehende Aktualisierung zum Anfordern von dem Computersystem 110 auswählen (704). Beispielsweise kann das Computergerät 100 eine ausstehende Aktualisierung für die Anwendung 106A auswählen, wenn 106A die höchste Aktualisierungsprioritätsbewertung aufweist, was anzeigt, dass sie in der Reihenfolge der Aktualisierungsprioritätsbewertungen an erster Stelle steht und dass die entsprechende Anwendungsaktualisierung die wichtigste ist, die verfügbar ist.
  • Das Computergerät 100 kann eine Aktualisierungsanforderung für die zumindest eine entsprechende ausstehende Aktualisierung an das Computersystem 110 senden (706). Zum Beispiel kann das Computergerät 100 eine Aktualisierungsanforderung für eine oder mehrere Anwendungen aus der Menge von Anwendungen mit ausstehenden Aktualisierungen (z. B. 106A) erzeugen und die Aktualisierungsanforderung (z. B. unter Nutzung der KOMM. -Komponenten 124) senden. Das Computergerät 100 kann dann in Reaktion auf das die Installation einleitende Computersystem 110 die zumindest eine entsprechende ausstehende Aktualisierung installieren, wobei das Computersystem die zumindest eine entsprechende ausstehende Aktualisierung installiert (708).
  • Diese Offenbarung umfasst die folgenden Beispiele.
  • Beispiel 1: Ein Verfahren beinhaltet das Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen durch ein Computersystem und von einem Computergerät; das Ermitteln einer Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der Anforderung der Anwendungsaktualisierungsinformationen, wobei j ede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist; das Anwenden eines Maschinenlernmodells durch das Computersystem zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen; das Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen durch das Computersystem und an das Computergerät; das Empfangen einer Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen durch das Computersystem und das Computergerät, wobei die zumindest eine Anwendung aus der Menge von Anwendungen durch das Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der Aktualisierungsanforderung das Einleiten der Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen durch das Computersystem.
  • Beispiel 2: Verfahren nach Beispiel 1, wobei das Computergerät ein erstes Computergerät ist, wobei das Maschinenlernmodell ein erstes Maschinenlernmodell ist, und wobei die Aktualisierungsprioritätsbewertung eine erste Aktualisierungsprioritätsbewertung ist, wobei das Verfahren ferner das Ermitteln einer Effektivität des ersten Maschinenlernmodells durch das Computersystem basierend auf einer auf dem ersten Computergerät installierten Menge von Anwendungsaktualisierungen, die basierend auf der durch das erste Maschinenlernmodell erzeugten jeweiligen ersten Aktualisierungsprioritätsbewertung für jede Anwendung priorisiert wurden; Ermitteln, durch das Computersystem, einer Effektivität eines zweiten Maschinenlernmodells basierend auf einer auf einem zweiten Computergerät installierten Menge von Anwendungsaktualisierungen, die basierend auf einer durch das zweite Maschinenlernmodule erzeugten jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede Anwendung priorisiert wurden; und Auswählen, durch das Computersystem und unter Nutzung der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines effektiveren des ersten und zweiten Maschinenlernmodells, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu nutzen ist, beinhaltet.
  • Beispiel 3: Verfahren nach Beispiel 2, ferner beinhaltend das Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierten Anwendungen durch das Computersystem; das Ermitteln einer nachfolgenden Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; das Anwenden des bevorzugten Maschinenlernmodells durch das Computersystem zum Erzeugen einer jeweiligen nachfolgenden Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen; das Senden einer Angabe der jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen von dem Computersystem und an das erste Computergerät; das Empfangen einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem und von dem ersten Computergerät, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, das Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem.
  • Beispiel 4: Verfahren nach Beispiel 2 oder 3, wobei das Ermitteln der Effektivität des ersten Maschinenlernmodells ferner auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik basiert.
  • Beispiel 5: Verfahren nach einem der Beispiele 1 bis 4, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen zumindest teilweise ermittelt basierend auf einem oder mehreren von: einem oder mehreren von einem verfügbaren Speicher des Computergeräts, einem Nutzungsverlauf für jede Anwendung aus der Menge von Anwendungen, einer Netzwerkpräferenz für die Installation von Aktualisierungen, einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen, einer jeweiligen Wahrscheinlichkeit einer erfolgreichen Installation der Aktualisierung für jede Anwendung, und einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für jede der zumindest einen Anwendung.
  • Beispiel 6: Verfahren nach einem der Beispiele 1 bis 5, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung durch Multiplizieren einer Wahrscheinlichkeit, dass die anstehende Aktualisierung für die Anwendung installiert ist, mit einer Wahrscheinlichkeit, dass die Anwendung innerhalb eines vorbestimmten Zeitraums geöffnet wird, ermittelt.
  • Beispiel 7: Verfahren nach Beispiel 6, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung ferner durch Anwenden einer Glättungsfunktion ermittelt.
  • Beispiel 8: Verfahren nach einem der Beispiele 1 bis 7, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung unabhängig ermittelt.
  • Beispiel 9: Verfahren nach einem der Beispiele 1 bis 8, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für eine erste Anwendung relativ zu einer zweiten Anwendung ermittelt.
  • Beispiel 10: Ein Computersystem beinhaltet einen Speicher; und einen oder mehrere Prozessoren, konfiguriert zum: Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen von einem Computergerät; Ermitteln, basierend auf der Anforderung von Anwendungsaktualisierungsinformationen, einer Menge von zu aktualisierenden Anwendungen, wobei jede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist; Anwenden eines Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen an das Computergerät; Empfangen einer Aktualisierungsanforderung von dem Computergerät für zumindest eine Anwendung aus der Menge von Anwendungen, wobei die zumindest eine Anwendung aus der Menge von Anwendungen durch das Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der Aktualisierungsanforderung, Einleiten der Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen.
  • Beispiel 11: Computersystem nach Beispiel 10, wobei das Computergerät ein erstes Computergerät ist, wobei das Maschinenlernmodell ein erstes Maschinenlernmodell ist, und wobei die Aktualisierungsprioritätsbewertung eine erste Aktualisierungsprioritätsbewertung ist, wobei der eine oder die mehreren Prozessoren ferner konfiguriert sind zum: Ermitteln einer Effektivität des ersten Maschinenlernmodells basierend auf einer auf dem ersten Computergerät installierten Menge von Anwendungsaktualisierungen, die basierend auf der durch das erste Maschinenlernmodell erzeugten jeweiligen ersten Aktualisierungsprioritätsbewertung für jede Anwendung priorisiert wurden; Ermitteln einer Effektivität eines zweiten Maschinenlernmodells basierend auf einer auf einem zweiten Computergerät installierten Menge von Anwendungsaktualisierungen, die basierend auf einer durch das zweite Maschinenlemmodule erzeugten jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede Anwendung priorisiert wurden; und Auswählen, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines der effektiveren Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist.
  • Beispiel 12: Computersystem nach Beispiel 11, wobei der eine oder die mehreren Prozessoren, nach dem Auswählen des bevorzugten Maschinenlernmodells, ferner konfiguriert sind zum: Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierten Anwendungen; Ermitteln, basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, einer nachfolgenden Menge von zu aktualisierenden Anwendungen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; Anwenden des bevorzugten Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen an das erste Computergerät; Empfangen, von dem ersten Computergerät, einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen.
  • Beispiel 13: Computersystem nach Beispiel 11 oder 12, wobei der eine oder die mehreren Prozessoren konfiguriert sind zum Ermitteln der Effektivität des ersten Maschinenlernmodells ferner basierend auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik.
  • Beispiel 14: Computersystem nach einem der Beispiele 10 bis 13, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen zumindest teilweise ermittelt basierend auf einem oder mehreren von: einem oder mehreren von einem verfügbaren Speicher des Computergeräts, einem Nutzungsverlauf für jede Anwendung aus der Menge von Anwendungen, einer Netzwerkpräferenz für die Installation von Aktualisierungen, einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen, einer jeweiligen Wahrscheinlichkeit einer erfolgreichen Installation der Aktualisierung für jede Anwendung, und einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für jede der zumindest einen Anwendung.
  • Beispiel 15: Computersystem nach einem der Beispiele 10 bis 14, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung fürjede Anwendung durch Multiplizieren einer Wahrscheinlichkeit, dass die anstehende Aktualisierung für die Anwendung installiert ist, mit einer Wahrscheinlichkeit, dass die Anwendung innerhalb eines vorbestimmten Zeitraums geöffnet wird, ermittelt.
  • Beispiel 16: Computersystem nach Beispiel 15, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung ferner durch Anwenden einer Glättungsfunktion ermittelt.
  • Beispiel 17: Computersystem nach einem der Beispiele 10 bis 16, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung unabhängig ermittelt.
  • Beispiel 18: Computersystem nach einem der Beispiele 10 bis 17, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für eine erste Anwendung relativ zu einer zweiten Anwendung ermittelt.
  • Beispiel 19: Nichtflüchtiges computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren veranlassen zum: Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen von einem Computergerät; Ermitteln, basierend auf der Anforderung von Anwendungsaktualisierungsinformationen, einer Menge von zu aktualisierenden Anwendungen, wobei jede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist; Anwenden eines Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen an das Computergerät; Empfangen einer Aktualisierungsanforderung von dem Computergerät für zumindest eine Anwendung aus der Menge von Anwendungen, wobei die zumindest eine Anwendung aus der Menge von Anwendungen durch das Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der Aktualisierungsanforderung, Einleiten der Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen.
  • Beispiel 20: Nichtflüchtiges computerlesbares Speichermedium nach Beispiel 19, wobei das Computergerät ein erstes Computergerät ist, wobei das Maschinenlernmodell ein erstes Maschinenlernmodell ist, und wobei die Aktualisierungsprioritätsbewertung eine erste Aktualisierungsprioritätsbewertung ist, wobei die Anweisungen den einen oder die mehreren Prozessoren ferner veranlassen zum: Ermitteln einer Effektivität des ersten Maschinenlernmodells basierend auf einer auf dem ersten Computergerät installierten Menge von Anwendungsaktualisierungen, die basierend auf der durch das erste Maschinenlernmodell erzeugten jeweiligen ersten Aktualisierungsprioritätsbewertung für jede Anwendung priorisiert wurden; Ermitteln einer Effektivität eines zweiten Maschinenlernmodells basierend auf einer auf einem zweiten Computergerät installierten Menge von Anwendungsaktualisierungen, die basierend auf einer durch das zweite Maschinenlernmodule erzeugten jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede Anwendung priorisiert wurden; und Auswählen, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines der effektiveren Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist.
  • Beispiel 21: Nichtflüchtiges computerlesbares Speichermedium nach Beispiel 20, wobei die Anweisungen den einen oder die mehreren Prozessoren, nach dem Auswählen des bevorzugten Maschinenlernmodells, ferner veranlassen zum: Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierten Anwendungen; Ermitteln, basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, einer nachfolgenden Menge von zu aktualisierenden Anwendungen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; Anwenden des bevorzugten Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen an das erste Computergerät; Empfangen, von dem ersten Computergerät, einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus dem nachfolgendie Menge von Anwendungen, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen.
  • Beispiel 22: Computersystem nach Beispiel 20 oder 21, wobei die Anweisungen den einen oder die mehreren Prozessoren ferner veranlassen zum Ermitteln der Effektivität des ersten Maschinenlernmodells ferner basierend auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik.
  • Beispiel 23: Nichtflüchtiges computerlesbares Speichermedium nach einem der Beispiele 19 bis 22, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen zum Anwenden des Maschinenlernmodells zum Ermitteln der jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen zumindest teilweise basierend auf einem oder mehreren von: einem oder mehreren von einem verfügbaren Speicher des Computergeräts, einem Nutzungsverlauf für jede Anwendung aus der Menge von Anwendungen, einer Netzwerkpräferenz für die Installation von Aktualisierungen, einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen, einer jeweiligen Wahrscheinlichkeit einer erfolgreichen Installation der Aktualisierung für jede Anwendung, und einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für jede der zumindest einen Anwendung.
  • Beispiel 24: Nichtflüchtiges computerlesbare Speichermedium nach einem der Beispiele 19 bis, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen zum Anwenden des Maschinenlernmodells zum Ermitteln der jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung durch zumindest Multiplizieren einer Wahrscheinlichkeit, dass die anstehende Aktualisierung für die Anwendung installiert ist, mit einer Wahrscheinlichkeit, dass die Anwendung innerhalb eines vorbestimmten Zeitraums geöffnet wird.
  • Beispiel 25: Computersystem, beinhaltend Mittel zur Durchführung einer beliebigen Kombination der Verfahren nach Beispielen 1-9.
  • Beispiel 26: Ein Verfahren beinhaltet das Senden einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen durch ein Computergerät und an ein Computersystem; das Empfangen einer Angabe einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus einer Menge von Anwendungen mit einer entsprechenden anstehenden Aktualisierung durch das Computergerät und von dem Computersystem, wobei jedejeweilige Aktualisierungsprioritätsbewertung durch das Computersystem durch zumindest das Anwenden eines Maschinenlernmodells auf jede Anwendung aus der Menge von Anwendungen mit der entsprechenden anstehenden Aktualisierung ermittelt wird; Auswählen, durch das Computergerät und basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen, zumindest einer entsprechenden anstehenden Aktualisierung, die von dem Computersystem anzufordern ist; das Senden, durch das Computergerät und an das Computersystem, einer Aktualisierungsanforderung für die zumindest eine entsprechende anstehende Aktualisierung; und in Reaktion auf das Empfangen, durch das Computergerät und von dem Computersystem, der zumindest einen entsprechenden anstehenden Aktualisierung, das Installieren, durch das Computergerät, der zumindest einen entsprechenden anstehenden Aktualisierung.
  • Beispiel 27: Verfahren nach Beispiel 26, wobei die Anforderung von Anwendungsaktualisierungsinformationen eine oder mehrere das Computergerät identifizierende Informationen, eine das Computergerät betreffende Konfigurationsinformation, einen Namen jeder auf dem Computergerät installierten Anwendung, eine Versionsinformation für jede Anwendung oder eine Netzwerkpräferenz für jede Anwendung beinhaltet.
  • Beispiel 28: Verfahren nach Beispiel 26 oder 27 ferner beinhaltend das Ausgeben einer grafischen Benutzeroberfläche durch das Computergerät, die eine Angabe zu einer oder mehreren Anwendungen aus der Menge von einer oder mehreren Anwendungen mit einer entsprechenden anstehenden Aktualisierung und der jeweiligen Aktualisierungsprioritätsbewertung für jede der einen oder mehreren Anwendungen beinhaltet.
  • Beispiel 29: Verfahren nach Beispiel 28, ferner beinhaltend das Empfangen einer Auswahl einer Anwendung aus der einen oder mehreren in der grafischen Benutzeroberfläche enthaltenen Anwendungen als eine ausgewählte Anwendung durch das Computergerät, wobei das Auswählen der zumindest einen entsprechenden anstehenden Aktualisierung das Auswählen der mit der ausgewählten assoziierten Anwendung anstehenden Aktualisierung beinhaltet.
  • Beispiel 30 Verfahren nach einem der Beispiele 26 bis 29, wobei das Auswählen der zumindest einen entsprechenden anstehenden Aktualisierung beinhaltet: Ermitteln einer höchsten Aktualisierungsprioritätseinstufung aus den jeweiligen Aktualisierungsprioritätseinstufungen; und Auswählen der entsprechenden anstehenden Aktualisierung für die mit der höchsten Aktualisierungsprioritätseinstufung assoziierte Anwendung als die zumindest eine entsprechende anstehende Aktualisierung, die von dem Computersystem anzufordern ist:
  • Beispiel 28: Gerät, beinhaltend Mittel zum Ausführen einer Kombination des Verfahrens nach Beispielen 26-30.
  • Beispiel 29: Computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren zur Ausführung einer beliebigen Kombination der Verfahren nach Beispielen 26-30 veranlassen.
  • Beispiel 30: Ein Verfahren beinhaltet das Ermitteln, durch ein Computersystem, der Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem ersten Computergerät installiert sind und basierend auf einer jeweiligen ersten Aktualisierungsprioritätsbewertung für jede Anwendung, die von dem ersten Maschinenlernmodell erzeugt wurde, priorisiert wurden; das Ermitteln, durch das Computersystem, einer Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem zweiten Computergerät installiert sind, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede Anwendung, die durch das zweite Maschinenlernmodell erzeugt wurde, priorisiert wurden, und das Auswählen, durch das Computersystem und basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines effektiveren der ersten und zweiten Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu nutzen ist.
  • Beispiel 31: Verfahren nach Beispiel 30, ferner beinhaltend das Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierten Anwendungen durch das Computersystem; das Ermitteln einer nachfolgenden Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; das Anwenden des bevorzugten Maschinenlernmodells durch das Computersystem zum Erzeugen einer jeweiligen nachfolgenden Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen; das Senden einer Angabe der jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen von dem Computersystem und an das erste Computergerät; das Empfangen einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem und von dem ersten Computergerät, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, das Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem.
  • Beispiel 32: Verfahren nach Beispiel 31, wobei das Ermitteln der Effektivität des ersten Maschinenlernmodells ferner auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik basiert.
  • Beispiel 33: Verfahren nach Beispiel 32, wobei die Anwendungsaktualitätsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, bei denen Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines vorbestimmten Zeitraums installiert haben.
  • Beispiel 34: Verfahren nach Beispiel 32 oder 33, wobei die Anwendungsaktualitätsmetrik für aktive Benutzer eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines ersten vorbestimmten Zeitraums installiert und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 35: Verfahren nach Beispiel 32 bis 34, wobei die Anwendungsaktualisierungsabdeckungsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten innerhalb eines ersten vorbestimmten Zeitraums keine aktuellste Aktualisierung für die Anwendung installiert haben und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 36: Verfahren nach einem der Beispiele 32 bis 35, wobei die Anwendungsaktualisierungseffizienzmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten eine aktuellste Aktualisierung für die Anwendung nicht innerhalb eines ersten vorbestimmten Zeitraums installiert haben und die Anwendung nach der Installation der Aktualisierung für die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 37: Eine Computergerät beinhaltet einen Speicher, der ein oder mehrere Module speichert; und einen oder mehrere Prozessoren, die das eine oder die mehreren Module ausführen zum: Ermitteln einer Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von auf einem ersten Computergerät installierten Anwendungsaktualisierungen, die basierend auf einer jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden; Ermitteln einer Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von auf einem zweiten Computergerät installierten Anwendungsaktualisierungen, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede von dem zweiten Maschinenlernmodell erzeugte Anwendung priorisiert wurden; und Auswählen, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines der effektiveren Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu nutzen ist.
  • Beispiel 38: Computergerät nach Beispiel 37, wobei der eine oder die mehreren Prozessoren, nach dem Auswählen des bevorzugten Maschinenlernmodells, ferner konfiguriert sind zum Ausführen des einen oder der mehreren Module zum: Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierten Anwendungen; Ermitteln, basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, einer nachfolgenden Menge von zu aktualisierenden Anwendungen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; Anwenden des bevorzugten Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen an das erste Computergerät; Empfangen, von dem ersten Computergerät, einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen.
  • Beispiel 39: Computergerät nach Beispiel 38, wobei der eine oder die mehreren Prozessoren das eine oder die mehreren Module ausführen zum Ermitteln der Effektivität des ersten Maschinenlernmodells ferner basierend auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik.
  • Beispiel 40: Computergerät nach Beispiel 39, wobei die Anwendungsaktualitätsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, bei denen Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines vorbestimmten Zeitraums installiert haben.
  • Beispiel 41: Computergerät nach Beispiel 39 oder 40, wobei die Anwendungsaktualitätsmetrik für aktive Benutzer eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines ersten vorbestimmten Zeitraums installiert und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 42: Computergerät nach einem der Beispiele 39 bis 41, wobei die Anwendungsaktualisierungsabdeckungsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten innerhalb eines ersten vorbestimmten Zeitraums keine aktuellste Aktualisierung für die Anwendung installiert haben und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 43: Computergerät nach einem der Beispiele 39 bis 42, wobei die Anwendungsaktualisierungseffizienzmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten eine aktuellste Aktualisierung für die Anwendung nicht innerhalb eines ersten vorbestimmten Zeitraums installiert haben und die Anwendung nach der Installation der Aktualisierung für die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 44: Nichtflüchtiges computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren veranlassen zum: Ermitteln einer Effektivität eines ersten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem ersten Computergerät installiert sind und basierend auf einer jeweiligen ersten Aktualisierungsprioritätsbewertung für jede durch das erste Maschinenlernmodell erzeugte Anwendung priorisiert wurden; zum Ermitteln der Effektivität eines zweiten Maschinenlernmodells basierend auf einer Menge von Anwendungsaktualisierungen, die auf einem zweiten Computergerät installiert sind und basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede durch das zweite Maschinenlernmodell erzeugte Anwendung priorisiert wurden; und zum Auswählen, basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, eines der effektiveren Maschinenlernmodelle, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlemmodell zu nutzen ist.
  • Beispiel 45: Nichtflüchtiges computerlesbares Speichermedium nach Beispiel 44, wobei der eine oder die mehreren Prozessoren, nach dem Auswählen des bevorzugten Maschinenlernmodells, die Anweisungen ferner ausführen zum: Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierten Anwendungen; Ermitteln, basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, einer nachfolgenden Menge von zu aktualisierenden Anwendungen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; Anwenden des bevorzugten Maschinenlernmodells zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen an das erste Computergerät; Empfangen, von dem ersten Computergerät, einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen.
  • Beispiel 46: Nichtflüchtiges computerlesbares Speichermedium nach Beispiel 45, wobei der eine oder die mehreren Prozessoren das eine oder die mehreren Module ausführen zum Ermitteln der Effektivität des ersten Maschinenlernmodells ferner basierend auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik.
  • Beispiel 47: Nichtflüchtiges computerlesbares Speichermedium nach Beispiel 46, wobei die Anwendungsaktualitätsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, bei denen Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines vorbestimmten Zeitraums installiert haben.
  • Beispiel 48: Nichtflüchtiges computerlesbares Speichermedium nach Beispiel 46 oder 47, wobei die Anwendungsaktualitätsmetrik für aktive Benutzer eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines ersten vorbestimmten Zeitraums installiert und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 49: Nichtflüchtiges computerlesbares Speichermedium nach einem der Beispiele 46 bis 48, wobei die Anwendungsaktualisierungsabdeckungsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten innerhalb eines ersten vorbestimmten Zeitraums keine aktuellste Aktualisierung für die Anwendung installiert haben und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 50: Nichtflüchtiges computerlesbares Speichermedium nach einem der Beispiele 46 bis 49, wobei die Anwendungsaktualisierungseffizienzmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten eine aktuellste Aktualisierung für die Anwendung nicht innerhalb eines ersten vorbestimmten Zeitraums installiert haben und die Anwendung nach der Installation der Aktualisierung für die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  • Beispiel 51: Computersystem, beinhaltend Mittel zum Ausführen einer Kombination der Verfahren nach Beispielen 30-36.
  • Beispielsweise, aber nicht ausschließlich, können derartige computerlesbare Speichermedien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichergeräte, Flash-Speicher oder ein beliebiges anderes Speichermedium, das verwendet werden kann, um den gewünschten Programmcode in Form von Anweisungen oder Datenstrukturen zu speichern, und auf das von einem Computer zugegriffen werden kann, umfassen. Zudem kann jede Verbindung im eigentlichen Sinne als ein computerlesbares Medium bezeichnet werden. Wenn beispielsweise Anweisungen von einer Webseite, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, eines Glasfaserkabels, eines Twisted-Pair-Kabels, einer digitalen Teilnehmerleitung (DSL) oder drahtloser Technologien, wie beispielsweise Infrarot, Radio und Mikrowelle übertragen werden, sind Koaxialkabel, Glasfaserkabel, Twisted-Pair-Kabel, DSL oder drahtlose Technologien, wie beispielsweise Infrarot, Radio und Mikrowelle in der Definition von Medium mit eingeschlossen. Es sollte jedoch klar sein, dass computerlesbare Speichermedien und -mediums sowie Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere physische Medien beinhalten, sondern stattdessen auf nicht flüchtige, physische Speichermedien ausgerichtet sind. Festplatten und Disketten, wie sie hierin verwendet werden, beinhalten Compact Disc (CD), Laserdisc, optische Disc, Digital Versatile Disc (DVD), Diskette und Blu-ray Disc, wobei Disketten typischerweise Daten magnetisch wiedergeben, während Discs Daten optisch mit Lasern wiedergeben. Kombinationen der vorstehenden sollten ebenfalls in den Umfang von computerlesbaren Medien eingeschlossen sein.
  • Anweisungen können durch einen oder mehrere Prozessoren, wie beispielsweise einen oder mehrere digitale Signalprozessoren (DSPs), Universalmikroprozessoren, anwendungsorientierte integrierte Schaltungen (ASICs), feldprogrammierbare Gate-Arrays (FPGAs) oder beliebige andere gleichwertige integrierte oder diskrete Logikschaltungen ausgeführt werden. Dementsprechend kann sich der Begriff „Prozessor“, wie er hierin verwendet wird, auf eine beliebige der vorgenannten Strukturen oder jede andere Struktur beziehen, die für die Implementierung der hierin beschriebenen Techniken geeignet ist. Darüber hinaus kann in einigen Aspekten die hierin beschriebene Funktionalität innerhalb dedizierter Hardware- und/oder Softwaremodule bereitgestellt werden. Auch könnten die Techniken vollständig in einer oder mehreren Schaltungen oder Logikelementen implementiert werden.
  • Die Techniken dieser Offenbarung können in einer breiten Vielfalt von Geräten oder Vorrichtungen implementiert werden, einschließlich eines drahtlosen Handapparats, einer integrierten Schaltung (IC) oder einer Menge von ICs (z. B. eines Chipsatzes). In dieser Offenbarung werden verschiedene Komponenten, Module oder Einheiten beschrieben, um funktionelle Aspekte von Geräten zu betonen, die dafür konfiguriert sind, die offenbarten Techniken auszuführen, jedoch nicht notwendigerweise eine Realisierung durch verschiedene Hardware-Einheiten erfordern. Vielmehr können, wie vorstehend beschrieben, verschiedene Einheiten in einer Hardware-Einheit kombiniert oder durch eine Sammlung von interoperativen Hardware-Einheiten, einschließlich eines oder mehrerer Prozessoren, wie vorstehend beschrieben, in Verbindung mit geeigneter Software und/oder Firmware bereitgestellt werden.
  • Es wurden verschiedene Beispiele beschrieben. Diese und andere Beispiele liegen innerhalb des Schutzumfangs der folgenden Ansprüche.

Claims (24)

  1. Verfahren, umfassend: Empfangen einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen durch ein Computersystem und von einem Computergerät; Ermitteln einer Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der Menge von Anwendungen mit einer jeweiligen anstehenden Aktualisierung assoziiert ist; Anwenden eines Maschinenlernmodells durch das Computersystem zum Ermitteln einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen; Senden einer Angabe der jeweiligen Aktualisierungsprioritätsbewertungen für die Menge von Anwendungen durch das Computersystem und an das Computergerät; Empfangen einer Aktualisierungsanforderung für zumindest eine Anwendung aus der Menge von Anwendungen durch das Computersystem und von dem Computergerät, wobei die zumindest eine Anwendung aus der Menge von Anwendungen von dem Computergerät basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der Aktualisierungsanforderung Einleiten einer Installation der anstehenden Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen durch das Computersystem.
  2. Verfahren nach Anspruch 1, wobei das Computergerät ein erstes Computergerät ist, wobei das Maschinenlernmodell ein erstes Maschinenlernmodell ist, und wobei die Aktualisierungsprioritätsbewertung eine erste Aktualisierungsprioritätsbewertung ist, wobei das Verfahren ferner umfasst: Ermitteln einer Effektivität des ersten Maschinenlernmodells durch das Computersystem basierend auf einer Menge von auf dem ersten Computergerät installierten Anwendungsaktualisierungen, die basierend auf der jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden; Ermitteln einer Effektivität des zweiten Maschinenlernmodells durch das Computersystem basierend auf einer Menge von auf dem zweiten Computergerät installierten Anwendungsaktualisierungen, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede von dem zweiten Maschinenlernmodell erzeugte Anwendung priorisiert wurden; und Auswählen der effektiveren der beiden Maschinenlernmodelle durch das Computersystem und basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist.
  3. Verfahren nach Anspruch 2, ferner umfassend, nach dem Auswählen des bevorzugten Maschinenlernmodells: Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierte(n) Anwendung(en) durch das Computersystem; Ermitteln einer nachfolgenden Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; Anwenden des bevorzugten Maschinenlernmodells durch das Computersystem, um eine jeweilige nachfolgende Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen zu ermitteln; Senden einer Angabe der jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen von dem Computersystem und an das erste Computergerät; Empfangen einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgendne Menge von Anwendungen durch das Computersystem und von dem ersten Computergerät, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, Einleiten der Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem.
  4. Verfahren nach Anspruch 2 oder 3, wobei das Ermitteln der Effektivität des ersten Maschinenlernmodells ferner auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik basiert.
  5. Verfahren nach einem der Ansprüche 1-4, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung aus der Menge von Anwendungen zumindest teilweise basierend auf einem oder mehreren bestimmt von: einem oder mehreren der verfügbaren Speicher des Computergeräts, einem Nutzungsverlauf für jede Anwendung aus der Menge von Anwendungen, einer Netzwerkpräferenz für die Installation von Aktualisierungen, einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für die zumindest eine Anwendung aus der Menge von Anwendungen, einer jeweiligen Wahrscheinlichkeit einer erfolgreichen Installation der Aktualisierung für jede Anwendung, und einer Zeitspanne seit der letzten Installation einer vorherigen Aktualisierung für jede der zumindest einen Anwendung.
  6. Verfahren nach einem der Ansprüche 1-5, wobei das Maschinenlernmodell die jeweilige Aktualisierungsprioritätsbewertung für jede Anwendung durch Multiplizieren einer Wahrscheinlichkeit, dass die anstehende Aktualisierung für die Anwendung installiert ist, mit einer Wahrscheinlichkeit, dass die Anwendung innerhalb eines vorbestimmten Zeitraums geöffnet wird, ermittelt.
  7. Computersystem, umfassend Mittel zum Ausführen einer beliebigen Kombination des Verfahrens nach den Ansprüchen 1-6.
  8. Computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren zur Ausführung einer beliebigen Kombination der Verfahren nach den Ansprüchen 1-6 veranlassen.
  9. Verfahren, umfassend: Senden einer Anforderung von Anwendungsaktualisierungsinformationen für eine oder mehrere auf dem Computergerät installierte Anwendungen durch ein Computergerät und an ein Computersystem; Empfangen einer Angabe einer jeweiligen Aktualisierungsprioritätsbewertung für jede Anwendung aus einer Menge von Anwendungen mit einer entsprechenden anstehenden Aktualisierung durch das Computergerät und von dem Computersystem, wobei jede jeweilige Aktualisierungsprioritätsbewertung durch das Computersystem durch zumindest das Anwenden eines Maschinenlernmodells auf jede Anwendung aus der Menge von Anwendungen mit der entsprechenden anstehenden Aktualisierung ermittelt wird; Auswählen, durch das Computergerät und basierend auf den jeweiligen Aktualisierungsprioritätsbewertungen, zumindest einer entsprechenden anstehenden Aktualisierung, die von dem Computersystem anzufordern ist; Senden, durch das Computergerät und an das Computersystem, einer Aktualisierungsanforderung für die zumindest eine entsprechende anstehende Aktualisierung; und in Reaktion auf das Empfangen, durch das Computergerät und von dem Computersystem, der zumindest einen entsprechenden anstehenden Aktualisierung, Installieren, durch das Computergerät, der zumindest einen entsprechenden anstehenden Aktualisierung.
  10. Verfahren nach Anspruch 9, wobei die Anforderung von Anwendungsaktualisierungsinformationen eine oder mehrere von das Computergerät identifizierenden Informationen, das Computergerät betreffende Konfigurationsinformationen, einen Namen jeder auf dem Computergerät installierten Anwendung, Versionsinformationen für jede Anwendung oder eine Netzwerkpräferenz für jede Anwendung beinhaltet.
  11. Verfahren nach Anspruch 9 oder 10, ferner umfassend: Ausgeben einer grafischen Benutzeroberfläche durch das Computergerät, die eine Angabe zu einer oder mehreren Anwendungen aus der Menge von einer oder mehreren Anwendungen mit einer entsprechenden anstehenden Aktualisierung und der jeweiligen Aktualisierungsprioritätsbewertung für jede der einen oder mehreren Anwendungen beinhaltet.
  12. Verfahren nach Anspruch 11, ferner umfassend: Empfangen einer Auswahl einer Anwendung aus der einen oder mehreren in der grafischen Benutzeroberfläche enthaltenen Anwendungen als eine ausgewählte Anwendung durch das Computergerät, wobei das Auswählen der zumindest einen entsprechenden anstehenden Aktualisierung das Auswählen der mit der ausgewählten assoziierten Anwendung anstehenden Aktualisierung beinhaltet.
  13. Verfahren nach einem der Ansprüche 9-12, wobei das Auswählen der zumindest einen entsprechenden ausstehenden Aktualisierung umfasst: Ermitteln einer höchsten Aktualisierungsprioritätseinstufung aus den jeweiligen Aktualisierungsprioritätseinstufungen; und Auswählen der entsprechenden anstehenden Aktualisierung für die mit der höchsten Aktualisierungsprioritätseinstufung assoziierte Anwendung als die zumindest eine entsprechende anstehende Aktualisierung, die von dem Computersystem anzufordern ist.
  14. Gerät, umfassend Mittel zum Ausführen einer Kombination des Verfahrens nach den Ansprüchen 9-13.
  15. Computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computergeräts den einen oder die mehreren Prozessoren zum Ausführen einer Kombination der Verfahren nach den Ansprüchen 9-13 veranlassen.
  16. Verfahren, umfassend: Ermitteln einer Effektivität des ersten Maschinenlernmodells durch ein Computersystem basierend auf einer Menge von auf einem ersten Computergerät installierten Anwendungsaktualisierungen, die basierend auf der jeweiligen ersten Aktualisierungsprioritätsbewertung für jede von dem ersten Maschinenlernmodell erzeugte Anwendung priorisiert wurden; Ermitteln einer Effektivität des zweiten Maschinenlernmodells durch das Computersystem basierend auf einer Menge von auf dem zweiten Computergerät installierten Anwendungsaktualisierungen, die basierend auf einer jeweiligen zweiten Aktualisierungsprioritätsbewertung für jede von dem zweiten Maschinenlernmodell erzeugte Anwendung priorisiert wurden; und Auswählen der effektiveren der beiden Maschinenlernmodelle durch das Computersystem und basierend auf der Effektivität des ersten Maschinenlernmodells und der Effektivität des zweiten Maschinenlernmodells, das für die Priorisierung zukünftiger Anwendungsaktualisierungen als bevorzugtes Maschinenlernmodell zu verwenden ist.
  17. Verfahren nach Anspruch 16, ferner umfassend, nach dem Auswählen des bevorzugten Maschinenlernmodells: Empfangen einer nachfolgenden Anforderung von Anwendungsaktualisierungsinformationen für die eine oder die mehreren auf dem ersten Computergerät installierte(n) Anwendung(en) durch das Computersystem; Ermitteln einer nachfolgenden Menge von zu aktualisierenden Anwendungen durch das Computersystem und basierend auf der nachfolgenden Anforderung der Anwendungsaktualisierungsinformationen, wobei jede Anwendung aus der nachfolgenden Menge von Anwendungen mit einer jeweiligen nachfolgenden anstehenden Aktualisierung assoziiert ist; Anwenden des bevorzugten Maschinenlernmodells durch das Computersystem, um eine jeweilige nachfolgende Aktualisierungsprioritätsbewertung für jede Anwendung aus der nachfolgenden Menge von Anwendungen zu ermitteln; Senden einer Angabe der jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen für die nachfolgende Menge von Anwendungen von dem Computersystem und an das erste Computergerät; Empfangen einer nachfolgenden Aktualisierungsanforderung für zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem und von dem ersten Computergerät, wobei die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen von dem ersten Computergerät zumindest teilweise basierend auf den jeweiligen nachfolgenden Aktualisierungsprioritätsbewertungen ausgewählt wird; und in Reaktion auf das Empfangen der nachfolgenden Aktualisierungsanforderung, Einleiten einer Installation der nachfolgenden anstehenden Aktualisierung für die zumindest eine Anwendung aus der nachfolgenden Menge von Anwendungen durch das Computersystem.
  18. Verfahren nach Anspruch 17, wobei das Ermitteln der Effektivität des ersten Maschinenlernmodells ferner auf einer oder mehreren einer Anwendungsaktualitätsmetrik, einer Anwendungsaktualitätsmetrik für aktive Benutzer, einer Anwendungsaktualisierungsabdeckungsmetrik und einer Anwendungsaktualisierungseffizienzmetrik basiert.
  19. Verfahren nach Anspruch 18, wobei die Anwendungsaktualitätsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines vorbestimmten Zeitraums installiert haben.
  20. Verfahren nach einem der Ansprüche 18 oder 19, wobei die Anwendungsaktualitätsmetrik für aktive Benutzer eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten die Anwendung zum ersten Mal innerhalb eines ersten vorbestimmten Zeitraums installiert und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  21. Verfahren nach einem der Ansprüche 18-20, wobei die Anwendungsaktualisierungsabdeckungsmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten innerhalb eines ersten vorbestimmten Zeitraums keine aktuellste Aktualisierung für die Anwendung installiert haben und die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  22. Verfahren nach einem der Ansprüche 18-21, wobei die Anwendungsaktualisierungseffizienzmetrik eine Menge von in einer Installationsbasis einer Anwendung enthaltenen Computergeräten darstellt, wobei Benutzer der Menge von Computergeräten eine aktuellste Aktualisierung für die Anwendung nicht innerhalb eines ersten vorbestimmten Zeitraums installiert haben und die Anwendung nach der Installation der Aktualisierung für die Anwendung innerhalb eines zweiten vorbestimmten Zeitraums verwendet haben.
  23. Computersystem, umfassend Mittel zum Ausführen einer Kombination des Verfahrens nach den Ansprüchen 16-22.
  24. Computerlesbares Speichermedium, das mit Anweisungen kodiert ist, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems den einen oder die mehreren Prozessoren zum Ausführen einer Kombination der Verfahren nach den Ansprüchen 16-22 veranlassen.
DE112021006069.4T 2020-11-20 2021-07-13 Priorisierte anwendungsaktualisierungen Pending DE112021006069T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063116709P 2020-11-20 2020-11-20
US63/116,709 2020-11-20
PCT/US2021/041434 WO2022108628A1 (en) 2020-11-20 2021-07-13 Prioritized application updates

Publications (1)

Publication Number Publication Date
DE112021006069T5 true DE112021006069T5 (de) 2023-09-21

Family

ID=77265213

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021006069.4T Pending DE112021006069T5 (de) 2020-11-20 2021-07-13 Priorisierte anwendungsaktualisierungen

Country Status (5)

Country Link
US (1) US20230376297A1 (de)
EP (1) EP4248308A1 (de)
CN (1) CN116490849A (de)
DE (1) DE112021006069T5 (de)
WO (1) WO2022108628A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230086203A1 (en) * 2021-09-15 2023-03-23 International Business Machines Corporation Stale data recognition
WO2024167526A1 (en) * 2023-02-07 2024-08-15 Google Llc Managing application updates

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606575B2 (en) * 2018-04-03 2020-03-31 Accenture Global Solutions Limited Efficiency of computing resource consumption via improved application portfolio deployment
US10789057B2 (en) * 2018-07-16 2020-09-29 Dell Products L.P. Predicting a success rate of deploying a software bundle
CN111638892A (zh) * 2020-04-16 2020-09-08 合肥联宝信息技术有限公司 一种优化应用更新排序的方法、装置、系统及存储介质

Also Published As

Publication number Publication date
WO2022108628A1 (en) 2022-05-27
CN116490849A (zh) 2023-07-25
US20230376297A1 (en) 2023-11-23
EP4248308A1 (de) 2023-09-27

Similar Documents

Publication Publication Date Title
US10360517B2 (en) Distributed hyperparameter tuning system for machine learning
Paschek et al. Automated business process management–in times of digital transformation using machine learning or artificial intelligence
US10699238B2 (en) Cross-domain multi-attribute hashed and weighted dynamic process prioritization
US10936963B2 (en) Systems and methods for content response prediction
US20220121971A1 (en) Deep causal learning for continuous testing, diagnosis, and optimization
US20220122010A1 (en) Long-short field memory networks
JP7564332B2 (ja) 融合パラメータの特定方法及び装置、情報推奨方法及び装置、パラメータ測定モデルのトレーニング方法及び装置、電子機器、記憶媒体、並びにコンピュータプログラム
US11645575B2 (en) Linking actions to machine learning prediction explanations
US11900320B2 (en) Utilizing machine learning models for identifying a subject of a query, a context for the subject, and a workflow
DE112021006069T5 (de) Priorisierte anwendungsaktualisierungen
DE112020002684T5 (de) Ein Mehrfachverfahrenssystem für optimale Vorhersagemodellauswahl
US11362906B2 (en) Targeted content selection using a federated learning system
Taghavi et al. Agent-based computational investing recommender system
US20220207420A1 (en) Utilizing machine learning models to characterize a relationship between a user and an entity
US10621137B2 (en) Architecture for predicting network access probability of data files accessible over a computer network
DE112020003744T5 (de) Durch dienstqualitätskriterien vorgegebenes automatisiertes betriebsdatenmanagement
Hoang et al. A novel time series prediction approach based on a hybridization of least squares support vector regression and swarm intelligence
AU2021258019A1 (en) Utilizing machine learning models to generate initiative plans
AU2024200941A1 (en) Method and system for evaluating performance of developers using artificial intelligence (ai)
WO2021186338A1 (en) System and method for determining solution for problem in organization
US12052183B1 (en) Resource allocation discovery and optimization service
Mahmud Application and criminalization of the artificial intelligence in business: recommendation to counter the regulatory challenges
Tamura et al. Reliability computing and management considering the network traffic for a cloud computing
US20170372266A1 (en) Context-aware map from entities to canonical forms
DE102020133665A1 (de) Verfahren und Einrichtung zum Verbessern einer Rechenvorrichtungsleistungsverwaltung