# US 11,907,312 B1 · User type affinity estimation using gamma-poisson model

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

- Number: US 11,907,312 B1
- Document ID: US11907312B1
- Status: Granted
- Kind: B1
- Application number: 15/862,403
- Filed: 2018-01-04
- Granted: 2024-02-20
- Earliest claimed: 2018-01-04
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: Yanen Li; Fei Wu; Ning Xu
- Web page: https://patentgrep.com/patent/US11907312B1

## CPC

- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- G06F 16/437: {Administration of user profiles, e.g. generation, initialisation, adaptation, distribution}
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06N 7/00: Computing arrangements based on specific mathematical models
- G06N 20/00: Machine learning
- G06Q 10/42: Determination of affinities or common interests between users
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Systems and methods are provided for generating a user click history table and a random bucket training table, generating training data for training a user-type-affinity machine learning model by combining the user click history table and the random bucket training table, and training the user-type-affinity machine learning model with the generated training data. The systems and methods further provide for generating a user click prediction table and generating user-type-affinity prediction values for each of the plurality of users by inputting the user click prediction table into the user-type-affinity machine learning model.

## Claims

### Claim 1

A method comprising:
generating, by a computing system, for each of a plurality of users, a user click prediction table comprising a count corresponding to a number of times a user clicks on a type of media collection;
analyzing the user click prediction table for each of the plurality of users using a machine learning model comprising a Poisson gamma model and trained to estimate an affinity a given user has for a type of media collection based on a feature vector comprising user features and features for each type of media collection and using a correction factor based on a user click history;
storing, by the computing system, prediction values generated by the machine learning model as user profile data for each user of the plurality of users, each prediction value indicating how much preference a given user has for a corresponding type of media collection; and
sending one or more prediction values associated with a user identifier to a client device to cause display of a plurality of media collections ranked in an order based on the one or more prediction values.

### Claim 2 (depends on 1)

The method of claim 1, wherein before sending the one or more prediction values associated with the user identifier to the client device, the method comprises:
receiving, from the client device, a request for the one or more prediction values for each type of media collection for a user associated with the user identifier; and
wherein the client device displays the plurality of media collections ranked in the order based on the one or more prediction values such that a media collection of the plurality of media collections that is associated with a highest prediction value is displayed first in the plurality of media collections.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
training a function for an affinity score, using user data comprising features related to each of the plurality of users; and
wherein the trained function for the affinity score is used to train the machine learning model.

### Claim 4 (depends on 3)

The method of claim 3, wherein the function for the affinity score is trained using logistic regression.

### Claim 5 (depends on 3)

The method of claim 3, wherein training of the function for the affinity score comprises:
(a) fixing the correction factor to 1 to find a first best weight for each feature vector for a user-type pair, of a plurality of feature vectors for a plurality of user-type pairs;
(b) fixing a weight to the first best weight to re-estimate the correction factor;
(c) fixing the correction factor to the re-estimated correction factor to find a best weight for each feature vector for a user-type pair, of a plurality of feature vectors for a plurality of user-type pairs;
(d) fixing the weight to the best weight to re-estimate the correction factor; and
(e) reiterating steps (c) and (d) until a predetermined number of reiterations is reached or converged.

### Claim 6

A system comprising:
one or more hardware processors; and
a computer-readable medium coupled with the one or more hardware processors, the computer-readable medium comprising instructions stored thereon that are executable by the one or more hardware processors to cause the system to perform operations comprising:
generating, for each of a plurality of users, a user click prediction table comprising a count corresponding to a number of times a user clicks on a type of media collection;
analyzing the user click prediction table for each of the plurality of users using a machine learning model comprising a Poisson gamma model and trained to estimate an affinity a given user has for a type of media collection based on a feature vector comprising user features and features for each type of media collection and using a correction factor based on a user click history;
storing prediction values generated by the machine learning model as user profile data for each user of the plurality of users, each prediction value indicating how much preference a given user has for a corresponding type of media collection; and
sending one or more prediction values associated with a user identifier to a client device to cause display of a plurality of media collections ranked in an order based on the one or more predictions values.

