IP Library Granted Patent US 12,061,634
Granted Patent B2
US 12,061,634 · App. 17/041,247 · Granted Aug 13, 2024

Methods and systems for performing context maintenance on search queries in a conversational search environment

Inventors: Manik Malhotra (Durham, NC); Prabhat Gupta (Uttar Pradesh, IN); Sahil Malik (Bangalore, IN)
Assignee: Rovi Guides, Inc.
G06F16/3329G06F16/3334G06F16/3344G06F40/284G06N3/02
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 12,061,634
App. No.
17/041,247
Granted
Aug 13, 2024
Kind
B2
Abstract

Systems and methods are described herein that maintain a context in a conversational search systems. An artificial neural network accepts current and previous queries as input and outputs a value indicating whether the previous query and the current query should undergo a merge operation or a replacement operation to maintain an intent of the user. To perform a merge operation, the previous query and the current query are combined to form a search query. To perform a replace operation, a portion of the previous query is replaced with a portion of the current query.

Claims (80)

1. A method for determining whether a portion of a current query should be merged or replaced with a portion of a previous query, the method comprising:

generating a neural network that takes a previous query and a current query as inputs and outputs a result indicating a merge or replace operation, wherein the neural network comprises a first set of nodes associated with an input layer of the neural network and a second set of nodes associated with an artificial layer of the neural network;

training the neural network, based on a training data set, to determine weights associated with connections between the first set of nodes and the second set of nodes in the neural network, wherein training the neural network comprises:

retrieving the training data set from memory, wherein the training data set comprises a model previous query, a model current query and a flag indicating whether the model previous query and model current query should be merged or replaced;

mapping the model previous query and the model current query to nodes of the first set of nodes;

computing, based on the weights between the first set of nodes in the input layer and the second set of nodes in the artificial layer, respective values for each node of the second set of nodes in the artificial layer;

computing, based on the respective values for each node of the second set of nodes in the artificial layer, a model result indicating a merge or replace operation for the model previous query and the model current query;

comparing the model result to the flag to determine whether the flag matches the model result;

in response to determining that the flag does not match the model result, updating the weights associated with the nodes of the neural network based on a first error value; and

in response to determining that the flag matches the model result, updating the weights associated with the nodes of the neural network based on a second error value, wherein the second error value is smaller than the first error value;

receiving, from a user, a first query and a second query, wherein the first query is received prior to receiving the second query;

generating a first set of tokens based on terms in the first query and a second set of tokens based on terms in the second query;

mapping the first set of tokens and the second set of tokens to the first set of nodes;

determining, using the weights associated with the connections between the first set of nodes and the second set of nodes, a value indicating whether the first query and the second query are associated with a result indicating a merge or replace operation;

in response to determining, based on the value, that the first query and the second query are associated with a result indicating a merge operation, merging the first query and the second query; and

in response to determining, based on the value, that the first query and the second query are associated with a result indicating a replace operation:

selecting a first portion of the first query and a second portion of the second query that correspond to each other; and

replacing the first portion of the first query with the second portion of the second query.

2. The method of claim 1 , wherein the first query comprises a sequence of characters, and wherein generating the first set of tokens based on terms in the first query comprises:

receiving a set of delimiting characters from memory;

comparing the set of delimiting characters to the sequence of characters in the first query to identify a first position of a first character in the first query and a second position of a second character in the first query each matching a delimiting character of the set of delimiting characters; and

generating a token of the first query comprising characters of the sequence of characters between the first position and the second position.

3. The method of claim 2 , further comprising:

comparing the first token to a set of filler words to determine whether the token matches a filler word of the set of filler words;

in response to determining that the token matches the filler word of the set of filler words, excluding the token from the first set of tokens; and

in response to determining that the token does not match a filler word of the set of filler words, adding the token to the first set of tokens.

4. The method of claim 1 , wherein each node of the first set of nodes is associated with a token, and wherein mapping the first set of tokens to the first set of nodes comprises:

matching a first token of the first set of tokens to a token associated with a first node of the first set of nodes of the input layer; and

in response to the matching, updating a first value in the neural network associated with the first node to indicate that a token associated with the first node matches the first token.

5. The method of claim 4 , wherein determining the value indicating whether the first query and the second query are associated with a result indicating a merge or replace operation comprises:

retrieving the weights associated with the connections between the first set of nodes and the second set of nodes;

determining a first set of values each associated with a respective node of the second set of nodes based on multiplying a second set of values each associated with a respective node of the first set of nodes by the weights associated with the connections between the first set of nodes and the second set of nodes; and

wherein determining the value indicating whether the first query and the second query are associated with the result indication the merge or the replace operation comprises multiplying the second set of values by the weights associated with the connections between the second set of nodes and the node associated with the value and adding the resulting values.

6. The method of claim 1 , wherein the first query and the second query are received via a voice input device, further comprising, converting the first query to a first string of characters based on a speech-to-text conversion and converting the second query to a second string of characters based on the speech-to-text conversion.

7. The method of claim 1 , wherein the first query is received, from the user, at a first time and wherein the second query is received, from the user, at a second time, and wherein mapping the first set of tokens and the second set of tokens to the first set of nodes comprises determining that less than a threshold maximum amount of time has elapsed between the first time and the second time.

8. The method of claim 1 , wherein selecting a first portion of the first query and a second portion of the second query that correspond to each other further comprises:

identifying a first subset of tokens of the first set of tokens corresponding to the first portion of the first query;

determining a first type associated with the first set of tokens;

identifying a second subset of tokens of the second set of tokens corresponding to the second portion of the first query, wherein a second type associated with the second set of tokens matches the first type.

