IP Library › Granted Patent US 9,858,318
Granted Patent B2
US 9,858,318 · App. 14/372,976 · Granted Jan 2, 2018

Managing data entities using collaborative filtering

Inventors: Shyam Sundar Rajaram (San Francisco, CA); Craig Peter Sayers (Menlo Park, CA); Rajan Lukose (Oakland, CA); Martin Scholz (San Francisco, CA)
Assignee: EntIT Software LLC
G06F17/3053G06F17/30029
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 9,858,318
App. No.
14/372,976
Filed
Jul 17, 2014
Granted
Jan 2, 2018
Kind
B2
Art Unit
2168
USPC
707/749
Abstract

In a method for managing a plurality of data entities, data pertaining to transactions by a plurality of users with respect to the data entities is collected and a collaborative filtering operation is applied on the data entities to determine similarity levels of the data entities with respect to each other. In addition, for at least one of the data entities, remaining ones of the data entities are ranked according to the determined similarities while discounting for popularities of the data entities. Moreover, identifications of at least another one of the data entities having the highest rankings to the at least one of the data entities are presented to a first user to recommend the at least another one of the data entities for use by the first user.

Claims (285)

1. A method for managing a plurality of data entities, said method comprising:

collecting data pertaining to transactions by a plurality of users with respect to the data entities, wherein the data entities are available for use on user devices;

applying, by a processor, a collaborative filtering operation on the data entities to determine similarity levels of the data entities with respect to each other;

for at least one of the data entities, ranking remaining ones of the data entities according to the determined similarities while discounting for popularities of the data entities;

presenting identifications of at least another one of the data entities having the highest rankings to the at least one of the data entities to a first user to recommend the at least another one of the data entities for use by the first user;

determining that a user has deleted a data entity; and

presenting, for display to the first user, an identification of a subset of the remaining ones of the data entities determined to be similar to the deleted data entity.

2. The method according to claim 1 , wherein applying the collaborative filtering operation further comprises applying a weighted collaborative filtering operation on the data entities by using the collected data to determine values for a plurality of weights to be applied in the weighted collaborative filtering operation.

3. The method according to claim 1 , wherein ranking the remaining ones of the data entities while discounting for popularities of the data entities comprises:

determining first rankings of the remaining ones of the data entities based upon popularity;

comparing the first rankings of the remaining ones of the data entities based upon popularity with the rankings of the remaining ones of the data entities according to the determined similarities; and

ranking the remaining ones of the data entities based upon differences between the first rankings and the rankings according to the determined similarities.

4. The method according to claim 1 , further comprising:

determining identifications of data entities currently stored on a user device of the first user; and

presenting an identification of a subset of the remaining ones of the data entities that have a highest ranked similarity to the identified data entities currently downloaded on the user device of the first user.

5. The method of claim 1 , wherein the discounting for the popularities comprises reducing a rank of a given remaining data entity of the remaining ones of the data entities responsive to the given remaining data entity having a higher popularity.

6. The method according to claim 2 , wherein applying the weighted collaborative filtering operation on the data entities further comprises calculating a similarity measure (S) among data entities (i, j) to determine similarity levels of the data entities (i) with respect to other data entities (j) using the following equation:

S

⁡

(

i

,

j

)

=

(

w

1

*

⁢

#

⁢

⁢

⁢

users

⁢

⁢

who

⁢

⁢

have

⁢

⁢

data

⁢

⁢

entities

⁢

⁢

i

⁢

⁢

and

⁢

⁢

j

+

w

2

*

⁢

#

⁢

⁢

users

⁢

⁢

who

⁢

⁢

installed

⁢

⁢

data

⁢

⁢

entities

⁢

⁢

i

⁢

⁢

and

⁢

j

⁢

⁢

in

⁢

⁢

a

⁢

⁢

short

⁢

⁢

time

⁢

⁢

window

+

w

3

*

#

⁢

⁢

users

⁢

⁢

who

⁢

⁢

deleted

⁢

⁢

data

⁢

⁢

entity

⁢

⁢

i

⁢

⁢

and

installed

⁢

⁢

data

⁢

⁢

entity

⁢

⁢

j

⁢

⁢

in

⁢

⁢

a

⁢

⁢

short

⁢

⁢

time

⁢

⁢

window

)

(

(

w

1

+

w

2

+

w

3

)

*

#

⁢

⁢

users

⁢

⁢

who

⁢

⁢

have

⁢

⁢

data

⁢

⁢

entity

⁢

⁢

j

)

*

(

(

w

1

+

w

2

)

*

#

⁢

⁢

⁢

users

⁢

⁢

who

⁢

⁢

have

⁢

⁢

data

⁢

⁢

entity

⁢

⁢

i

+

(

w

3

)

*

#

⁢

⁢

users

⁢

⁢

who

⁢

⁢

have

⁢

⁢

removed

⁢

⁢

data

⁢

⁢

entity

⁢

⁢

i

)

⁢

wherein w 1 , w 2 , w 3 comprise predetermined weights.

7. The method according to claim 2 , further comprising:

determining an interest level of the users to the data entities based upon retention patterns of the data entities by the users; and

