IP Library Patent Application 15448290
Patent Application
App. No. 15/448,290

SKILLS CLUSTERING WITH LATENT REPRESENTATION OF WORDS

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 None
App. No.
15/448,290
Abstract

Systems and methods for identifying appropriate course recommendations are disclosed. A system receives a request for recommended courses and accesses a plurality of course records to determine whether a sufficient number of courses that teach the skill of interest are available. In accordance with a determination that a sufficient number of courses that teach the skill of interest are not available, the system generates skill attribute vectors for a skill of interest and a plurality of other skills and ranks the plurality of other skills based on the distance between the skill attribute for the skill of interest and the plurality of other skills. The system selects a skill based on the rankings. The system identifies at least one course that teaches the selected skill and transmits a course recommendation for the identified course to a client system for presentation.

Claims (93)

1 . A computer-implemented method using at least one computer processor, the method comprising:

receiving a request for recommended courses, wherein the request includes a skill of interest;

accessing a plurality of course records to determine whether a sufficient number of courses that teach the skill of interest are available;

in accordance with a determination that a sufficient number of courses that teach the skill of interest are not available:

accessing a plurality of skill records representing a plurality of skills other than the skill of interest;

generating skill attribute vectors for the skill of interest and the plurality of skills other than the skill of interest;

calculating a distance score between the skill attribute vectors associated with the plurality of skills other than the skill of interest and a skill attribute vector associated with the skill of interest;

ranking the plurality of skills other than the skill of interest based on the distance score associated with their respective skill attribute vectors;

selecting a skill based on the rankings;

identifying at least one course that teaches the selected skill; and

transmitting a course recommendation for the identified course to a client system for presentation.

2 . The method of claim 1 , further comprising:

for the plurality of skills stored in the database at a server system:

generating a skill attribute vector for each skill in the plurality of skills; and

using the generated skill attribute vectors, grouping the plurality of skills into a plurality of skill groups.

3 . The method of claim 2 , wherein grouping the plurality of skills into a plurality of skill groups further comprises:

selecting a plurality of skill attribute vectors as group central points;

for a particular skill attribute vector associated with a skill:

calculating a distance between the particular skill attribute vector and a plurality of group central points;

selecting, based on the calculated distance, a skill group with a group central point closest to the particular skill attribute vector; and

grouping the particular skill attribute vector into the selected skill group.

4 . The method of claim 3 , further comprising:

recalculating the group central point of the selected skill group.

5 . The method of claim 3 further comprising:

grouping small skill groups into larger skill groups to create a skill group hierarchy.

6 . The method of claim wherein determining whether a sufficient number of courses that teach the skill of interest are available comprises:

accessing metadata for a plurality of courses, the metadata including a list of skills taught by each course; and

identifying whether the metadata for the plurality of courses includes the skill of interest.

7 . The method of claim 6 , further comprising:

counting a number of courses with metadata that lists the skill of interest;

determining whether the counted number of courses exceeds a requested number of course recommendations; and

in accordance with a determination that the counted number of courses does not exceed the requested number of course recommendations, determining that a sufficient number of courses that teach the skill of interest are not available.

8 . A system comprising:

a computer-readable memory storing computer-executable instructions that, when executed by one or more hardware processors, configure the system to perform a plurality of operations, the operations comprising:

receiving a request for recommended courses, wherein the request includes a skill of interest;

accessing a plurality of course records to determine whether a sufficient number of courses that teach the skill of interest are available;

in accordance with a determination that a sufficient number of courses that teach the skill of interest are not available:

accessing a plurality of skill records representing a plurality of skills other than the skill of interest;

generating skill attribute vectors for the skill of interest and the plurality of skills other than the skill of interest;

calculating a distance score between the skill attribute vectors associated with the plurality of skills other than the skill of interest and a skill attribute vector associated with the skill of interest;

ranking the plurality of skills other than the skill of interest based on the distance score associated with their respective skill attribute vectors;

selecting a skill based on the rankings;

identifying at least one course that teaches the selected skill; and

transmitting a course recommendation for the identified course to a client system for presentation.

