IP Library Granted Patent US 11,082,509
Granted Patent B1
US 11,082,509 · App. 16/807,926 · Granted Aug 3, 2021

Determining session intent

Inventors: Dorna Bandari (San Mateo, CA); Daniel Isaac Lurie (San Francisco, CA); Jurij Leskovec (Stanford, CA); Shuo Xiang (Burlingame, CA); Tien Tran Tu Quynh Nguyen (Redwood City, CA)
Assignee: Pinterest, Inc.
H04L67/22G06F16/313H04L67/306
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 11,082,509
App. No.
16/807,926
Granted
Aug 3, 2021
Kind
B1
Abstract

Described are systems and methods for determining session intent of a user. Different users can use a network-based application in many different ways based on, for example, the user's purpose for using the application, the device on which the user is executing the application, the user themselves, date, time, location, etc. Through the collection of user activities during a user session, the intent of a user session can be determined. Once determined, content provided through the application can be further personalized to correspond to the determined session intent.

Claims (61)

1. A computer-implemented method, comprising:

receiving a plurality of user actions from a plurality of user sessions to form an event log;

removing background actions from the event log;

removing time bound user actions from the event log;

generating a plurality of user sessions from the event log;

aggregating all the user actions included in the plurality of user sessions to generate an aggregation of all user actions;

for each user action included in the aggregation of all user actions, determining a frequency indicator, wherein the frequency indicator includes a number of user sessions in which a respective user action is performed;

comparing the frequency indicator for each user action included in the aggregation of all user actions against a threshold value;

determining that the frequency indicator for a corresponding user action does not exceed the threshold value;

removing the corresponding user action from the aggregation of all user actions to form a corpus of user sessions;

determining a plurality of clusters based on the corpus of user sessions; and

training a classifier to determine user sessions by providing the plurality of clusters as training inputs to train the classifier.

2. The computer-implemented method of claim 1 , further comprising:

prior to determining the plurality of clusters, determining a weight for each user action included in the corpus of user sessions based on a frequency of each respective user action.

3. The computer-implemented method of claim 2 , wherein determining the weight for each user action includes applying a term frequency-inverse document frequency (TF-IDF) weighting process.

4. The computer-implemented method of claim 2 , further comprising:

prior to determining the plurality of clusters, normalizing the weight for each user action.

5. The computer-implemented method of claim 4 , wherein normalizing the weight for each user action includes reducing the weight for user actions that are more frequent.

6. A computing system, comprising:

one or more processors; and

a memory coupled to the one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to at least:

obtain a plurality of user sessions, each of the plurality of user sessions including at least one user action;

aggregate all the user actions included in the plurality of user sessions to generate an aggregation of all user actions;

remove at least one user action from the aggregation of all user actions to form a corpus of user sessions based at least in part on a frequency the at least one user action is included in one or more of the plurality of user sessions;

determine a weight for each user action included in the corpus of user sessions;

based at least in part on the weight for each user action included in the corpus of user sessions, normalize the weight of each user action included in the corpus of user sessions; and

based at least in part on the normalized weight of each user action included in the corpus of user sessions, generate a plurality of clusters from the plurality of user sessions included in the corpus of user sessions.

7. The computing system of claim 6 , wherein each user session of the plurality of user sessions is represented as a feature vector.

8. The computing system of claim 7 , wherein each user session of the plurality of user sessions is normalized to unity.

9. The computing system of claim 6 , wherein the program instructions that when executed by the one or more processors further cause the one or more processors to at least:

characterize each user session of the plurality of user sessions based on at least one dominant user action.

10. The computing system of claim 6 , wherein the program instructions that when executed by the one or more processors further cause the one or more processors to at least:

provide the plurality of clusters as an input to train a classifier to determine user sessions.

11. The computing system of claim 6 , wherein the program instructions that when executed by the one or more processors further cause the one or more processors to at least:

prior to generating the plurality of clusters, reduce a dimension of the plurality of user sessions.

12. The computing system of claim 11 , wherein a reduction of the dimension of the plurality of user sessions includes applying a principal component analysis.

13. The computing system of claim 6 , wherein a generation of the plurality of clusters includes applying a K-Medoids process.

14. The computing system of claim 6 , wherein the program instructions that when executed by the one or more processors further cause the one or more processors to at least:

prior to a generation of the plurality of clusters, determine a number of clusters to generate.

15. The computing system of claim 14 , wherein the number of clusters is based on at least one of:

a percentage of user sessions included in a noise cluster;

a usability of the plurality of clusters;

a Silhouette score; or

a stability of the plurality of clusters.

16. A method, comprising:

receiving an event log that includes a plurality of user actions from a plurality of user sessions;

generating a corpus of user sessions to include the plurality of user sessions;

removing at least one user action from the corpus of user sessions to generate a reduced corpus of user sessions based at least in part on a frequency the at least one user action is included in one or more of the plurality of user sessions;

clustering the plurality of user sessions into a plurality of clusters;

training a classifier by providing the plurality of clusters as an input to the classifier;

determining an error associated with each of the plurality of clusters;

identifying a noise cluster from the plurality of clusters based at least in part on the error associated with each of the plurality of clusters; and

removing the noise cluster from the plurality of clusters.

17. The method of claim 16 , further comprising, prior to clustering the plurality of user sessions into the plurality of clusters:

weighting each user action included in the reduced corpus of user sessions; and

based at least in part on the weighting for each user action, normalizing each user action included in the reduced corpus of user sessions.

18. The method of claim 17 , wherein weighting each user action includes applying a term frequency-inverse document frequency (TF-IDF) weighting process.

19. The method of claim 16 , further comprising, subsequent to training:

receiving a first user action of a first user session;

determining, with the classifier and based at least in part on the first user action, a session intent for the first user session; and

in response to the determined session intent, recommending a content item to be sent for presentation as part of the first user session.

Assignments (2)
SECURITY INTEREST Recorded Apr 3, 2021
From: PINTEREST, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055814/0273 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2020
From: BANDARI, DORNA; LURIE, DANIEL ISAAC; LESKOVEC, JURIJ; XIANG, SHUO; NGUYEN, TIEN TRAN TU QUYNH
To: PINTEREST, INC.
Reel/Frame 051998/0156 →
Continuity (2)
Continuation 15897108 · Feb 14, 2018
Provisional Application 62460684 · Feb 17, 2017
Cited By (1)
US 12,373,323