# US 10,311,367 B2 · User-powered recommendation system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,311,367 B2
- Document ID: US10311367B2
- Status: Granted
- Kind: B2
- Application number: 14/988,997
- Filed: 2016-01-06
- Published: 2016-04-28
- Granted: 2019-06-04
- Earliest claimed: 2008-11-17
- Assignees: AT&T Intellectual Property I, L.P.; Board of Regents, The University of Texas System
- Applicants: AT&T Intellectual Property I, L.P.; Board of Regents, The University of Texas System
- Inventors: Kadangode K. Ramakrishnan; Divesh Srivastava; Tae Won Cho; Yin Zhang
- Web page: https://patentgrep.com/patent/US10311367B2

## CPC

- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06F 16/244: {Grouping and aggregation}
- G06F 16/48: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F 16/90324: {using system suggestions}
- G11B 27/105: {of operating discs}
- H04N 21/4661: {Deriving a combined profile for a plurality of end-users of the same client, e.g. for family members within a home (user profiles in network data switching protocols H04L67/306)}
- H04N 21/4668: {for recommending content, e.g. movies}
- H04N 21/4756: {for rating content, e.g. scoring a recommended movie}
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Recommendation systems are widely used in Internet applications. In current recommendation systems, users only play a passive role and have limited control over the recommendation generation process. As a result, there is often considerable mismatch between the recommendations made by these systems and the actual user interests, which are fine-grained and constantly evolving. With a user-powered distributed recommendation architecture, individual users can flexibly define fine-grained communities of interest in a declarative fashion and obtain recommendations accurately tailored to their interests by aggregating opinions of users in such communities. By combining a progressive sampling technique with data perturbation methods, the recommendation system is both scalable and privacy-preserving.

## Claims

### Claim 1

A method comprising:
receiving a user defined declarative community definition comprising a predicate on user attributes;
selecting a plurality of members, based on the user defined declarative community definition, split into a plurality of disjoint sampling groups, each particular disjoint sampling group in the plurality of disjoint sampling groups having a particular size, the particular size decreases exponentially from a first size to a second size, and the plurality of members selected from the disjoint sampling group with the smallest size such that an accuracy level of a plurality of perturbed rating data is greater than or equal to a user-defined accuracy level;
for each member of the plurality of members, retrieving, from a recommendation database storing a plurality of data structures, a particular rating associated with each member based on the user-defined recommendation request to generate a plurality of ratings, each of the plurality of data structures comprising a sum over a random subset of original data;
generating a plurality of perturbed ratings based on the plurality of ratings such that there is a predetermined probability that each rating of the plurality of ratings is different from its respective perturbed rating of the plurality of perturbed ratings;
aggregating the plurality of perturbed ratings to generate an aggregated perturbed rating; and
generating a recommendation based on the aggregated perturbed rating.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving a user-defined item constraint,
wherein the generating the recommendation is further based on the user-defined item constraint.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving a user defined recommendation request issued by a user as a user query, the recommendation generated in response to receiving the user defined recommendation request.

### Claim 4

An apparatus comprising:
a processor; and
a memory to store computer program instructions, the computer program instructions when executed on the processor cause the processor to perform operations comprising:
receiving a user defined declarative community definition comprising a predicate on user attributes;
selecting a plurality of members, based on the user defined declarative community definition, split into a plurality of disjoint sampling groups, each particular disjoint sampling group in the plurality of disjoint sampling groups having a particular size, the particular size decreases exponentially from a first size to a second size, and the plurality of members selected from the disjoint sampling group with the smallest size such that an accuracy level of a plurality of perturbed rating data is greater than or equal to a user-defined accuracy level;
for each member of the plurality of members, retrieving, from a recommendation database storing a plurality of data structures, a particular rating associated with each member based on the user-defined recommendation request to generate a plurality of ratings, each of the plurality of data structures comprising a sum over a random subset of original data;
generating a plurality of perturbed ratings based on the plurality of ratings such that there is a predetermined probability that each rating of the plurality of ratings is different from its respective perturbed rating of the plurality of perturbed ratings;
aggregating the plurality of perturbed ratings to generate an aggregated perturbed rating; and
generating a recommendation based on the aggregated perturbed rating.

### Claim 5 (depends on 4)

The apparatus of claim 4, the operations further comprising:
receiving a user-defined item constraint,
wherein the generating the recommendation is further based on the user-defined item constraint.

### Claim 6 (depends on 4)

The apparatus of claim 4, the operations further comprising:
receiving a user defined recommendation request issued by a user as a user query, the recommendation generated in response to receiving the user defined recommendation request.

### Claim 7

A non-transitory computer readable medium storing computer program instructions, which, when executed on a processor, cause the processor to perform operations comprising:
receiving a user defined declarative community definition comprising a predicate on user attributes;
selecting a plurality of members, based on the user defined declarative community definition, split into a plurality of disjoint sampling groups, each particular disjoint sampling group in the plurality of disjoint sampling groups having a particular size, the particular size decreases exponentially from a first size to a second size, and the plurality of members selected from the disjoint sampling group with the smallest size such that an accuracy level of a plurality of perturbed rating data is greater than or equal to a user-defined accuracy level;
for each member of the plurality of members, retrieving, from a recommendation database storing a plurality of data structures, a particular rating associated with each member based on the user-defined recommendation request to generate a plurality of ratings, each of the plurality of data structures comprising a sum over a random subset of original data;
generating a plurality of perturbed ratings based on the plurality of ratings such that there is a predetermined probability that each rating of the plurality of ratings is different from its respective perturbed rating of the plurality of perturbed ratings;
aggregating the plurality of perturbed ratings to generate an aggregated perturbed rating; and
generating a recommendation based on the aggregated perturbed rating.

### Claim 8 (depends on 7)

The non-transitory computer readable medium of claim 7, further comprising:
receiving a user-defined item constraint,
wherein the generating the recommendation is further based on the user-defined item constraint.
