# US 12,769,948 B2 · Graph-directed key phrase recommendation based on item similarity

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

- Number: US 12,769,948 B2
- Document ID: US12769948B2
- Status: Granted
- Kind: B2
- Application number: 18/987,594
- Filed: 2024-12-19
- Published: 2025-10-16
- Granted: 2026-10-20
- Earliest claimed: 2024-04-12
- Assignees: eBay Inc.
- Applicants: eBay Inc.
- Inventors: Soumik Dey; Hansi Wu; Binbin Li; Ashirbad Mishra; Jinyu Zhao; Kamesh Madduri; Julie Cheng
- Web page: https://patentgrep.com/patent/US12769948B2

## CPC

- G06F 40/289: Phrasal analysis, e.g. finite state techniques or chunking
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 40/284: Lexical analysis, e.g. tokenisation or collocates
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A dataset is received that includes items listed via a listing platform, titles of the items, and key phrases. Each of the items are paired with one or more of the key phrases in the dataset. A data structure is constructed that maps tokens of the titles to the items associated with the titles, and maps the items to the key phrases that are paired with the items in the dataset. A seed title of a seed item is received as listed via the listing platform, and the seed title includes seed tokens. One or more similar items to the seed item are identified based on occurrence counts of the one or more seed tokens that map to the one or more similar items in the data structure. At least one recommended key phrase is output that maps to the one or more similar items in the data structure.

## Claims

### Claim 1

A method implemented by at least one computing device, the method comprising:
receiving a dataset that comprises items listed via a listing platform, titles of the items, and key phrases, wherein each of the items are paired with one or more of the key phrases;
tokenizing the titles into title tokens;
generating a tripartite graph by:
connecting, via a first set of edges of the tripartite graph, the title tokens to the items, a respective title token being connected to an item if a title of the item includes the respective title token; and
connecting, via a second set of edges of the tripartite graph, the items to the key phrases, a respective key phrase being connected to an item if the respective key phrase is paired with the item in the dataset;
storing the tripartite graph in memory in compressed sparse row format;
receiving a seed title of a seed item listed via the listing platform, the seed title including one or more seed tokens;
traversing the tripartite graph in the memory to identify matching tokens of the title tokens that match the one or more seed tokens and assign occurrence counts to the items, an occurrence count of a respective item representing a number of the matching tokens that are connected to the respective item via the first set of edges;
identifying one or more similar items of the items having the occurrence counts that meet a threshold; and
outputting at least one key phrase of the key phrases that maps to the one or more similar items via the second set of edges in the tripartite graph.

### Claim 2 (depends on 1)

The method of claim 1, further comprising pairing an item with a key phrase in the dataset based on historical engagement with the item in response to the key phrase being searched via the listing platform.

### Claim 3 (depends on 1)

The method of claim 1, further comprising generating clusters of the key phrases, each of the clusters including the key phrases mapped via the items to a same occurrence count of the one or more seed tokens in the tripartite graph.

### Claim 4 (depends on 3)

The method of claim 3, further comprising associating a key phrase with a highest occurrence count of the one or more seed tokens mapped to a single item to which the key phrase is mapped in the tripartite graph.

### Claim 5 (depends on 3)

The method of claim 3, wherein identifying the one or more similar items comprises filtering the clusters having the occurrence counts that are below an occurrence threshold, resulting in one or more retained clusters that include the key phrases that map to the one or more similar items in the tripartite graph.

### Claim 6 (depends on 5)

The method of claim 5, further comprising setting the occurrence threshold at a value at which the filtering produces a number of the key phrases in the one or more retained clusters that exceeds a retention threshold.

### Claim 7 (depends on 1)

The method of claim 1, further comprising ranking candidate key phrases of the key phrases that map to the one or more similar items in the tripartite graph, the at least one key phrase representing a top-ranked subset of the candidate key phrases.

### Claim 8 (depends on 7)

The method of claim 7, wherein the candidate key phrases are ranked in descending order of the occurrence counts associated with respective candidate key phrases.

### Claim 9 (depends on 8)

The method of claim 8, wherein the candidate key phrases associated with a same value of the occurrence counts are ranked in descending order of percentages of phrase tokens in the respective candidate key phrases that match the one or more seed tokens.

