# US 11,907,267 B2 · User interface for frequent pattern analysis

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

- Number: US 11,907,267 B2
- Document ID: US11907267B2
- Status: Granted
- Kind: B2
- Application number: 16/119,951
- Filed: 2018-08-31
- Published: 2019-11-28
- Granted: 2024-02-20
- Earliest claimed: 2018-05-25
- Assignees: Salesforce, Inc.
- Applicants: Salesforce, Inc.
- Inventors: Yacov Salomon; Kexin Xie; Wanderley Liu; Nathan Irace Burke; David Yourdon
- Web page: https://patentgrep.com/patent/US11907267B2

## CPC

- G06F 16/287: {Visualization; Browsing}
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 9/451: Execution arrangements for user interfaces
- G06F 16/2465: {Query processing support for facilitating data mining operations in structured databases}
- G06F 16/26: Visual data mining; Browsing structured data
- G06F 16/9038: Presentation of query results
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and devices for displaying a user interface for frequent pattern (FP) analysis are described. In some cases, data stored at a multi-tenant database server may be analyzed to understand various interactions and patterns between data attributes associated with multiple users, or determine one or more attributes associated with a characterization of an individual (e.g., a persona). The multi-tenant database server may effectively cluster and/or perform calculations on attributes of the data to understand user patterns and determine common personas. The results may then be displayed by a user interface at a user device (e.g., associated with the user).

## Claims

### Claim 1

A method for displaying a subset of data attribute pattern groups corresponding to a user-selected persona type in a user interface, comprising:
receiving a set of data attribute patterns associated with user data for a data set comprising a plurality of data objects, wherein the set of data attribute patterns are determined based at least in part on a frequent pattern (FP) analysis of the data set, and wherein the FP analysis comprises:
constructing a condensed data structure that includes an FP tree and a linked list based at least in part on making two passes through the data set, the FP tree comprising a plurality of nodes corresponding to data attributes in the data set, the linked list comprising a plurality of entries that point to nodes of the FP tree;
receiving, in the user interface, a user input signal comprising the user-selected persona type, wherein the user-selected persona type comprises one or more data attributes that define a characterization of a user;
receiving, in the user interface, a frequency value for a frequency threshold and a recentness value for a recentness threshold, the recentness threshold comprising a time period associated with the set of data attribute patterns;
clustering the set of data attribute patterns into a set of data attribute pattern groups based at least in part on the frequency threshold and the recentness threshold from the user input signal and a number of data objects of the plurality of data objects common between data attribute patterns of the data attribute pattern groups;
determining the subset of data attribute pattern groups from the set of data attribute pattern groups for display based at least in part on the user-selected persona type from the user input signal, a level of data object coverage of the subset of data attribute pattern groups, and a level of data attribute coverage of the subset of data attribute pattern groups;
displaying, in the user interface, the determined subset of data attribute pattern groups corresponding to the user-selected persona type from the user input signal; and
updating the displayed subset of data attribute pattern groups based at least in part on receiving, in the user interface, a second user input signal comprising a second user-selected persona type, a second recentness threshold, a second frequency threshold, a second data attribute of interest, or a combination thereof.

### Claim 2 (depends on 1)

The method of claim 1, wherein receiving the user input signal comprises:
receiving a data attribute of interest; and wherein determining the subset of data attribute pattern groups comprises:
determining the subset of data attribute pattern groups based at least in part on the user input signal, wherein each data attribute pattern group of the subset of data attribute pattern groups is associated with the data attribute of interest.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the subset of data attribute pattern groups further comprises:
constructing the subset of data attribute pattern groups according to a Kullback-Leibler (KL) Divergence Algorithm.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
modifying the displayed subset of data attribute pattern groups based at least in part on receiving, in the user interface, a second user input signal comprising a second user-selected persona type, a second recentness threshold, a second frequency threshold, a second data attribute of interest, or a combination thereof.

### Claim 5

A method for displaying a set of input data attributes corresponding to a user-selected resulting data attribute in a user interface, comprising:
receiving a set of data attribute patterns for a data set comprising a plurality of data objects, wherein the set of data attribute patterns are determined based at least in part on a frequent pattern (FP) analysis of the data set, and wherein the FP analysis comprises:
constructing a condensed data structure that includes an FP tree and a linked list based at least in part on making two passes through the data set, the FP tree comprising a plurality of nodes corresponding to data attributes in the data set, the linked list comprising a plurality of entries that point to nodes of the FP tree;
receiving, in the user interface, a user input signal comprising the user-selected resulting data attribute for analysis and a set of parameters for displaying the set of input data attributes corresponding to the user-selected resulting data attribute;
determining, based at least in part on the set of data attribute patterns and the user-selected resulting data attribute from the user input signal, the set of input data attributes corresponding to the user-selected resulting data attribute for analysis;
calculating a probability change corresponding to a difference between a probability that the user-selected resulting data attribute from the user input signal is in a data attribute pattern comprising the set of input data attributes and a probability that the user-selected resulting data attribute from the user input signal is in a data attribute pattern not comprising the set of input data attributes; and
displaying, in the user interface and based at least in part on the set of parameters from the user input signal, a sequence of the determined set of input data attributes corresponding to the user-selected resulting data attribute and the calculated probability change.

### Claim 6 (depends on 5)

The method of claim 5, wherein receiving the user input signal comprises:
receiving the data set, a time range for the data set, an input data attribute to include in the set of input data attributes, or a combination thereof.

### Claim 7 (depends on 5)

The method of claim 5, wherein determining the set of input data attributes corresponding to the user-selected resulting data attribute for analysis comprises:
selecting, from a plurality of sets of input data attributes, the set of input data attributes with a greatest positive probability change value or a greatest negative probability change value.