9 . The system of claim 8 , further including operations comprising:

for the plurality of skills stored in the database at a server system:

generating a skill attribute vector for each skill in the plurality of skills; and

using the generated skill attribute vectors, grouping plurality of skills into a plurality of skill groups.

10 . The system of claim 9 , wherein the operations for grouping the plurality of skills into a plurality of skill groups further comprise operations for:

selecting a plurality of skill attribute vectors as group central points;

for a particular skill attribute vector associated with a skill:

calculating a distance between the particular skill attribute vector and a plurality of group central points;

selecting, based on the calculated distance, a skill group with a group central point closest to the particular skill attribute vector; and

grouping the particular skill attribute vector into the selected skill grog

11 . The system of claim 10 , further including operations comprising:

recalculating the group central point of the selected skill group.

12 . The system of claim 10 , further including operations comprising:

grouping small skill groups into larger skill groups to create a skill group hierarchy.

13 . The system of claim 8 , wherein operations for determining whether a sufficient number of courses that teach the skill of interest are available further comprise operations for:

accessing metadata for a plurality of courses, the metadata including a list of skills taught by each course; and

identifying whether the metadata for the plurality of courses includes the skill of interest.

14 . The system of claim 13 , further including operations comprising:

counting a number of courses with metadata that lists the skill of interest;

determining whether the counted number of courses exceeds a requested number of course recommendations; and

in accordance with a determination that the counted number of courses does not exceed the requested number of course recommendations, determining that a sufficient number of courses that teach the skill of interest are not available,

15 . A non-transitory computer-readable storage medium storing instructions that, when executed by the one or more processors of a machine, cause the machine to perform operations comprising:

receiving a request for recommended courses, wherein the request includes a skill of interest;

accessing a plurality of course records to determine whether a sufficient number of courses that teach the skill of interest are available;

in accordance with a determination that a sufficient number of courses that teach the skill of interest are not available:

accessing a plurality of skill records representing a plurality of skills other than the skill of interest;

generating skill attribute vectors for the skill of interest and the plurality of skills other than the skill of interest;

calculating a distance score between the skill attribute vectors associated with the plurality of skills other than the skill of interest and a skill attribute vector associated with the skill of interest;

ranking the plurality of skills other than the skill of interest based on the distance score associated with their respective skill attribute vectors;

selecting a skill based on the rankings;

identifying at least one course that teaches the selected skill; and

transmitting a course recommendation for the identified course to a client system for presentation.

16 . The non-transitory computer-readable storage medium of claim 15 , further including operations comprising:

for the plurality of skills stored in the database at a server system:

generating a skill attribute vector for each skill in the plurality of skills; and

using the generated skill attribute vectors, grouping the plurality of skills into a plurality of skill groups.

17 . The non-transitory computer-readable storage medium of claim 16 , wherein the operations for grouping the plurality of skills into a plurality of skill groups further comprise operations for:

selecting a plurality of skill attribute vectors as group central points;

for a particular skill attribute vector associated with a skill:

calculating a distance between the particular skill attribute vector and a plurality of group central points;

selecting, based on the calculated distance, a skill group with a group central point closest to the particular skill attribute vector; and

grouping the particular skill attribute vector into the selected skill group.

18 . The non-transitory computer-readable storage medium of claim 17 , further including operations comprising:

recalculating the group central point of the selected skill group.

19 . The non-transitory computer-readable storage medium of claim 17 , further including operations comprising:

grouping small skill groups into larger skill groups to create a skill group hierarchy.

20 . The non-transitory computer-readable storage medium of claim 15 , wherein operations for determining whether a sufficient number of courses that teach the skill of interest are available further comprise operations for:

accessing metadata for a plurality of courses, the metadata including a list of skills taught by each course; and

identifying whether the metadata for the plurality of courses includes the skill of interest.

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 Mar 2, 2017
From: WANG, QIN IRIS; ZHANG, SIYUAN; JAMALI, MOHSEN; FIROOZ, HAMED
To: LINKEDIN CORPORATION
Reel/Frame 041446/0195 →