IP Library › Granted Patent US 12,306,742
Granted Patent B2
US 12,306,742 · App. 17/467,254 · Granted May 20, 2025

System and method of determining proximity between different populations

Inventors: Sergiy Dubynskiy (Kenmore, WA); Tatiana Shubin (Redmond, WA); Sandhya Shahdeo (Snoqualmie, WA); Poornima Muthukumar (Bothell, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/3668G06N20/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 12,306,742
App. No.
17/467,254
Granted
May 20, 2025
Kind
B2
Abstract

A method and system for analyzing a proximity between a first user population and a second user population includes receiving a request to perform a proximity analysis between the first user population and the second user population, accessing data related to the first user population and the second user population, providing the data related to the first user population and the second user population as input to a machine-learning (ML) model for analyzing the data to determine the proximity between the first user population and the second user population, receiving from the ML model as an output at least one of a composite proximity score between the first user population and the second user population, and providing display data relating to the output to a visualization mechanism for display. The composite proximity score may be calculated based on multiple characteristics and/or comparison metrics.

Claims (50)

1. A data processing system comprising:

a processor; and

a memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor, cause the data processing system to perform functions of:

receiving a request to perform a proximity analysis between a first user population and a second user population to determine proximity between the first user population and the second user population by determining a proximity between one or more characteristics of the first user population and one or more characteristics of the second user population, each of the one or more characteristics of the first and second user population referring to one attribute of the first and second user populations;

accessing data related to the one or more characteristics of the first user population and the one or more characteristics of the second user population, wherein the data related to the first user population includes at least one of telemetry data associated with testing of a software application and feedback data;

providing the data related the one or more characteristics of the first user population and the one or more characteristics of the second user population as input to a machine-learning (ML) model for analyzing the data to determine the proximity between the first user population and the second user population;

receiving from the ML model as an output at least one proximity score between the first user population and the second user population; and

providing display data relating to the output to a visualization mechanism for display,

wherein:

the ML model is trained, at least in part, by receiving the feedback data labeled via a data labeling element based on the one attribute of the first and second user populations and by utilizing the labeled feedback data to self-learn, and

the trained ML model computes a similarity measure between at least one of the one or more characteristics of the first user population and one of the one or more characteristics of the second user population to determine the proximity between the first user population and the second user population.

2. The data processing system of claim 1 , wherein the instructions further cause the processor to cause the data processing system to perform functions of aggregating the data related to the first user population and the second user population before the data is provided to the ML model.

3. The data processing system of claim 1 , wherein the first user population is a pre-production population and the second user population is a post-production population for testing a software application.

4. The data processing system of claim 3 , wherein the pre-production population is smaller in size than the post-production population.

5. The data processing system of claim 1 , wherein the data related to the second population includes at least one of telemetry data and feedback data.

6. The data processing system of claim 1 , wherein the output includes at least one of one or more characteristics identified as being relevant to a software application for which testing is being performed, and a ranking of the identified characteristics.

7. The data processing system of claim 1 , wherein the visualization mechanism provides a quantitative comparison between the first user population and the second user population in an interactive manner.

8. The data processing system of claim 1 , wherein the instructions further cause the processor to cause the data processing system to perform functions of:

identifying which characteristics of the one or more characteristics of the first user population and the one or more characteristics of the second user population are relevant to testing of the software application;

calculating proximity scores for characteristics identified as being relevant to testing of the software application; and

calculating the proximity score between the first user population and the second user population based on the calculated proximity scores.

9. A method for analyzing a proximity between a first user population and a second user population, comprising:

receiving a request to perform a proximity analysis between a first user population and a second user population to determine proximity between the first user population and the second user population by determining a proximity between one or more characteristics of the first user population and one or more characteristics of the second user population, each of the one or more characteristics of the first and second user population referring to one attribute of the first and second user populations;

accessing data related to the one or more characteristics of the first user population and the one or more characteristics of the second user population, wherein the data related to the first user population includes at least one of telemetry data associated with testing of a software application and feedback data;

providing the data related the one or more characteristics of the first user population and the one or more characteristics of the second user population as input to a machine-learning (ML) model for analyzing the data to determine the proximity between the first user population and the second user population;

receiving from the ML model as an output at least one proximity score between the first user population and the second user population; and

providing display data relating to the output to a visualization mechanism for display,

wherein:

the ML model is trained, at least in part, by receiving the feedback data labeled via a data labeling element based on the one attribute of the first and second user populations and by utilizing the labeled feedback data to self-learn, and

the trained ML model computes a similarity measure between at least one of the one or more characteristics of the first user population and one of the one or more characteristics of the second user population to determine the proximity between the first user population and the second user population.

10. The method of claim 9 , further comprising aggregating the data related to the first user population and the second user population before the data is provided to the ML model.

11. The method of claim 9 , wherein the first user population is a pre-production population and the second user population is a post-production population for testing a software application.

12. The method of claim 11 , wherein the pre-production population is smaller in size than the post-production population.

13. The method of claim 9 , wherein the data related to the second population includes at least one of telemetry data and feedback data.

14. The method of claim 9 , wherein the output includes at least one of one or more characteristics identified as being relevant to a software application for which testing is being performed, and a ranking of the identified characteristics.

15. The method of claim 9 , wherein the visualization mechanism provides a quantitative comparison between the first user population and the second user population in an interactive manner.

16. A non-transitory computer readable medium on which are stored instructions that, when executed, cause a programmable device to:

receive a request to perform a proximity analysis between a first user population and a second user population to determine proximity between the first user population and the second user population by determining a proximity between one or more characteristics of the first and second user population referring to one attribute of the first and second user populations;

access data related to the one or more characteristics of the first user population and the one or more characteristics of the second user population, wherein the data related to the first user population includes at least one of telemetry data associated with testing of a software application and feedback data;

provide the data related the one or more characteristics of the first user population and the one or more characteristics of the second user population as input to a machine-learning (ML) model for analyzing the data to determine the proximity between the first user population and the second user population;

receive from the ML model as an output at least one of a proximity score between the first user population and the second user population; and

provide display data relating to the output to a visualization mechanism for display,

wherein:

the ML model is trained, at least in part, by receiving feedback data labeled via a data labeling element based on the one attribute of the first and second user populations and by utilizing the labeled feedback data to self-learn, and

the trained ML model computes a similarity measure between at least one of the one or more characteristics of the first user population and one of the one or more characteristics of the second user population to determine the proximity between the first user population and the second user population.

17. The non-transitory computer readable medium of claim 16 , wherein the instructions further cause the programmable device to aggregate the data related to the first user population and the second user population before the data is provided to the ML model.

18. The non-transitory computer readable medium of claim 16 , wherein the first user population is a pre-production population and the second user population is a post-production population for testing a software application.

19. The non-transitory computer readable medium of claim 16 , wherein the data related to the second population includes at least one of telemetry data and feedback data.

20. The non-transitory computer readable medium of claim 16 , wherein the output includes at least one of one or more characteristics identified as being relevant to a software application for which testing is being performed, and a ranking of the identified characteristics.

21. The non-transitory computer readable medium of claim 16 , wherein the visualization mechanism provides a quantitative comparison between the first user population and the second user population in an interactive manner.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2021
From: DUBYNSKIY, SERGIY; SHUBIN, TATIANA; SHAHDEO, SANDHYA; MUTHUKUMAR, POORNIMA
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 057388/0254 →
Continuity (1)
Related Publication 20230075564A1 · Mar 9, 2023
References Cited (43)
US 8024303B2 · Roehrle et al. · 2011 [cited by applicant]
US 9009738B2 · Matichuk · 2015 [cited by applicant]
US 9246935B2 · Lietz et al. · 2016 [cited by applicant]
US 9268663B1 · Siddiqui et al. · 2016 [cited by applicant]
US 9684579B1 · Adams et al. · 2017 [cited by applicant]
US 9703691B1 · Yim et al. · 2017 [cited by applicant]
US 9934384B2 · Johansson et al. · 2018 [cited by applicant]
US 10067857B2 · Ekambaram et al. · 2018 [cited by applicant]
US 10073692B2 · Carter · 2018 [cited by applicant]
US 20120266155A1 · Valeriano et al. · 2012 [cited by applicant]
US 20140278198A1 · Lyon et al. · 2014 [cited by applicant]
US 20150012852A1 · Borodin et al. · 2015 [cited by applicant]
US 20150317235A1 · Lachambre et al. · 2015 [cited by applicant]
US 20160259638A1 · El Maghraoui et al. · 2016 [cited by applicant]
US 20190034315A1 · Acosta et al. · 2019 [cited by applicant]
US 20190050321A1 · Sapozhnikov et al. · 2019 [cited by applicant]
US 20190236306A1 · Ding · 2019 [cited by examiner]
US 20190391798A1 · Farrell et al. · 2019 [cited by applicant]
US 20200183811A1 · Krishnan · 2020 [cited by examiner]
US 20200272552A1 · Markiewicz · 2020 [cited by examiner]
US 20210004311A1 · Bhide · 2021 [cited by examiner]
US 20210081308A1 · Golubev · 2021 [cited by examiner]
US 20210165641A1 · Gilpin · 2021 [cited by examiner]
US 20220188220A1 · Shailendra · 2022 [cited by examiner]
US 20220300400A1 · Bikkina · 2022 [cited by examiner]
US 20220374345A1 · Brown · 2022 [cited by examiner]
WO 2012167190A1 · 2012 [cited by applicant]
WO 2017071425A1 · 2017 [cited by applicant]
“Apple Beta Software Program”, Retrieved from: https://web.archive.org/web/20150702133522/https://beta.apple.com/sp/betaprogram/welcome, Jul. 2, 2015, 2 Pages. [cited by applicant]
“Chrome Release Channels”, Retrieved from: https://web.archive.org/web/20210720192255/https://www.chromium.org/getting-involved/dev-channel, Jul. 20, 2021, 3 Pages. [cited by applicant]
“Help make the next release of Android the best yet.”, Retrieved from: https://www.google.com/android/beta, Jul. 29, 2021, 3 Pages. [cited by applicant]
“Create a Device Pool in AWS Device Farm”, Retrieved from: https://web_archive.org/web/20150717221738/https1docs.aws.amazon.comidevicefarmilatestideveloperguide/how-to-create-device-pool.html, Jul. 17, 2015, 3 Pages. [cited by applicant]
“Firebase Test Lab”, Retrieved from: https://firebase.google.comidocsitest-lab/, Retrieved on: May 24, 2018, 4 Pages. [cited by applicant]
“Mobile App Testing Made Scalable”, Retrieved from: https://bitbar.comitestingi, Retrieved on: May 24, 2018, 5 Pages. [cited by applicant]
Communication Pursuant to Rule 71 (3) Received for European Application No. 19824139.0, mailed on May 9, 2023, 7 pages. [cited by applicant]
Decision to Grant pursuant to Article 97(1) received in European Application No. 19824139.0, mailed on Jul. 27, 2023, 2 pages. [cited by applicant]
Final Office Action Mailed Date: Jun. 9, 2020, in U.S. Appl. No. 16/212,668, 19 Pages. [cited by applicant]
International Search Report and Written Opinion Issued in PCT Application No. PCT/US22/036603, Mailed Date: Oct. 4, 2022, 11 Pages. [cited by applicant]
International Search Report and Written Opinion Mailed Date: Apr. 15, 2020, in PCT Application No. PCT/US2019/063823, 11 Pages. [cited by applicant]
Non-Final Office Action Mailed Date: Dec. 16, 2019, In U.S. Appl. No. 16/212,668, 15 Pages. [cited by applicant]
Non-Final Office Action Mailed Date: Sep. 28, 2020, in U.S. Appl. No. 16/212,668, 23 Pages. [cited by applicant]
Notice of Allowance Mailed Date: Feb. 18, 2021, in U.S. Appl. No. 16/212,668, 14 Pages. [cited by applicant]
Rajiv D. Banker et al., Gauging the Quality of Managerial Decision Regarding Information Technology Deployment, IEEE, 1991, retrieved online on Feb. 10, 2021, pp. 276-286. Retrieved from the Internet: <URL:https://ieeex… [cited by applicant]