### Claim 7 (depends on 6)

The system of claim 6, wherein before sending the one or more prediction values associated with the user identifier to the client device, the operations comprise:
receiving, from h client device, a request for the one or more prediction values for each type of media collection for a user associated with the user identifier; and
wherein the client device displays the plurality of media collections ranked in the order based on the one or more prediction values such that a media collection of the plurality of media collections that is associated with a highest prediction value is displayed first in the plurality of media collections.

### Claim 8 (depends on 6)

The system of claim 6, the operations further comprising:
training a function for an affinity score, using user data comprising features related to each of the plurality of users; and
wherein the trained function for the affinity score is used to train the machine learning model.

### Claim 9 (depends on 8)

The system of claim 8, wherein the function for the affinity score is trained using logistic regression.

### Claim 10 (depends on 9)

The system of claim 9, wherein training of the function for the affinity score comprises:
(a) fixing the correction factor to 1 to find a first best weight for each feature vector for a user-type pair, of a plurality of feature vectors for a plurality of user-type pairs;
(b) fixing a weight to the first best weight to re-estimate the correction factor;
(c) fixing the correction factor to the re-estimated correction factor to find a best weight for each feature vector for a user-type pair, of a plurality of feature vectors for a plurality of user-type pairs;
(d) fixing the weight to the best weight to re-estimate the correction factor; and
(e) reiterating steps (c) and (d) until a predetermined number of reiterations is reached or converged.

### Claim 11

A non-transitory computer-readable medium comprising instructions stored thereon that are executable by at least one processor to cause a computing device to perform operations comprising:
generating, for each of a plurality of users, a user click prediction table comprising a count corresponding to a number of times a user clicks on a type of media collection;
analyzing the user click prediction table for each of the plurality of users using a machine learning model comprising a Poisson gamma model and trained to estimate an affinity a given user has for a type of media collection based on a feature vector comprising user features and features for each type of media collection and using a correction factor based on a user click history;
storing prediction values generated by the machine learning model as user profile data for each user of the plurality of users, each prediction value indicating how much preference a given user has for a corresponding type of media collection; and
sending one or more prediction values associated with a user identifier to a client device to cause display of a plurality of media collections ranked in an order based on the one or more predictions values.

### Claim 12 (depends on 1)

The method of claim 1, wherein the count spans multiple time granularities.

### Claim 13 (depends on 1)

The method of claim 1, wherein the user click history table comprises user data for each day in a predetermined time period.

### Claim 14 (depends on 1)

The method of claim 1, wherein the user profile data comprises, for each user of the plurality of users, a user identifier and a prediction value generated by the machine learning model for each type of media collection.

### Claim 15 (depends on 1)

The method of claim 1, wherein the user click prediction table is generated from data one day prior to a day that the prediction values are generated by the machine learning model.

### Claim 16 (depends on 1)

The method of claim 1, wherein user features comprise at least one of demographics, interests, or geographic location.

### Claim 17 (depends on 1)

The method of claim 1, wherein the features for each type of media collection comprise at least one of a subject associated with a media collection or an age range of target or typical users for the media collection.

### Claim 18 (depends on 1)

The method of claim 1, wherein the correction factor for an infrequent user is close to one causing prediction values for infrequent users to be more dependent on the feature vector.

### Claim 19 (depends on 1)

The method of claim 1, wherein frequent users are largely affected by the correction factor causing prediction values for frequent users to be determined more by user click history.

### Claim 20 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein before sending the one or more prediction values associated with the user identifier to the client device, the operations comprise:
receiving, from the client device, a request for the one or more prediction values for each type of media collection for a user associated with the user identifier; and
wherein the client device displays the plurality of media collections ranked in the order based on the one or more prediction values such that a media collection of the plurality of media collections that is associated with a highest prediction value is displayed first in the plurality of media collections.