9. The method of claim 1 , further comprising generating for display search results corresponding to one of (1) a first search query generated based on replacing the first portion of the first query with the second portion of the second query and (2) a second search query generated based on merging the first query and the second query.

10. A system for determining whether a portion of a current query should be merged or replaced with a portion of a previous query, the system comprising control circuitry configured to:

generate a neural network that takes a previous query and a current query as inputs and outputs a result indicating a merge or replace operation, wherein the neural network comprises a first set of nodes associated with an input layer of the neural network and a second set of nodes associated with an artificial layer of the neural network;

train the neural network, based on a training data set, to determine weights associated with connections between the first set of nodes and the second set of nodes in the neural network, based on:

retrieving the training data set from memory, wherein the training data set comprises a model previous query, a model current query and a flag indicating whether the model previous query and model current query should be merged or replaced;

mapping the model previous query and the model current query to nodes of the first set of nodes;

computing, based on the weights between the first set of nodes in the input layer and the second set of nodes in the artificial layer, respective values for each node of the second set of nodes in the artificial layer;

computing, based on the respective values for each node of the second set of nodes in the artificial layer, a model result indicating a merge or replace operation for the model previous query and the model current query;

comparing the model result to the flag to determine whether the flag matches the model result;

in response to determining that the flag does not match the model result, updating the weights associated with the nodes of the neural network based on a first error value; and

in response to determining that the flag matches the model result, updating the weights associated with the nodes of the neural network based on a second error value, wherein the second error value is smaller than the first error value;

receive, from a user, a first query and a second query, wherein the first query is received prior to receiving the second query;

generate a first set of tokens based on terms in the first query and a second set of tokens based on terms in the second query;

map the first set of tokens and the second set of tokens to the first set of nodes;

determine, using the weights associated with the connections between the first set of nodes and the second set of nodes, a value indicating whether the first query and the second query are associated with a result indicating a merge or replace operation;

in response to determining, based on the value, that the first query and the second query are associated with a result indicating a merge operation, merge the first query and the second query; and

in response to determining, based on the value, that the first query and the second query are associated with a result indicating a replace operation:

select a first portion of the first query and a second portion of the second query that correspond to each other; and

replace the first portion of the first query with the second portion of the second query.

11. The system of claim 10 , wherein the first query comprises a sequence of characters, and wherein the control circuitry is further configured, when generating the first set of tokens based on terms in the first query, to:

receive a set of delimiting characters from memory;

compare the set of delimiting characters to the sequence of characters in the first query to identify a first position of a first character in the first query and a second position of a second character in the first query each matching a delimiting character of the set of delimiting characters; and

generate a token of the first query comprising characters of the sequence of characters between the first position and the second position.

12. The system of claim 11 , wherein the control circuitry is further configured to:

compare the first token to a set of filler words to determine whether the token matches a filler word of the set of filler words;

in response to determining that the token matches the filler word of the set of filler words, exclude the token from the first set of tokens; and

in response to determining that the token does not match a filler word of the set of filler words, add the token to the first set of tokens.

13. The system of claim 10 , wherein each node of the first set of nodes is associated with a token, and wherein the control circuitry is further configured, when mapping the first set of tokens to the first set of nodes, to:

match a first token of the first set of tokens to a token associated with a first node of the first set of nodes of the input layer; and

in response to the matching, update a first value in the neural network associated with the first node to indicate that a token associated with the first node matches the first token.

14. The system of claim 13 , wherein the control circuitry is further configured, when determining the value indicating whether the first query and the second query are associated with a result indicating a merge or replace operation, to:

retrieve the weights associated with the connections between the first set of nodes and the second set of nodes;

determine first set of values each associated with a respective node of the second set of nodes based on multiplying a second set of values each associated with a respective node of the first set of nodes by the weights associated with the connections between the first set of nodes and the second set of nodes; and

wherein the control circuitry is further configured, when determining the value indicating whether the first query and the second query are associated with the result indication the merge or the replace operation, to multiply the second set of values by the weights associated with the connections between the second set of nodes and the node associated with the value and adding the resulting values.

15. The system of claim 10 , wherein the first query and the second query are received by the control circuitry via a voice input device, and wherein the control circuitry is further configured to convert the first query to a first string of characters based on a speech-to-text conversion and converting the second query to a second string of characters based on the speech-to-text conversion.

16. The system of claim 10 , wherein the first query is received, from the user, at a first time and wherein the second query is received, from the user, at a second time, and wherein the control circuitry is further configured, when mapping the first set of tokens and the second set of tokens to the first set of nodes, to determine that less than a threshold maximum amount of time has elapsed between the first time and the second time.

17. The system of claim 10 , wherein the control circuitry is further configured, when selecting a first portion of the first query and a second portion of the second query that correspond to each other, to:

identify a first subset of tokens of the first set of tokens corresponding to the first portion of the first query;

determine a first type associated with the first set of tokens;

identify a second subset of tokens of the second set of tokens corresponding to the second portion of the first query, wherein a second type associated with the second set of tokens matches the first type.

18. The system of claim 10 , wherein the control circuitry is further configured to generate for display search results corresponding to one of (1) a first search query generated based on replacing the first portion of the first query with the second portion of the second query and (2) a second search query generated based on merging the first query and the second query.

Assignments (3)
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069106/0129 →
SECURITY INTEREST Recorded May 3, 2023
From: ADEIA GUIDES INC.; ADEIA IMAGING LLC; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA SOLUTIONS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063529/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2020
From: MALHOTRA, MANIK; GUPTA, PRABHAT; MALIK, SAHIL
To: ROVI GUIDES, INC.
Reel/Frame 053877/0605 →
Continuity (1)
Related Publication 20210103606A1 · Apr 8, 2021