wherein applying the weighted collaborative filtering operation further comprises weighting the data entities having higher interest levels of the users higher than the data entities having lower interest levels.

8. The method according to claim 2 , further comprising:

determining, for each of the users, a difference in time at which the respective users downloaded the data entities; and

wherein applying the weighted collaborative filtering operation further comprises weighting the data entities that were downloaded by the respective users within a predetermined length of time with respect to each other higher than the data entities that were downloaded outside of the predetermined length of time.

9. The method according to claim 2 , further comprising:

determining, for each of the users, data entity pairs that correspond to a respective first data entity that has been downloaded within a predetermined length of time following deletion of a respective second data entity; and

wherein applying the weighted collaborative filtering operation further comprises weighting the determined data entity pairs higher than other data entity pairs.

10. The method according to claim 2 , further comprising:

determining categories into which the data entities belong; and

wherein applying the weighted collaborative filtering operation further comprises weighting data entity pairs that belong to the same categories higher than data entity pairs that do not belong to the same categories.

11. The method according to claim 2 , further comprising:

determining developers of the data entities; and

wherein applying the weighted collaborative filtering operation further comprises weighting data entity pairs that were developed by the same developers higher than data entity pairs that were developed by different developers.

12. The method according to claim 2 , further comprising:

determining semantic information of the data entities; and

wherein applying the weighted collaborative filtering operation further comprises weighting data entity pairs having similar semantic information higher than data entity pairs that have dissimilar semantic information.

13. The method according to claim 2 , wherein the data entities are available for downloading from a data entity store, said method further comprising:

causing a subset of the data entities to be displayed to the first user;

determining that the first user is interested in a first data entity; and

causing the highest ranked ones of the remaining ones of the data entities determined to be similar to the first data entity to be displayed to the first user.

14. An apparatus for managing a plurality of data entities, comprising:

a processor; and

a non-transitory storage medium storing instructions executable on the processor to:

collect data pertaining to transactions by users with respect to the data entities, wherein the data entities are available for use on user devices,

apply a weighted collaborative filtering operation on the data entities to determine similarity levels of the data entities with respect to other data entities by using the collected data to determine values for a plurality of weights to be applied in the weighted collaborative filtering operation, wherein the weighted collaborative filtering operation comprises calculating a similarity measure between a first data entity and a second data entity based on:

a number of users who have installed the first and second data entities within a specified time duration, and

a number of users who have deleted the first data entity and installed the second data entity within a specified time duration

for a given data entity of the plurality of data entities, rank remaining data entities of the plurality of data entities according to the determined similarity levels determined for the given data entity while discounting for popularities of the remaining data entities, and

present an identification of a first remaining data entity of the remaining data entities having a higher ranking than a second remaining data entity of the remaining data entities, the first remaining data entity presented to a user to recommend the first remaining data entity for use by the user.

15. The apparatus of claim 14 , wherein the weighted collaborative filtering operation applied on the data entities to determine the similarity levels comprises indicating that a third data entity has a higher similarity to a fourth data entity responsive to determining that the third data entity was installed by a user within a predetermined time duration following deletion of the fourth data entity.

16. The apparatus of claim 14 , wherein the discounting for the popularities of the remaining data items comprises reducing a rank of a given remaining data entity of the remaining data entities responsive to the given remaining data entity having a higher popularity.

17. The apparatus of claim 14 , wherein the discounting for the popularities of the remaining data items comprises setting a rank of a given remaining data entity of the remaining data entities based on a difference between a first ranking assigned the given remaining data entity according to a popularity of the given remaining data entity and a second ranking assigned the given remaining data entity based on the ranking according to the determined similarity levels, and

wherein the rank of the given remaining data entity is proportional to the difference between the first ranking and the second ranking.

18. A non-transitory computer readable storage medium storing program instructions that upon execution cause a computing device to:

collect data pertaining to transactions by users with respect to a plurality of data entities, wherein the data entities are available for use on user devices, and wherein the transactions comprise installations, deletions, and usage;

apply a weighted collaborative filtering operation on the data entities to determine similarity levels of the data entities with respect to each other by using the collected data to determine values for a plurality of weights to be applied in the weighted collaborative filtering operation, wherein the weighted collaborative filtering operation applied on the data entities to determine the similarity levels comprises indicating that a first data entity has a higher similarity to a second data entity responsive to determining that the first data entity was installed by a user within a predetermined time duration following deletion of the second data entity;

for a given data entity of the plurality of data entities, rank remaining data entities of the plurality of data entities according to the determined similarity levels while discounting for popularities of the remaining data entities, wherein the discounting for the popularities of the remaining data entities comprises reducing a rank of a given remaining data entity of the remaining data entities responsive to the given remaining data entity having a higher popularity; and

present identifications of selected remaining data entities of the remaining data entities having the highest rankings to a user to recommend the selected remaining data entities for use by the user.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2014
From: RAJARAM, SHYAM SUNDAR; SAYERS, CRAIG PETER; LUKOSE, RAJAN; SCHOLZ, MARTIN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 034094/0381 →
Continuity (1)
Related Publication 20140372453A1 · Dec 18, 2014