IP Library Granted Patent US 10,796,337
Granted Patent B2
US 10,796,337 · App. 14/981,211 · Granted Oct 6, 2020

Realtime feedback using affinity-based dynamic user clustering

Inventors: Timothy Wee (San Mateo, CA); Karthik Kumara (San Mateo, CA); Ryan Applegate (San Mateo, CA); Majid Hosseini (San Mateo, CA)
Assignee: STAPLES, INC.
G06Q30/0254G06Q30/0201
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,796,337
App. No.
14/981,211
Granted
Oct 6, 2020
Kind
B2
Abstract

The disclosure relates in some cases to a technology for selecting one or more promotions to be presented to online customers using Bayesian bandits and affinity-based dynamic user clustering In some embodiments, a computer-implemented method determines a set of offers is determined, and computes affinity scores measuring affinities of users to items included in the offers. The method builds an affinity score distribution for the offers and identifies clusters of affinity scores for the offers using the corresponding affinity score distribution.

Claims (89)

1. A method for multi-modal determination of an offer executable by a computing system including one or more processors and one or more memories, the method comprising:

receiving, using the one or more processors, a set of offers;

computing, using the one or more processors, a plurality of affinity scores measuring affinities of a plurality of users to items included in the offers, wherein computing the plurality of affinity scores comprises:

computing an item-to-item similarity matrix using a plurality of item-to-item similarity scores based on a plurality of item ratings by a user;

extracting, responsive to computing the item-to-item similarity matrix, similar items with similar scores from the item-to-item matrix to form a similarity score to the item for each item; and

combining, responsive to extracting the similar items, similarity scores for the user to create each user affinity score in the plurality of affinity scores;

building, using the one or more processors and responsive to computing the plurality of affinity scores, an affinity score distribution for each of the offers using the plurality of affinity scores for the plurality of users, wherein the affinity score distribution groups counts of the plurality of users segregated by affinity score to infer a continuous score distribution;

identifying, using the one or more processors and responsive to building the affinity score distribution, a plurality of clusters of affinity scores for each of the offers using the corresponding affinity score distribution;

receiving, using the one or more processors, a content request from a client device;

determining, using the one or more processors, a selected offer including an item;

receiving, using the one or more processors, clickstream data for a target user associated with the content request;

computing, using the one or more processors, a target user affinity score to the item of the selected offer using the clickstream data, wherein computing the target user affinity score comprises:

computing a target user item-to-item similarity matrix using a plurality of item-to-item similarity scores based on a plurality of item ratings by the target user;

extracting, responsive to computing the target user item-to-item similarity matrix, similar items with similar scores from the target user item-to-item matrix to form similarity scores to the item for each item; and

combining, responsive to extracting the similar items, similarity scores for the target user to create the target user affinity score;

identifying, using the one or more processors and responsive to computing the target user affinity score, an identified cluster that the target user affinity score belongs to from among the plurality of clusters of affinity scores for the selected offer, wherein identifying the identified cluster comprises:

executing, for each offer using the one or more processors, an expectation-maximization (EM) algorithm to fit a Gaussian Mixture Model (GMM) to a score distribution; and

selecting, using the one or more processors, the GMM with a parameter that maximizes a Bayesian information criterion (BIC) metric;

retrieving, using the one or more processors and responsive to identifying the identified cluster, a beta distribution corresponding to a cluster ID of the identified cluster from a cluster ID map, wherein the cluster ID map maps each cluster ID to a corresponding beta distribution;

generating, using the one or more processors and responsive to retrieving the beta distribution, a response estimate using the beta distribution; and

responsive to receiving the content request and the response estimate exceeding a presentation threshold, automatically transmitting offer content corresponding to the selected offer to the client device, wherein the client device selectively displays the offer content.

2. The method of claim 1 , wherein computing affinity scores further comprises:

determining, using the one or more processors, a set of user features and a set of offer features; and

executing, using the one or more processors, a predictor model using the set of user features and the set of offer features.

3. A system comprising:

one or more computer processors;

one or more non-transitory computer memories storing instructions that, when executed by the one or more computer processors, causes the system to:

receive a set of offers;