### Claim 8 (depends on 7)

The method of claim 7, wherein receiving the user input signal comprises:
receiving an indication to select the set of input data attributes with the greatest positive probability change value or the greatest negative probability change value.

### Claim 9 (depends on 5)

The method of claim 5, wherein the set of input data attributes comprises an indication of a specific sequence for the set of input data attributes.

### Claim 10 (depends on 5)

The method of claim 5, wherein a data attribute of a data object of the plurality of data objects comprises a parameter corresponding to a web browser activity of a user, a user device, or a combination thereof.

### Claim 11 (depends on 5)

The method of claim 5, further comprising:
modifying the displayed set of input data attributes and the calculated probability change based at least in part on receiving, in the user interface, a second user input signal comprising a second user-selected resulting data attribute, a second data set, a time range for the second data set, a second input data attribute, or a combination thereof.

### Claim 12

An apparatus for displaying a subset of data attribute pattern groups corresponding to a user-selected persona type in a user interface, comprising:
a processor,
memory in electronic communication with the processor; and
instructions stored in the memory and executable by the processor to cause the apparatus to:
receive a set of data attribute patterns associated with user data for a data set comprising a plurality of data objects, wherein the set of data attribute patterns are determined based at least in part on a frequent pattern (FP) analysis of the data set, and wherein the FP analysis comprises:
constructing a condensed data structure that includes an FP tree and a linked list based at least in part on making two passes through the data set, the FP tree comprising a plurality of nodes corresponding to data attributes in the data set, the linked list comprising a plurality of entries that point to nodes of the FP tree;
receive, in the user interface, a user input signal comprising the user-selected persona type, wherein the user-selected persona type comprises one or more data attributes that define a characterization of a user;
receive, in the user interface, a frequency value for a frequency threshold and a recentness value for a recentness threshold, the recentness threshold comprising a time period associated with the set of data attribute patterns;
cluster the set of data attribute patterns into a set of data attribute pattern groups based at least in part on the frequency threshold and the recentness threshold from the user input signal and a number of data objects of the plurality of data objects common between data attribute patterns of the data attribute pattern groups;
determine the subset of data attribute pattern groups from the set of data attribute pattern groups for display based at least in part on the user-selected persona type from the user input signal, a level of data object coverage of the subset of data attribute pattern groups, and a level of data attribute coverage of the subset of data attribute pattern groups; and
display, in the user interface, the determined subset of data attribute pattern groups corresponding to the user-selected persona type from the user input signal.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the instructions to receive the user input signal are further executable by the processor to cause the apparatus to:
receive a data attribute of interest; and wherein the instructions to determine the subset of data attribute pattern groups are further executable by the processor to cause the apparatus to:
determine the subset of data attribute pattern groups based at least in part on the user input signal, wherein each data attribute pattern group of the subset of data attribute pattern groups is associated with the data attribute of interest.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the instructions to determine the subset of data attribute pattern groups further are executable by the processor to cause the apparatus to:
construct the subset of data attribute pattern groups according to a Kullback-Leibler (KL) Divergence Algorithm.

### Claim 15

An apparatus for displaying a set of input data attributes corresponding to a user-selected resulting data attribute in a user interface, comprising:
a processor:
memory in electronic communication with the processor; and
instructions stored in the memory and executable by the processor to cause the apparatus to:
receive a set of data attribute patterns for a data set comprising a plurality of data objects, wherein the set of data attribute patterns are determined based at least in part on a frequent pattern (FP) analysis of the data set, and wherein the FP analysis comprises:
constructing a condensed data structure that includes an FP tree and a linked list based at least in part on making two passes through the data set, the FP tree comprising a plurality of nodes corresponding to data attributes in the data set, the linked list comprising a plurality of entries that point to nodes of the FP tree;
receive, in the user interface, a user input signal comprising the user-selected resulting data attribute for analysis and a set of parameters for displaying the set of input data attributes corresponding to the user-selected resulting data attribute;
determine, based at least in part on the set of data attribute patterns and the user-selected resulting data attribute from the user input signal, the set of input data attributes corresponding to the user-selected resulting data attribute for analysis;
calculate a probability change corresponding to a difference between a probability that the user-selected resulting data attribute from the user input signal is in a data attribute pattern comprising the set of input data attributes and a probability that the user-selected resulting data attribute from the user input signal is in a data attribute pattern not comprising the set of input data attributes; and
display, in the user interface and based at least in part on the set of parameters from the user input signal, a sequence of the determined set of input data attributes corresponding to the user-selected resulting data attribute and the calculated probability change.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the instructions to receive the user input signal are further executable by the processor to cause the apparatus to:
receive the data set, a time range for the data set, an input data attribute to include in the set of input data attributes, or a combination thereof.

### Claim 17 (depends on 15)

The apparatus of claim 15, wherein the instructions to determine the set of input data attributes corresponding to the user-selected resulting data attribute for analysis are executable by the processor to cause the apparatus to:
select, from a plurality of sets of input data attributes, the set of input data attributes with a greatest positive probability change value or a greatest negative probability change value.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the instructions to receive the user input signal are further executable by the processor to cause the apparatus to:
receive an indication to select the set of input data attributes with the greatest positive probability change value or the greatest negative probability change value.

### Claim 19 (depends on 15)

The apparatus of claim 15, wherein the set of input data attributes comprises an indication of a specific sequence for the set of input data attributes.

### Claim 20 (depends on 15)

The apparatus of claim 15, wherein a data attribute of a data object of the plurality of data objects comprises a parameter corresponding to a web browser activity of a user, a user device, or a combination thereof.
