IP Library › Granted Patent US 11,481,648
Granted Patent B2
US 11,481,648 · App. 16/869,347 · Granted Oct 25, 2022

Software categorization based on knowledge graph and machine learning techniques

Inventors: Daniela Alexander (Bellevue, WA); Ahsanul Haque (Bellevue, WA); Rajesh Shashikant Korde (Sammamish, WA); Minglei Huang (Bothell, WA); Rui Zhu (Sammamish, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06N5/04G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,481,648
App. No.
16/869,347
Granted
Oct 25, 2022
Kind
B2
Abstract

Methods and systems are provided for determining the category of a software application utilizing machine learning (ML) and knowledge graph techniques, and for controlling access to the application by a user based on the category and configured time restrictions for the user. The system includes a feature set extractor and a category predictor with a trained ML model. The trained ML model generates the category of the application based on a feature(s) of the application. The generated category is indicated in a data structure. An access request handler receives a request related to access to the application from a user device. A category determiner determines the category of the application from the data structure. A time usage manager determines an available time usage for the category and the specified user. The access arbiter responds to the request from the user device with the available time usage.

Claims (64)

1. A system implemented in a computing device, the system comprising:

a feature set extractor configured to identify at least one feature of an application;

a category predictor comprising a trained machine learning model, the category predictor configured to:

generate, by the trained machine learning model, a category of the application based on the at least one feature of the application; and

indicate the generated category in a data structure that indicates application categories;

an access request handler comprising:

an access arbiter configured to receive a request related to access to the application by the specified user;

a category determiner configured to determine the category of the application from the data structure; and

a time usage manager configured to determine the available time usage corresponding to the category of the application for a specified user; and

the access arbiter further configured to respond to the request with a determined available time usage corresponding to the category of the application for the specified user.

2. The system of claim 1 , wherein the access request handler further comprises an access restrictions determiner configured to:

determine, for the specified user, access restriction settings corresponding to the category of the application; and

the time usage manager further configured to:

determine, for the specified user, accumulated time usage corresponding to the category of the application, and

determine, for the specified user, the available time usage corresponding to the category of the application based on the access restrictions settings and the accumulated time usage.

3. The system of claim 2 , wherein the access request handler is further configured to:

transmit the available time usage to a user device utilized by the specified user, wherein the device controls access to the application by the specified user based on the available time usage.

4. The system of claim 2 , wherein the access request handler is further configured to:

receive, from the user device, a time usage report associated with the specified user and the category; and

determine the accumulated time usage based at least on the time usage report.

5. The system of claim 1 , wherein the category predictor is further configured to:

generate, by the trained machine learning model, a confidence score for the category of the application;

retrain the model; and

generate, by the retrained model, an updated category for the application in response to the confidence score having a predetermined relationship with a threshold.

6. The system of claim 1 , wherein the category predictor is further configured to:

generate, by the trained machine learning model, a plurality of categories and confidence scores based on a features associated with a plurality of applications; and

associate each of the plurality of applications in the data structure with a corresponding category and a confidence score of the plurality of categories.

7. The system of claim 1 , wherein the accumulated time usage corresponding to the category is associated with a plurality of user devices utilized by the specified user.

8. The system of claim 1 , wherein the feature set extractor further comprises:

an application description determiner configured to automatically determine a description of the application by issuing one or more API (application programming interface) calls.

9. The system of claim 1 , wherein the feature set extractor further comprises:

an application description determiner configured to automatically retrieve a description of the application from a knowledge graph web service.

10. A method in a computing device, comprising:

identifying at least one feature of an application;

generating, by a trained machine learning model, a category of the application based on the at least one feature of the application; and

indicating the generated category in a data structure that indicates application categories.

11. The method of claim 10 , further comprising:

generating, by the trained machine learning model, a confidence score for the category of the application;

retraining the model; and

generating, by the retrained model, an updated category for the application in response to the confidence score having a predetermined relationship with a threshold.

12. The method of claim 10 , further comprising:

generating, by the trained machine learning model, a plurality of categories and confidence scores based on feature sets associated with a plurality of applications; and

associating each of the plurality of applications in the data structure with a corresponding category and a confidence score of the plurality of categories.

13. The method of claim 10 , wherein said identifying at least one feature of an application comprises:

automatically determining a description of the application by issuing one or more API (application programming interface) calls.

14. The method of claim 10 , wherein said identifying at least one feature of an application comprises:

automatically retrieving a description of the application from a knowledge graph webservice.

15. A method in a computing device, comprising:

receiving a request related to access to an application by a specified user;

determining a category of the application from a data structure generated, by a trained machine learning model, to list applications and corresponding categories;

determining an available time usage corresponding to the category of the application for the specified user; and

responding to the request with the determined available time usage.

16. The method of claim 15 , wherein said determining an available time usage corresponding to the category of the application for the specified user comprises:

determining, for the specified user, access restriction settings corresponding to the category of the application,

determining, for the specified user, accumulated time usage corresponding to the category of the application, and

determining, for the specified user, the available time usage corresponding to the category of the application based on the access restrictions settings and the accumulated time usage.

17. The method of claim 16 , wherein said responding comprises:

transmitting the available time usage to a user device utilized by the specified user, wherein the user device controls access to the application by the specified user based on the available time usage.

18. The method of claim 16 , further comprising:

receiving, from the user device, a time usage report associated with the specified user and the category; and

wherein said determining, for the specified user, the accumulated time usage corresponding to the category of the application comprises:

determining the accumulated time usage based at least on the time usage report.

19. The method of claim 15 , wherein the accumulated time usage corresponding to the category is associated with a plurality of user devices utilized by the specified user.

20. The method of claim 15 , wherein the specified user is a non-administrative user included in a family account.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST PAGE OF ASSIGNMENT AGREEMENT LISTING INVENTOR AZURE ZHU PREVIOUSLY RECORDED AT REEL: 052605 FRAME: 0712. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 18, 2020
From: ALEXANDER, DANIELA; HAQUE, AHSANUL; KORDE, RAJESH SHASHIKANT; HUANG, MINGLEI; ZHU, RUI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053814/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2020
From: ALEXANDER, DANIELA; HAQUE, AHSANUL; KORDE, RAJESH SHASHIKANT; HUANG, MINGLEI; ZHU, RUI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 052605/0712 →
Continuity (1)
Related Publication 20210350252A1 · Nov 11, 2021