compute a plurality of affinity scores measuring affinities of a plurality of users to items included in the offers, wherein computing the plurality of affinity scores comprises:

computing an item-to-item similarity matrix using a plurality of item-to-item similarity scores based on a plurality of item ratings by a user;

extracting, responsive to computing the item-to-item similarity matrix, similar items with similar scores from the item-to-item matrix to form a similarity score to the item for each item; and

combining, responsive to extracting the similar items, similarity scores for the user to create each user affinity score in the plurality of affinity scores;

build, responsive to computing the plurality of affinity scores, an affinity score distribution using the plurality of affinity scores for the plurality of users for each of the offers, wherein the affinity score distribution groups counts of the plurality of users segregated by affinity score to infer a continuous score distribution;

identify, responsive to building the affinity score distribution, a plurality of clusters of affinity scores for each of the offers using the corresponding affinity score distribution;

receive a content request from a client device of a target user;

receive clickstream data for the target user;

compute a target user affinity score to an item of a selected offer based on the clickstream data of the target user;

identify an identified cluster that the target user affinity score belongs to from among the plurality of clusters of affinity scores for the selected offer, wherein, to identify the identified cluster, the system:

executes, for each offer, an expectation-maximization (EM) algorithm to fit a Gaussian Mixture Model (GMM) to a score distribution; and

selects the GMM with a parameter that maximizes a Bayesian information criterion (BIC) metric; and

automatically transmit, responsive to receiving the content request, offer content corresponding to the selected offer to the client device; and

the client device configured to selectively display the offer content corresponding to the selected offer based on the identified cluster of affinity scores from the plurality of clusters of affinity scores, wherein the identified cluster of affinity scores corresponds to the target user affinity score of the target user of the client device.

4. The system of claim 3 , the memory further storing instructions that, when executed by the one or more computer processors, cause the system to:

determine the selected offer including the item;

retrieve the clickstream data for the target user associated with the content request;

retrieve, responsive to identifying the identified cluster, a beta distribution corresponding to a cluster ID of the identified cluster from a cluster ID map, wherein the cluster ID map maps each cluster ID to a corresponding beta distribution; and

generate, responsive to retrieving the beta distribution, a response estimate using the beta distribution, wherein the selected offer is selectively displayed based on the response estimate exceeding a presentation threshold.

5. The system of claim 4 , the memory further storing instructions that, when executed by the one or more computer processors, cause the system to:

determine to present the selected offer to the target user based on the response estimate.

6. The system of claim 3 , wherein to compute affinity scores, the system:

determines a set of user and offer features; and

executes a predictor model using the set of user and offer features.

7. The system of claim 4 , wherein to compute the target user affinity score, the system:

computes a target user item-to-item similarity matrix using a plurality of item-to-item similarity scores based on a plurality of item ratings by the target user;

extracts, responsive to computing the target user similarity matrix, similar items with similar scores from the target user item-to-item matrix to form a similarity score to the item for each item; and

combines, responsive to extracting the similar items, similarity scores to create the target user affinity score.

8. A method for multi-modal determination of an offer executable by a computing system including one or more processors and one or more memories, the method comprising:

receiving a set of offers;

computing a plurality of affinity scores measuring affinities of a plurality of users to items included in the offers, wherein computing the plurality of affinity scores comprises:

computing an item-to-item similarity matrix using a plurality of item-to-item similarity scores based on a plurality of item ratings by a user;

extracting, responsive to computing the item-to-item similarity matrix, similar items with similar scores from the item-to-item matrix to form a similarity score to the item for each item; and

combining, responsive to extracting the similar items, similarity scores for the user to create each user affinity score in the plurality of affinity scores;

building, responsive to computing the plurality of affinity scores, an affinity score distribution for each of the offers using the plurality of affinity scores for the plurality of users, wherein the affinity score distribution groups counts of the plurality of users segregated by affinity score to infer a continuous score distribution;

identifying, responsive to building the affinity score distribution, a plurality of clusters of affinity scores for each of the offers using the corresponding affinity score distribution;

receiving a content request from a client device of a target user;

receiving clickstream data for the target user;

computing a target user affinity score to an item of a selected offer based on the clickstream data of the target user;