### Claim 10 (depends on 9)

The method of claim 9, wherein the candidate key phrases having same values of the occurrence counts and the percentages are ranked in descending order of quantities of the one or more similar items to which the respective candidate key phrases are mapped in the tripartite graph.

### Claim 11

A system comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the system to:
receive a dataset that comprises items listed via a listing platform, titles of the items, and key phrases, wherein each of the items are paired with one or more of the key phrases;
tokenize the titles into title tokens;
generate a tripartite graph by:
connecting, via a first set of edges of the tripartite graph, the title tokens to the items, a respective title token being connected to an item if a title of the item includes the respective title token; and
connecting, via a second set of edges of the tripartite graph, the items to the key phrases, a respective key phrase being connected to an item if the respective key phrase is paired with the item in the dataset;
store the tripartite graph in the memory in compressed sparse row format;
receive a seed title of a seed item listed via the listing platform, the seed title including one or more seed tokens;
traverse the tripartite graph in the memory to identify matching tokens of the title tokens that match the one or more seed tokens and assign occurrence counts to the items, an occurrence count of a respective item representing a number of the matching tokens that are connected to the respective item via the first set of edges;
identify one or more similar items of the items having the occurrence counts meet a threshold; and
output at least one key phrase of the key phrases connected to the one or more similar items via the second set of edges in the tripartite graph.

### Claim 12 (depends on 11)

The system of claim 11, wherein the instructions further cause the system to pair an item with a key phrase in the dataset based on historical engagement with the item in response to the key phrase being searched via the listing platform.

### Claim 13 (depends on 11)

The system of claim 11, wherein the instructions further cause the system to generate clusters of the key phrases, each of the clusters including the key phrases connected via the items to a same occurrence count of the one or more seed tokens in the tripartite graph.

### Claim 14 (depends on 13)

The system of claim 13, wherein the instructions further cause the system to associate a key phrase with a highest occurrence count of the one or more seed tokens connected to a single item to which the key phrase is connected in the tripartite graph.

### Claim 15 (depends on 13)

The system of claim 13, wherein the instructions further cause the system to filter the clusters having the occurrence counts that are below a threshold, resulting in one or more retained clusters that include the key phrases connected to the one or more similar items in the tripartite graph.

### Claim 16 (depends on 11)

The system of claim 11, wherein the instructions further cause the system to rank candidate key phrases of the key phrases connected to the one or more similar items in the tripartite graph based on the occurrence counts, percentages of phrase tokens in respective candidate key phrases that match the one or more seed tokens, and quantities of the one or more similar items to which the respective candidate key phrases are mapped in the tripartite graph, wherein the at least one key phrase represents a top-ranked subset of the candidate key phrases.

### Claim 17

A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a dataset that comprises items listed via a listing platform, titles of the items, and key phrases, wherein each of the items are paired with one or more of the key phrases;
tokenizing the titles into title tokens;
generating a tripartite graph by:
connecting, via a first set of edges of the tripartite graph, the title tokens to the items, a respective title token being connected to an item if a title of the item includes the respective title token; and
connecting, via a second set of edges of the tripartite graph, the items to the key phrases, a respective key phrase being connected to an item if the respective key phrase is paired with the item in the dataset;
storing the tripartite graph in memory in compressed sparse row format;
receiving a seed title of a seed item listed via the listing platform, the seed title including one or more seed tokens;
traversing the tripartite graph in the memory to identify matching tokens of the title tokens that match the one or more seed tokens and assign occurrence counts to the items, an occurrence count of a respective item representing a number of the matching tokens that are connected to the respective item via the first set of edges; and
outputting the key phrases as ranked based, in part, on the occurrence counts.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, the operations further comprising pairing an item with a key phrase in the dataset based on historical engagement with the item in response to the key phrase being searched via the listing platform.

### Claim 19 (depends on 1)

The method of claim 1, wherein each unique title token of the title tokens is a vertex in the tripartite graph.

### Claim 20 (depends on 1)

The method of claim 1, further comprising performing the receiving the seed title, the traversing the tripartite graph, the identifying the one or more similar items, and the outputting the at least one key phrase for a plurality of seed items in parallel by processing different seed items on different threads of execution using single instruction, multiple data (SIMD) vectorization.
