IP Library Granted Patent US 12,067,006
Granted Patent B2
US 12,067,006 · App. 17/350,294 · Granted Aug 20, 2024

Machine learning system for digital assistants

Inventors: Pranav Singh (Sunnyvale, CA); Yilun Zhang (Toronto, CA); Keyvan Mohajer (Los Gatos, CA); Mohammadreza Fazeli (Toronto, CA)
Assignee: SoundHound AI IP, LLC.
G06F16/2425G06N3/045G06N3/088
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,067,006
App. No.
17/350,294
Granted
Aug 20, 2024
Kind
B2
Abstract

A machine learning system for a digital assistant is described, together with a method of training such a system. The machine learning system is based on an encoder-decoder sequence-to-sequence neural network architecture trained to map input sequence data to output sequence data, where the input sequence data relates to an initial query and the output sequence data represents canonical data representation for the query. The method of training involves generating a training dataset for the machine learning system. The method involves clustering vector representations of the query data samples to generate canonical-query original-query pairs in training the machine learning system.

Claims (78)

1. A method of training a machine learning system for use with a digital assistant, the method comprising:

obtaining training data comprising query data samples;

obtaining vector representations of the query data samples;

clustering the vector representations;

determining canonical queries and corresponding query groups based on the clustered vector representations, wherein corresponding query groups correspond to determined canonical queries;

performing named entity recognition on the query data samples and canonical queries;

replacing a text data for tagged named entities with a named entity type tag;

generating paired data samples based on determined canonical queries and selections from the corresponding query groups; and

training an encoder-decoder neural network architecture using the paired data samples, wherein the selections from the corresponding query groups are supplied as input sequence data and the determined canonical queries are supplied as output sequence data,

wherein the digital assistant is configured to map data representing an initial query to data representing a revised query associated with one of the canonical queries, via the encoder-decoder neural network architecture, the data representing the revised query being further processed to provide a response to the initial query,

wherein generating paired data samples comprises filtering generated paired data samples, and

wherein filtering comprises:

removing paired data samples with a canonical query whose named entity tags do not match the named entity tags in the corresponding selection from the query group.

2. The method of claim 1 ,

wherein obtaining training data comprises obtaining pairs of text data representing queries and responses, and

wherein obtaining vector representations of the query data samples comprises converting the pairs of text data to corresponding vector representations.

3. The method of claim 2 , wherein a first portion of the text data represents an output of speech-to-text processing that is performed on audio data for a voice query and a second portion of the text data comprises data for use in providing the response to the voice query.

4. The method of claim 1 ,

wherein a given vector representation comprises at least a response vector representation, the response vector representation being a vector representation of the data representing the response to query, the response vector representation being paired with data representing a corresponding query,

wherein clustering the vector representations comprises:

clustering the response representations based on distances between the response vector representations within vector space, and

wherein a canonical query is determined for a given cluster within the clustered vector representations based on a frequency of the query data paired with response vector representations within the given cluster.

5. The method of claim 4 , wherein clustering the vector representations comprises:

applying a hierarchical clustering method to iteratively combine separate clusters.

6. The method of any one of claim 1 , wherein obtaining vector representations comprises:

obtaining text representations of at least the responses to the queries;

generating embedding vectors for the text representations; and

projecting the embedding vectors to a lower dimensionality vector space to output the vector representations.

7. The method of claim 6 , wherein generating embedding vectors for the text representations comprises:

tokenizing the text representations; and

applying a transformer neural network architecture to the tokenized text representations to generate the embedding vectors.

8. The method of claim 6 , wherein projecting the embedding vectors to a lower dimensionality vector space comprises selecting a subset of principal components, the principal components being determined following principal component analysis of query data samples.

9. The method of claim 1 , wherein clustering the vector representations comprises:

performing a first stage of clustering based on vector representations of responses to queries; and

performing a second stage of clustering based on vector representations of the queries preceding the responses.

10. The method of claim 1 , comprising:

filtering the clustered vector representations prior to generating the paired data samples.

11. The method of claim 10 , wherein said filtering comprises, for a given cluster:

determining a centroid for the given cluster in the clustered vector representations; and

unassigning vector representations of queries for the given cluster that are more than a predefined distance from the centroid.

12. The method of claim 10 , wherein said filtering comprises, for a given cluster:

obtaining a size of the given cluster; and

unassigning vector representations of queries for the given cluster responsive to the size being below a predefined threshold.

13. The method of claim 12 , wherein said filtering further comprises:

reassigning unassigned vector representations of queries to a closest cluster.

14. The method of claim 1 , comprising optimizing one or more of the following metrics:

one or more clustering distance thresholds;

one or more cluster size thresholds; and

one or more frequency thresholds for the selection of canonical queries.

15. A non-transitory computer-readable storage medium storing instructions which, when executed by at least one processor, cause the at least one processor to:

obtain training data comprising query data samples;

obtain vector representations of the query data samples;

cluster the vector representations;

determine canonical queries and corresponding query groups based on the clustered vector representations, wherein corresponding query groups correspond to determined canonical queries;

perform named entity recognition on the query data samples and canonical queries;

replace a text data for tagged named entities with a named entity type tag;

generate paired data samples based on determined canonical queries and selections from the corresponding query groups; and

train an encoder-decoder neural network architecture using the paired data samples, wherein the selections from the corresponding query groups are supplied as input sequence data and the determined canonical queries are supplied as output sequence data,

wherein a query interface is configured to map data representing an initial query to data representing a revised query associated with one of the canonical queries, via the encoder-decoder neural network architecture, the data representing the revised query being further processed to provide a response to the initial query,

wherein generating paired data samples comprises filtering generated paired data samples, and

wherein filtering comprises:

removing paired data samples with a canonical query whose named entity tags do not match the named entity tags in the corresponding selection from the query group.

16. The non-transitory computer-readable storage medium of claim 15 , wherein obtaining training data comprises obtaining pairs of text data representing queries and responses, and wherein obtaining vector representations of the query data samples comprises converting the pairs of text data to corresponding vector representations.

17. The non-transitory computer-readable storage medium of claim 15 , wherein obtaining vector representations of the query data samples comprises:

obtaining text representations of at least the responses to the queries;

generating embedding vectors for the text representations; and

projecting the embedding vectors to a lower dimensionality vector space to output the vector representations.

18. The non-transitory computer-readable storage medium of claim 15 , wherein clustering the vector representations comprises:

clustering the response representations based on distances between the response vector representations within vector space.

19. The non-transitory computer-readable storage medium of claim 15 , wherein clustering the vector representations comprises:

applying a hierarchical clustering method to iteratively combine separate clusters.

20. The non-transitory computer-readable storage medium of claim 15 , wherein clustering the vector representations comprises:

performing a first stage of clustering based on vector representations of responses to queries; and

performing a second stage of clustering based on vector representations of the queries preceding the responses.

21. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions when executed further cause the computing system to:

filter the clustered vector representations prior to generating the paired data samples, wherein said filtering comprises, for a given cluster:

determining a centroid for the given cluster in the clustered vector representations; and

unassigning vector representations of queries for the given cluster that are more than a predefined distance from the centroid.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 3, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.
Reel/Frame 069480/0312 →
SECURITY INTEREST Recorded Aug 9, 2024
From: SOUNDHOUND, INC.
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 068526/0413 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2024
From: ACP POST OAK CREDIT II LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
Reel/Frame 067698/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2023
From: SOUNDHOUND AI IP HOLDING, LLC
To: SOUNDHOUND AI IP, LLC
Reel/Frame 064205/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2023
From: SOUNDHOUND, INC.
To: SOUNDHOUND AI IP HOLDING, LLC
Reel/Frame 064083/0484 →
SECURITY INTEREST Recorded Apr 17, 2023
From: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
To: ACP POST OAK CREDIT II LLC
Reel/Frame 063349/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2021
From: SINGH, PRANAV; ZHANG, YILUN; MOHAJER, KEYVAN; FAZELI, MOHAMMADREZA
To: SOUNDHOUND, INC.
Reel/Frame 056579/0793 →