identifying an identified cluster that the target user affinity score belongs to from among the plurality of clusters of affinity scores for the selected offer, wherein identifying the identified cluster comprises:

executing, for each offer, an expectation-maximization (EM) algorithm to fit a Gaussian Mixture Model (GMM) to a score distribution; and

selecting the GMM with a parameter that maximizes a Bayesian information criterion (BIC) metric; and

automatically transmitting, responsive to receiving the content request, offer content corresponding to the selected offer to the client device; and

selectively displaying, on the client device, the offer content corresponding to the selected offer based on the identified cluster of affinity scores corresponding to the target user affinity score of the target user of the client device.

9. The method of claim 8 , further comprising:

determining the selected offer including the item;

retrieving the clickstream data for the target user associated with the content request;

retrieving, responsive to identifying the identified cluster, a beta distribution corresponding to a cluster ID of the identified cluster from a cluster ID map, wherein the cluster ID map maps each cluster ID to a corresponding beta distribution; and

generating, responsive to retrieving the beta distribution, a response estimate using the beta distribution, wherein the selected offer is selectively displayed based on the response estimate exceeding a presentation threshold.

10. The method of claim 9 , further comprising:

determining to present the selected offer to the target user based on the response estimate.

11. The method of claim 8 , wherein computing affinity scores comprises:

determining a set of user and offer features; and

executing a predictor model using the set of user and offer features.

12. The method of claim 9 , wherein computing the target user affinity score comprises:

computing a target user item-to-item similarity matrix using a plurality of item-to-item similarity scores based on a plurality of item ratings by the user;

extracting, responsive to computing the target user similarity matrix, similar items with similar scores from the target user item-to-item matrix to form a similarity score to the item for each item; and

combining, responsive to extracting the similar items, similarity scores to create the user affinity score.

13. The method of claim 8 , wherein identifying clusters comprises:

executing, for each offer, an expectation-maximization (EM) algorithm to fit a Gaussian Mixture Model (GMM) to a score distribution; and

selecting the GMM with a parameter that maximizes the Bayesian information criterion (BIC) metric.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jun 20, 2024
From: COMPUTERSHARE TRUST COMPANY, NATIONAL ASSOCIATION (AS SUCCESSOR-IN-INTEREST TO WELLS FARGO BANK, NATIONAL ASSOCIATION)
To: STAPLES, INC.; STAPLES BRANDS INC.
Reel/Frame 067783/0844 →
SECURITY INTEREST Recorded Jun 12, 2024
From: STAPLES, INC.
To: COMPUTERSHARE TRUST COMPANY, NATIONAL ASSOCIATION, AS NOTES AGENT
Reel/Frame 067711/0239 →
SECURITY INTEREST Recorded Jun 11, 2024
From: STAPLES, INC.
To: UBS AG, STAMFORD BRANCH, AS TERM LOAN AGENT
Reel/Frame 067687/0558 →
SECURITY INTEREST Recorded Jun 11, 2024
From: STAPLES, INC.
To: COMPUTERSHARE TRUST COMPANY, NATIONAL ASSOCIATION, AS NOTES AGENT
Reel/Frame 067697/0639 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RECORDED AT RF 044152/0130 Recorded Jun 10, 2024
From: UBS AG, STAMFORD BRANCH, AS TERM LOAN AGENT
To: STAPLES, INC.; STAPLES BRANDS INC.
Reel/Frame 067682/0025 →
SECURITY INTEREST Recorded Apr 29, 2019
From: STAPLES, INC.; STAPLES BRANDS INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES AGENT
Reel/Frame 049025/0369 →
SECURITY INTEREST Recorded Sep 15, 2017
From: STAPLES, INC.; STAPLES BRANDS INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043971/0462 →
SECURITY INTEREST Recorded Sep 13, 2017
From: STAPLES, INC.; STAPLES BRANDS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 044152/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2016
From: WEE, TIMOTHY; KUMARA, KARTHIK; APPLEGATE, RYAN; HOSSEINI, MAJID
To: STAPLES, INC.
Reel/Frame 037468/0354 →
Continuity (2)
Provisional Application 62210931 · Aug 27, 2015
Related Publication 20170061481A1 · Mar 2, 2017