IP Library Granted Patent US 10,102,503
Granted Patent B2
US 10,102,503 · App. 15/145,061 · Granted Oct 16, 2018

Scalable response prediction using personalized recommendation models

Inventors: XianXing Zhang (Mountain View, CA); Yitong Zhou (Sunnyvale, CA); Yiming Ma (Menlo Park, CA); Bee-Chung Chen (San Jose, CA); Liang Zhang (Fremont, CA); Deepak Agarwal (Sunnyvale, CA)
Assignee: Microsoft Licensing Technology, LLC
G06Q10/1053G06F17/3053
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 10,102,503
App. No.
15/145,061
Granted
Oct 16, 2018
Kind
B2
Abstract

The disclosed embodiments provide a system for processing data. During operation, the system obtains a global version of a statistical model and a user-specific version of the statistical model for a user. Next, the system applies the global version to member features of the user and job features of a set of jobs to generate a first ranking of the jobs for the user. The system then applies the user-specific version to the member features and the job features for a highest-ranked subset of jobs in the first ranking to generate a second ranking of the jobs for the user. Finally, the system outputs at least a portion of the second ranking as a set of job recommendations.

Claims (62)

1. A method, comprising:

obtaining a global version of a statistical model and a user-specific version of the statistical model for a user;

applying, by one or more computer systems, the global version to member features of the user and job features of a set of jobs to generate a first ranking of the jobs for the user;

applying, by the one or more computer systems, the user-specific version to the member features and the job features for a highest-ranked subset of jobs in the first ranking to generate a second ranking of the jobs for the user; and

outputting, to the user, at least a portion of the second ranking as a set of job recommendations;

wherein applying the global version to the member features and the job features to generate the first ranking of the jobs for the user comprises:

using a job feature key in an inverted index to retrieve the job features for a subset of the jobs that matches the job feature key; and

applying the global version to the member features and the retrieved job features to calculate a global score for each job in the subset of jobs.

2. The method of claim 1 , further comprising:

obtaining a set of job-specific models for the highest-ranked subset of jobs; and

applying the job-specific models to the member features and job features to generate the second ranking of the jobs for the user.

3. The method of claim 2 , wherein the second ranking of the jobs for the user is generated by:

for each job in the highest-ranked subset of jobs, combining a first output of the user-specific version and a second output of a job-specific model for the job to obtain a user-specific score for the job; and

re-ranking the highest-ranked subset of jobs by the user-specific score.

4. The method of claim 3 , wherein the second ranking of the jobs for the user is further generated by:

combining the first and second outputs with a third output of the global version to obtain the user-specific score for the job.

5. The method of claim 4 , wherein the third output of the global version is produced using a cross product of one or more of the member features and one or more of the job features to produce the third output.

6. The method of claim 4 , wherein the third output of the global version is produced using a similarity of one or more of the member features to one or more of the job features.

7. The method of claim 1 , wherein calculating a global score for each job in the subset of jobs comprises:

calculating the global score for the job from a weighted combination comprising a set of coefficients in the global version, the member features, and the job features of the job.

8. The method of claim 1 , further comprising:

updating the global version, the user-specific version, and one or more of the job-specific models based on one or more responses to the outputted job recommendations by the user.

9. The method of claim 1 , wherein the first and second rankings comprise an estimated probability of applying to a job by the user.

10. An apparatus, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

obtain a global version of a statistical model and a user-specific version of the statistical model for a user;

apply the global version to member features of the user and job features of a set of jobs to generate a first ranking of the jobs for the user;

apply the user-specific version to the member features and the job features for a highest-ranked subset of jobs in the first ranking to generate a second ranking of the jobs for the user; and

output at least a portion of the second ranking as a set of job recommendations;

wherein applying the global version to the member features and the job features to generate the first ranking of the jobs for the user comprises:

using a job feature key in an inverted index to retrieve the job features for a subset of the jobs that matches the job feature key; and

applying the global version to the member features and the retrieved job features to calculate a global score for each job in the subset of jobs.

11. The apparatus of claim 10 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the apparatus to:

obtain a set of job-specific models for the highest-ranked subset of jobs; and

apply the job-specific models to the member features and the job features to generate the second ranking of the jobs for the user.

12. The apparatus of claim 11 , wherein the second ranking of the jobs for the user is generated by:

for each job in the highest-ranked subset of jobs, combining a first output of the user-specific version and a second output of a job-specific model for the job to obtain a user-specific score for the job; and

re-ranking the highest-ranked subset of jobs by the user-specific score.

13. The apparatus of claim 12 , wherein the second ranking of the jobs for the user is further generated by:

combining the first and second outputs with a third output of the global version to obtain the user-specific score for the job.

14. The apparatus of claim 13 , wherein the third output of the global version is produced using a cross product of one or more of the member features and one or more of the job features to produce the third output.

15. The apparatus of claim 13 , wherein the third output of the global version is produced using a similarity of one or more of the member features to one or more of the job features.

16. The apparatus of claim 10 , wherein calculating a global score for each job in the subset of jobs comprises:

calculating the global score for the job from a weighted combination comprising a set of coefficients in the global version, the member features, and the job features of the job.

17. A system, comprising:

an analysis module comprising a non-transitory computer-readable medium comprising instructions that, when executed by a computer, cause the system to:

obtain a global version of a statistical model and a user-specific version of the statistical model for a user;

apply the global version to member features of the user and job features of a set of jobs to generate a first ranking of the jobs for the user; and

apply the user-specific version to the member features and the job features for a highest-ranked subset of jobs in the first ranking to generate a second ranking of the jobs for the user; and

a management module comprising a non-transitory computer-readable medium comprising instructions that, when executed by the computer, cause the system to output at least a portion of the second ranking as a set of job recommendations;

wherein applying the global version to the member features and the job features to generate the first ranking of the jobs for the user comprises:

using a job feature key in an inverted index to retrieve the job features for a subset of the jobs that matches the job feature key; and

applying the global version to the member features and the retrieved job features to calculate a global score for each job in the subset of jobs.

18. The system of claim 17 , wherein the non-transitory computer-readable medium of the analysis module further comprises instructions that, when executed, cause the system to:

obtain a set of job-specific models for the highest-ranked subset of jobs; and

apply the job-specific models to the member features and the job features to generate the second ranking of the jobs for the user.

19. The system of claim 17 , wherein the second ranking of the jobs for the user is generated by:

for each job in the highest-ranked subset of jobs, combining a first output of the user-specific version and a second output of a job-specific model for the job to obtain a user-specific score for the job; and

re-ranking the highest-ranked subset of jobs by the user-specific score.

20. The system of claim 19 , wherein the second ranking of the jobs for the user is further generated by:

combining the first and second outputs with a third output of the global version to obtain the user-specific score for the job.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: ZHANG, XIANXING; ZHOU, YITONG; MA, YIMING; CHEN, BEE-CHUNG; ZHANG, LIANG; AGARWAL, DEEPAK
To: LINKEDIN CORPORATION
Reel/Frame 038633/0800 →
Continuity (1)
Related Publication 20170323268A1 · Nov 9, 2017