Sélection de la langue

Search

Sommaire du brevet 3005324 

Énoncé de désistement de responsabilité concernant l'information provenant de tiers

Une partie des informations de ce site Web a été fournie par des sources externes. Le gouvernement du Canada n'assume aucune responsabilité concernant la précision, l'actualité ou la fiabilité des informations fournies par les sources externes. Les utilisateurs qui désirent employer cette information devraient consulter directement la source des informations. Le contenu fourni par les sources externes n'est pas assujetti aux exigences sur les langues officielles, la protection des renseignements personnels et l'accessibilité.

Disponibilité de l'Abrégé et des Revendications

L'apparition de différences dans le texte et l'image des Revendications et de l'Abrégé dépend du moment auquel le document est publié. Les textes des Revendications et de l'Abrégé sont affichés :

  • lorsque la demande peut être examinée par le public;
  • lorsque le brevet est émis (délivrance).
(12) Brevet: (11) CA 3005324
(54) Titre français: SYSTEMES D'ASSISTANCE AUTONOME ACTIVES PAR DIALOGUE PILOTE PAR DONNEES
(54) Titre anglais: DATA-DRIVEN DIALOGUE ENABLED SELF-HELP SYSTEMS
Statut: Accordé et délivré
Données bibliographiques
(51) Classification internationale des brevets (CIB):
  • G10L 15/00 (2013.01)
(72) Inventeurs :
  • LEV-TOV, AMIR (Etats-Unis d'Amérique)
  • TAPUHI, TAMIR (Etats-Unis d'Amérique)
  • LEV, YONI (Etats-Unis d'Amérique)
  • FAIZAKOF, AVRAHAM (Etats-Unis d'Amérique)
  • KONIG, YOCHAI (Etats-Unis d'Amérique)
(73) Titulaires :
  • GENESYS CLOUD SERVICES HOLDINGS II, LLC
(71) Demandeurs :
  • GENESYS CLOUD SERVICES HOLDINGS II, LLC (Etats-Unis d'Amérique)
(74) Agent: SMART & BIGGAR LP
(74) Co-agent:
(45) Délivré: 2021-06-15
(86) Date de dépôt PCT: 2016-10-19
(87) Mise à la disponibilité du public: 2017-04-27
Requête d'examen: 2018-05-14
Licence disponible: S.O.
Cédé au domaine public: S.O.
(25) Langue des documents déposés: Anglais

Traité de coopération en matière de brevets (PCT): Oui
(86) Numéro de la demande PCT: PCT/US2016/057775
(87) Numéro de publication internationale PCT: US2016057775
(85) Entrée nationale: 2018-05-14

(30) Données de priorité de la demande:
Numéro de la demande Pays / territoire Date
14/919,673 (Etats-Unis d'Amérique) 2015-10-21
14/919,675 (Etats-Unis d'Amérique) 2015-10-21

Abrégés

Abrégé français

L'invention concerne un procédé pour configurer un système d'assistance autonome automatisée en fonction des interactions antérieures entre une pluralité de clients et une pluralité d'agents d'un centre de contacts, qui consiste : à reconnaître, au moyen du processeur, une parole dans des interactions antérieures entre les clients et agents afin de générer du texte reconnu, le texte reconnu comprenant une pluralité de phrases, les phrases étant classifiées en une pluralité de grappes ; à extraire, au moyen d'un processeur, une pluralité de séquences de grappes, chacune des séquences de grappes correspondant aux phrases d'une des interactions antérieures : à filtrer, au moyen du processeur, les séquences de grappes basées sur un critère ; à extraire, au moyen du processeur, un arbre de dialogue préliminaire à partir des séquences de grappes ; à invoquer une configuration du système d'assistance autonome automatisée, en fonction de l'arbre de dialogue préliminaire ; et à faire sortir un arbre de dialogue pour configurer le système d'assistance autonome automatisée.


Abrégé anglais

A method for configuring an automated self-help system based on prior interactions between a plurality of customers and a plurality of agents of a contact center includes: recognizing, by a processor, speech in the prior interactions between customers and agents to generate recognized text, the recognized text including a plurality of phrases, the phrases being classified into a plurality of clusters; extracting, by the processor, a plurality of sequences of clusters, each of the sequences of clusters corresponding to the phrases of one of the prior interactions; filtering, by the processor, the sequences of clusters based on a criterion; mining, by the processor, a preliminary dialogue tree from the sequences of clusters; invoking configuration of the automated self-help system based on the preliminary dialogue tree; and outputting a dialogue tree for configuring the automated self-help system.

Revendications

Note : Les revendications sont présentées dans la langue officielle dans laquelle elles ont été soumises.


EMBODIMENTS IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS
CLAIMED ARE DEFINED AS FOLLOWS:
1. A
method for configuring an automated self-help system based on prior
interactions between a plurality of customers and a plurality of agents of a
contact
center, the method comprising:
recognizing, by a processor, speech loaded from a call recording storage
medium in the prior interactions between customers and agents to generate
recognized text, the recognized text comprising a plurality of phrases, the
phrases
being classified into a plurality of clusters, the plurality of clusters
comprising agent
clusters corresponding to agent speech and customer clusters corresponding to
customer speech;
extracting, automatically by the processor, a plurality of sequences of
clusters,
each of the sequences of clusters corresponding to the phrases of one of the
prior
interactions;
filtering, automatically by the processor, the sequences of clusters based on
a
criterion, the criterion comprising at least one of:
success rate;
frequency of use; and
interaction length;
mining, automatically by the processor, a preliminary dialogue tree from the
sequences of clusters, the mining comprising matching prefixes of the
sequences to
generate the preliminary dialogue tree, the preliminary dialogue tree
comprising
alternating layers of agent clusters and customer clusters;
invoking configuration of the automated self-help system based on the
preliminary dialogue tree; and
outputting a dialogue tree, automatically generated based on the preliminary
dialogue tree, for configuring the automated self-help system, the dialogue
tree being
customized for the contact center based on the prior interactions between the
customers and
agents of the contact center,
the automated self-help system being configured to:
Date Recue/Date Received 2020-06-19

present one or more options to a customer in accordance with a current
node in the dialogue tree;
receive an input from a customer;
route the customer to a new node in the dialogue tree in accordance
with the input; and
generate, automatically, a response in accordance with the input and
the new node.
2. The method of claim 1, wherein the mining the preliminary dialogue tree
from the sequences of clusters and a current prefix comprises:
generating sequences of cluster identifiers; and
identifying frequent clusters of the clusters from the sequences of cluster
identifiers.
3. The method of claim 2, wherein the generating the sequences of cluster
identifiers comprises removing consecutive repetitions of clusters in the
sequences of
clusters.
4. The method of claim 2, wherein each of the clusters is associated with
one of a plurality of sides, the plurality of sides comprising a customer side
and an
agent side,
wherein the identifying the frequent clusters of the clusters from the
sequence
of cluster identifiers comprises identifying clusters associated with a side
different
from the side of the current prefix and having support greater than a
threshold level.
5. The method of claim 1, wherein the invoking configuration of the
automated self-help system comprises:
displaying, on a user interface, the preliminary dialogue tree in a user
interface;
41
Date Recue/Date Received 2020-06-19

receiving user input identifying an agent response for a node of the dialogue
tree; and
receiving user input identifying a grammar matching a customer phrase for an
edge of the dialogue tree.
6. The method of claim 5, further comprising displaying a plurality of
suggested agent responses, the plurality of suggested agent responses being
generated by:
detecting, by the processor, a plurality of topics in the prior interactions;
receiving, by the processor, from the user interface, an input phrase;
identifying, by the processor, a cluster matching the input phrase; and
displaying, by the processor, on the user interface, a plurality of phrases
corresponding to the cluster matching the input phrase.
7. The method of claim 5, further comprising displaying a plurality of
suggested customer grammars, the plurality of suggested customer grammars
being
generated by:
detecting, by the processor, a plurality of topics in the prior interactions;
receiving, by the processor, from the user interface, an input phrase;
identifying, by the processor, a cluster matching the input phrase; and
displaying, by the processor, on the user interface, a grammar corresponding
to the phrases of the cluster matching the input phrase.
8. The method of claim 1, wherein the output dialogue tree comprises a
plurality of agent nodes and a plurality of customer edges connecting the
agent
nodes.
9. The method of claim 8, wherein at least one of the agent nodes
comprises a merged plurality of agent clusters.
42
Date Recue/Date Received 2020-06-19

10. A
method for configuring an automated self-help system based on prior
interactions between a plurality of customers and a plurality of agents of a
contact
center, the method comprising:
recognizing, by a processor, speech loaded from a call recording storage
medium in the prior interactions between customers and agents to generate
recognized text, the recognized text comprising a plurality of phrases, the
phrases
being classified into a plurality of clusters;
extracting, automatically by the processor, a plurality of sequences of
clusters,
each of the sequences of clusters corresponding to the phrases of one of the
prior
interactions;
filtering, automatically by the processor, the sequences of clusters based on
a
criterion, the criterion comprising at least one of:
success rate;
frequency of use; and
interaction length;
mining, automatically by the processor, a preliminary dialogue tree from the
sequences of clusters;
invoking configuration of the automated self-help system based on the
preliminary dialogue tree; and
outputting a dialogue tree, automatically generated based on the preliminary
dialogue tree, for configuring the automated self-help system,
wherein the mining the preliminary dialogue tree from the sequences of
clusters
and a current prefix comprises:
generating sequences of cluster identifiers;
identifying frequent clusters of the clusters from the sequences of cluster
identifiers; and
matching prefixes of the sequences to generate the preliminary dialogue
tree, and
43
Date Recue/Date Received 2020-06-19

wherein the matching prefixes of the sequences comprises, based on the
current prefix, a projected database for the current prefix, and an input
tree, for each
cluster in the frequent clusters:
concatenating the current prefix with the cluster to generate an
appended prefix;
building a projected database for the appended prefix;
creating a subtree by recursively repeating the process using the
appended prefix, the projected database for the appended prefix, and the input
tree;
and
extending the input tree by connecting the subtree as a child to a
current parent node corresponding to the current prefix.
11. The method of claim 10, wherein the matching the prefixes begins by:
setting the current prefix to an empty string;
setting the projected database for the current prefix to be the sequences of
cluster identifiers; and
setting the input tree to an empty tree.
12. The method of claim 10, further comprising receiving a selection of a
root node from a user,
wherein the matching the prefixes begins by:
setting the current prefix to a string corresponding to the root node;
setting the projected database for the current prefix to be the sequences of
cluster identifiers; and
setting the input tree to the root node.
13. A system comprising:
a processor; and
a memory, wherein the memory stores instructions that, when executed by the
processor, cause the processor to:
44
Date Recue/Date Received 2020-06-19

recognize speech loaded from a call recording storage medium in a
plurality of prior interactions between a plurality of customers and a
plurality of agents
of a contact center to generate recognized text, the recognized text
comprising a
plurality of phrases, the phrases being classified into a plurality of
clusters, the
plurality of clusters comprising agent clusters corresponding to agent speech
and
customer clusters corresponding to customer speech;
extract, automatically, a plurality of sequences of clusters, each of the
sequences of clusters corresponding to the phrases of one of the prior
interactions;
filter, automatically, the sequences of clusters based on a criterion, the
criterion comprising at least one of:
success rate;
frequency of use; and
interaction length;
mine, automatically, a preliminary dialogue tree from the sequences of
clusters by matching prefixes of the sequences to generate the preliminary
dialogue
tree, the preliminary dialogue tree comprising alternating layers of agent
clusters and
customer clusters;
invoke configuration of an automated self-help system based on the
preliminary dialogue tree; and
outputting a dialogue tree, automatically generated based on the
preliminary dialogue tree, for configuring the automated self-help system, the
dialogue
tree being customized for the contact center based on the prior interactions
between
the customers and agents of the contact center, the automated self-help system
being
configured to:
present one or more options to a customer in accordance with a
current node in the dialogue tree;
receive an input from a customer;
route the customer to a new node in the dialogue tree in
accordance with the input; and
Date Recue/Date Received 2020-06-19

generate, automatically, a response in accordance with the input
and the new node.
14. The system of claim 13, wherein the instructions that cause the
processor to mine the preliminary dialogue tree from the sequences of clusters
and a
current prefix include instructions that, when executed by the processor,
cause the
processor to:
generate sequences of cluster identifiers; and
identify frequent clusters of the clusters from the sequences of cluster
identifiers.
15. The system of claim 14, wherein the instructions that cause the
processor to generate the sequences of cluster identifiers include
instructions that,
when executed by the processor, cause the processor to remove consecutive
repetitions of clusters in the sequences of clusters.
16. The system of claim 14, wherein each of the clusters is associated with
one of a plurality of sides, the plurality of sides comprising a customer side
and an
agent side,
wherein the instructions that cause the processor to identify the frequent
clusters of the clusters from the sequence of cluster identifiers includes
instructions
that, when executed by the processor, cause the processor to identify clusters
associated with a side different from the side of the current prefix and
having support
greater than a threshold level.
17. The system of claim 13, wherein the instructions that cause the
processor to invoke configuration of the automated self-help system comprises
instructions that, when executed by the processor, cause the processor to:
display, on a user interface, the preliminary dialogue tree in a user
interface;
46
Date Recue/Date Received 2020-06-19

receive user input identifying an agent response for a node of the dialogue
tree; and
receive user input identifying a grammar matching a customer phrase for an
edge of the dialogue tree.
18. The system of claim 17, wherein the memory further stores instructions
that, when executed by the processor, cause the processor to display a
plurality of
suggested agent responses, the plurality of suggested agent responses being
generated by:
detecting a plurality of topics in the prior interactions;
receiving from the user interface, an input phrase;
identifying a cluster matching the input phrase; and
displaying on the user interface, a plurality of phrases corresponding to the
cluster matching the input phrase.
19. The system of claim 17, wherein the memory further stores instructions
that, when executed by the processor, cause the processor to display a
plurality of
suggested customer grammars, the plurality of suggested customer grammars
being
generated by:
detecting, by the processor, a plurality of topics in the prior interactions;
receiving, by the processor, from the user interface, an input phrase;
identifying, by the processor, a cluster matching the input phrase; and
displaying, by the processor, on the user interface, a grammar corresponding
to the phrases of the cluster matching the input phrase.
20. The system of claim 13, wherein the output dialogue tree comprises a
plurality of agent nodes and a plurality of customer edges connecting the
agent
nodes.
47
Date Recue/Date Received 2020-06-19

21. The system of claim 20, wherein at least one of the agent nodes
comprises a merged plurality of agent clusters.
22. A system comprising:
a processor; and
a memory, wherein the memory stores instructions that, when executed by the
processor, cause the processor to:
recognize speech loaded from a call recording storage medium in a
plurality of prior interactions between a plurality of customers and a
plurality of agents
of a contact center to generate recognized text, the recognized text
comprising a
plurality of phrases, the phrases being classified into a plurality of
clusters;
extract, automatically, a plurality of sequences of clusters, each of the
sequences of clusters corresponding to the phrases of one of the prior
interactions;
filter, automatically, the sequences of clusters based on a criterion, the
criterion comprising at least one of:
success rate;
frequency of use; and
interaction length;
mine, automatically, a preliminary dialogue tree from the sequences of
clusters;
invoke configuration of an automated self-help system based on the
preliminary dialogue tree; and
output a dialogue tree, automatically generated based on the preliminary
dialogue tree, for configuring the automated self-help system, the dialogue
tree being
customized for the contact center based on the prior interactions between the
customers and agents of the contact center,
wherein the instructions that cause the processor to mine the preliminary
dialogue tree from the sequences of clusters and a current prefix include
instructions
that, when executed by the processor, cause the processor to:
generate sequences of cluster identifiers;
48
Date Recue/Date Received 2020-06-19

identify frequent clusters of the clusters from the sequences of cluster
identifiers; and
match prefixes of the sequences to generate the preliminary dialogue tree,
wherein the instructions that cause the processor to match prefixes of the
sequences includes instructions that, based on the current prefix, a projected
database for the current prefix, and an input tree, for each cluster in the
frequent
clusters, cause the processor to:
concatenate the current prefix with the cluster to generate an appended
prefix;
build a projected database for the appended prefix;
create a subtree by recursively repeating the process using the
appended prefix, the projected database for the appended prefix, and the input
tree;
and
extend the input tree by connecting the subtree as a child to a current
parent node corresponding to the current prefix.
23. The system of claim 22, wherein the instructions that cause the
processor to match prefixes of the sequences includes instructions that, when
executed by the processor, cause the processor to begin matching the prefixes
by:
setting the current prefix to an empty string;
setting the projected database for the current prefix to be the sequences of
cluster identifiers; and
setting the input tree to an empty tree.
24. The system of claim 22, wherein the memory further stores instructions
that cause the processor to receive a selection of a root node from a user,
wherein the instructions that cause the processor to match prefixes of the
sequences includes instructions that, when executed by the processor, cause
the
processor to begin matching the prefixes by:
setting the current prefix to a string corresponding to the root node;
49
Date Recue/Date Received 2020-06-19

setting the projected database for the current prefix to be the sequences of
cluster identifiers; and
setting the input tree to the root node.
25. A method for generating a dialogue tree for an automated self-help
system of a contact center, the method comprising:
recognizing, by a processor, speech in a plurality of recorded interactions
between customers and agents of the contact center to generate recognized
text, the
recognized text comprising a plurality of phrases, the phrases being
classified into a
plurality of clusters, each cluster corresponding to an identifiable concept
within the
recorded interactions comprising a plurality of semantically similar phrases
corresponding to the identifiable concept;
computing, by a processor, a plurality of feature vectors, each feature vector
corresponding to one of the plurality of recorded interactions, each feature
vector
identifying one or more clusters corresponding to phrases found in the
recognized
text of the corresponding one of the recorded interactions;
computing, by the processor, similarities between pairs of the feature vectors
based on a similarity threshold;
grouping, by the processor, similar feature vectors based on the computed
similarities into groups of interactions;
rating, by the processor, feature vectors within each group of interactions
based on one or more criteria, wherein the criteria include at least one of
interaction
time, success rate, and customer satisfaction; and
outputting, by the processor, a dialogue tree in accordance with the rated
feature vectors for configuring the automated self-help system.
26. The method of claim 25, wherein the computing the similarity between a
first feature vector and a second feature vector of the pair of feature
vectors based on
a similarity threshold comprises:
Date Recue/Date Received 2020-06-19

summing the number of clusters appearing in both the first feature vector and
the second feature vector to initialize a similarity metric;
adjusting the similarity metric based on clusters appearing in only one of the
pair of feature vectors; and
normalizing the similarity metric.
27. The method of claim 25, further comprising computing the success rate
by:
identifying, by the processor, clusters corresponding to phrases indicating
successful resolution of an issue associated with the interaction; and
computing, by the processor, the success rate based on the number of the
recorded interactions that include clusters indicating successful resolution
of the
issue.
28. The method of claim 25, further comprising computing a customer
satisfaction rate by:
associating each interaction with ratings from a survey; and
computing the customer satisfaction based on the ratings.
29. The method of claim 25, further comprising identifying a plurality of
customer features associated with the customer associated with each of the
recorded
interactions.
30. The method of claim 29, further comprising:
partitioning the plurality of recorded interactions based on a plurality of
groups
of personalization features;
computing a dialogue tree for each of the groups of personalization features
to
compute a plurality of dialogue trees; and
outputting the plurality of dialogue trees for configuring the automated self-
help
system.
51
Date Recue/Date Received 2020-06-19

31. The method of claim 29, wherein the dialogue tree comprises a plurality
of agent nodes arranged in a plurality of agent layers and a plurality of
customer
nodes arranged in a plurality of customer layers,
wherein at least one of the customer nodes is coupled to a plurality of
successive agent nodes, and
wherein each of a plurality of edges between the at least one of the customer
nodes and the successive agent nodes includes a condition corresponding to a
group
of personalization features.
32. The method of claim 25, further comprising outputting a plurality of
suggestions for a successive node of a tree based on an input prior node and
the
rated feature vectors.
33. A system comprising:
a processor; and
a memory, wherein the memory stores instructions that, when executed by the
processor, cause the processor to:
recognize speech in a plurality of recorded interactions between
customers and agents of a contact center to generate recognized text, the
recognized text comprising a plurality of phrases, the phrases being
classified into a
plurality of clusters, each cluster corresponding to an identifiable concept
within the
recorded interactions comprising a plurality of semantically similar phrases
corresponding to the identifiable concept;
compute a plurality of feature vectors, each feature vector
corresponding to one of the plurality of recorded interactions, each feature
vector
identifying one or more clusters corresponding to phrases found in the
recognized
text of the corresponding one of the recorded interactions;
compute similarities between pairs of the feature vectors based on a
similarity threshold;
52
Date Recue/Date Received 2020-06-19

group similar feature vectors based on the computed similarities into
groups of interactions;
rate feature vectors within each group of interactions based on one or
more criteria, wherein the criteria include at least one of interaction time,
success
rate, and customer satisfaction; and
output a dialogue tree in accordance with the rated feature vectors for
configuring an automated self-help system.
34. The system of claim 33, wherein the instructions that cause the
processor to compute the similarity between a first feature vector and a
second
feature vector of the pair of feature vectors based on a similarity threshold
include
instructions that, when executed by the processor, cause the processor to:
sum the number of clusters appearing in both the first feature vector and the
second feature vector to initialize a similarity metric;
adjust the similarity metric based on clusters appearing in only one of the
pair
of feature vectors; and
normalize the similarity metric.
35. The system of claim 33, wherein the instructions that cause the
processor to compute the success rate include instructions that, when executed
by
the processor, cause the processor to:
identify clusters corresponding to phrases indicating successful resolution of
an issue associated with the interaction; and
compute the success rate based on the number of the recorded interactions
that include clusters indicating successful resolution of the issue.
36. The system of claim 33, wherein the instructions that cause the
processor to compute a customer satisfaction rate include instructions that,
when
executed by the processor, cause the processor to:
53
Date Recue/Date Received 2020-06-19

associate each interaction with ratings from a survey; and
compute the customer satisfaction based on the ratings.
37. The system of claim 33, wherein the memory further stores instructions
that, when executed by the processor, cause the processor to identify a
plurality of
customer features associated with the customer associated with each of the
recorded
interactions.
38. The system of claim 37, wherein the memory further stores instructions
that, when executed by the processor, cause the processor to:
partition the plurality of recorded interactions based on a plurality of
groups of
personalization features;
compute a dialogue tree for each of the groups of personalization features to
compute a plurality of dialogue trees; and
output the plurality of dialogue trees for configuring the automated self-help
system.
39. The system of claim 37, wherein the dialogue tree comprises a plurality
of agent nodes arranged in a plurality of agent layers and a plurality of
customer
nodes arranged in a plurality of customer layers,
wherein at least one of the customer nodes is coupled to a plurality of
successive agent nodes, and
wherein each of a plurality of edges between the at least one of the customer
nodes and the successive agent nodes includes a condition corresponding to a
group
of personalization features.
40. The system of claim 33, wherein the memory further stores instructions
that, when executed by the processor, cause the processor to output a
plurality of
suggestions for a successive node of a tree based on an input prior node and
the
rated feature vectors.
54
Date Recue/Date Received 2020-06-19

Description

Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.


CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 DATA-DRIVEN DIALOGUE ENABLED SELF-HELP SYSTEMS
FIELD
[0001] Embodiments of the present invention relate to the field of
software for
operating contact centers, in particular, software and services for assisting
people
communicating with contact centers and methods for the automated and assisted
configuration of such software and services.
BACKGROUND
[0002] Contact centers staffed by agents generally serve as an interface
between
an organization such as a company and outside entities such as customers. For
example, human sales agents at contact centers may assist customers in making
purchasing decisions and may receive purchase orders from those customers.
Similarly, human support agents at contact centers may assist customers in
solving
problems with products or services provided by the organization. Interactions
between contact center agents and outside entities (customers) may be
conducted
by speech voice (e.g., telephone calls), video (e.g., video conferencing),
text (e.g.,
emails and text chat), or through other media.
[0003] At some contact centers, self-help systems may be configured to
handle
requests and questions from outside entities, without the involvement of a
human
agent at the contact center, thereby potentially reducing costs for the
contact center.
For example, self-help systems may suggest solutions to commonly experienced
problems. Examples of self-help systems include the Nuance Nina and
Genesys@ Voice Platform (GVP) systems. Self-help systems may be implemented
as interactive voice response (IVR) or interactive media response (IMR)
systems
having speech input capabilities (e.g., in addition to or instead of
responding to dual-
tone multi-frequency signals from keypresses).
[0004] Generally, self-help systems are customized on a per-organization
basis in
order to provide information and services that are relevant to the
organization and
the outside entities that the organization interacts with. For example, a
wireless
telephone carrier may configure a self-help system to automatically provide
instructions for solving problems with cellular connectivity or email access,
provide
information regarding the customer's current bill, or accept payment
information.
SUMMARY
[0005] Aspects of embodiments of the present invention are directed to
systems
and methods for assisting in the configuration and customization of a self-
help
system for a contact center.
1

[0006] According to one embodiment, there is provided a method for
configuring an
automated self-help system based on prior interactions between a plurality of
customers
and a plurality of agents of a contact center, the method comprising:
recognizing, by a
processor, speech loaded from a call recording storage medium in the prior
interactions
.. between customers and agents to generate recognized text, the recognized
text
comprising a plurality of phrases, the phrases being classified into a
plurality of clusters,
the plurality of clusters comprising agent clusters corresponding to agent
speech and
customer clusters corresponding to customer speech; extracting, automatically
by the
processor, a plurality of sequences of clusters, each of the sequences of
clusters
.. corresponding to the phrases of one of the prior interactions; filtering,
automatically by the
processor, the sequences of clusters based on a criterion, the criterion
comprising at least
one of: success rate; frequency of use; or interaction length; mining,
automatically by the
processor, a preliminary dialogue tree from the sequences of clusters, the
mining
comprising matching prefixes of the sequences to generate the preliminary
dialogue tree,
.. the preliminary dialogue tree comprising alternating layers of agent
clusters and customer
clusters; invoking configuration of the automated self-help system based on
the
preliminary dialogue tree; and outputting a dialogue tree, automatically
generated based
on the preliminary dialogue tree, for configuring the automated self-help
system, the
dialogue tree being customized for the contact center based on the prior
interactions
between the customers and agents of the contact center, the automated self-
help system
being configured to: present one or more options to a customer in accordance
with a
current node in the dialogue tree; receive an input from a customer; route the
customer to
a new node in the dialogue tree in accordance with the input; and generate,
automatically,
a response in accordance with the input and the new node.
[0007] The mining the preliminary dialogue tree from the sequences of
clusters and a
current prefix may include: generating sequences of cluster identifiers; and
identifying
frequent clusters of the clusters from the sequences of cluster identifiers.
[0008] The generating the sequences of cluster identifiers may include
removing
consecutive repetitions of clusters in the sequences of clusters.
[0009] Each of the clusters may be associated with one of a plurality of
sides, the
plurality of sides including a customer side and an agent side, wherein the
identifying the
2
Date Recue/Date Received 2020-06-19

frequent clusters of the clusters from the sequence of cluster identifiers may
include
identifying clusters associated with a side different from the side of the
current prefix and
having support greater than a threshold level.
[0010] The invoking configuration of the automated self-help system may
include:
displaying, on a user interface, the preliminary dialogue tree in a user
interface; receiving
user input identifying an agent response for a node of the dialogue tree; and
receiving
user input identifying a grammar matching a customer phrase for an edge of the
dialogue
tree.
[0011] The method may further include displaying a plurality of
suggested agent
responses, the plurality of suggested agent responses being generated by:
detecting, by
the processor, a plurality of topics in the prior interactions; receiving, by
the processor,
from the user interface, an input phrase; identifying, by the processor, a
cluster matching
the input phrase; and displaying, by the processor, on the user interface, a
plurality of
phrases corresponding to the cluster matching the input phrase.
[0012] The method may further include displaying a plurality of suggested
customer
grammars, the plurality of suggested customer grammars being generated by:
detecting,
by the processor, a plurality of topics in the prior interactions; receiving,
by the processor,
from the user interface, an input phrase; identifying, by the processor, a
cluster matching
the input phrase; and displaying, by the processor, on the user interface, a
grammar
corresponding to the phrases of the cluster matching the input phrase.
[0013] The output dialogue tree may include a plurality of agent nodes
and a plurality
of customer edges connecting the agent nodes.
[0014] At least one of the agent nodes may include a merged plurality of
agent
clusters.
[0015] There is also provided a method for configuring an automated self-
help system
based on prior interactions between a plurality of customers and a plurality
of agents of a
contact center, the method comprising: recognizing, by a processor, speech
loaded from a
call recording storage medium in the prior interactions between customers and
agents to
generate recognized text, the recognized text comprising a plurality of
phrases, the
phrases being classified into a plurality of clusters; extracting,
automatically by the
3
Date Recue/Date Received 2020-06-19

processor, a plurality of sequences of clusters, each of the sequences of
clusters
corresponding to the phrases of one of the prior interactions; filtering,
automatically by the
processor, the sequences of clusters based on a criterion, the criterion
comprising at least
one of: success rate; frequency of use; or interaction length; mining,
automatically by the
processor, a preliminary dialogue tree from the sequences of clusters;
invoking
configuration of the automated self-help system based on the preliminary
dialogue tree;
and outputting a dialogue tree, automatically generated based on the
preliminary dialogue
tree, for configuring the automated self-help system, wherein the mining the
preliminary
dialogue tree from the sequences of clusters and a current prefix comprises:
generating
sequences of cluster identifiers; identifying frequent clusters of the
clusters from the
sequences of cluster identifiers; and matching prefixes of the sequences to
generate the
preliminary dialogue tree, and wherein the matching prefixes of the sequences
comprises,
based on the current prefix, a projected database for the current prefix, and
an input tree,
for each cluster in the frequent clusters: concatenating the current prefix
with the cluster to
generate an appended prefix; building a projected database for the appended
prefix;
creating a subtree by recursively repeating the process using the appended
prefix, the
projected database for the appended prefix, and the input tree; and extending
the input
tree by connecting the subtree as a child to a current parent node
corresponding to the
current prefix.
[0016] The matching the prefixes may begin by: setting the current prefix
to the empty
string; setting the projected database for the current prefix to be the
sequences of cluster
identifiers; and setting the input tree to an empty tree.
[0017] The method may further include receiving a selection of a root
node from a
user, wherein the matching the prefixes may begin by: setting the current
prefix to a string
corresponding to the root node; setting the projected database for the current
prefix to be
the sequences of cluster identifiers; and setting the input tree to the root
node.
[0018] According to one embodiment, there is also provided a system
comprising: a
processor; and a memory, wherein the memory stores instructions that, when
executed by
the processor, cause the processor to: recognize speech loaded from a call
recording
storage medium in a plurality of prior interactions between a plurality of
customers and a
plurality of agents of a contact center to generate recognized text, the
recognized text
4
Date Recue/Date Received 2020-06-19

comprising a plurality of phrases, the phrases being classified into a
plurality of clusters,
the plurality of clusters comprising agent clusters corresponding to agent
speech and
customer clusters corresponding to customer speech; extract, automatically, a
plurality of
sequences of clusters, each of the sequences of clusters corresponding to the
phrases of
one of the prior interactions; filter, automatically, the sequences of
clusters based on a
criterion, the criterion comprising at least one of: success rate; frequency
of use; or
interaction length; mine, automatically, a preliminary dialogue tree from the
sequences of
clusters by matching prefixes of the sequences to generate the preliminary
dialogue tree,
the preliminary dialogue tree comprising alternating layers of agent clusters
and customer
clusters; invoke configuration of an automated self-help system based on the
preliminary
dialogue tree; and outputting a dialogue tree, automatically generated based
on the
preliminary dialogue tree, for configuring the automated self-help system, the
dialogue tree
being customized for the contact center based on the prior interactions
between the
customers and agents of the contact center, the automated self-help system
being
configured to: present one or more options to a customer in accordance with a
current
node in the dialogue tree; receive an input from a customer; route the
customer to a new
node in the dialogue tree in accordance with the input; and generate,
automatically, a
response in accordance with the input and the new node.
[0019] The instructions that cause the processor to mine the preliminary
dialogue tree
from the sequences of clusters and a current prefix may include instructions
that, when
executed by the processor, cause the processor to: generate sequences of
cluster
identifiers; and identify frequent clusters of the clusters from the sequences
of cluster
identifiers.
[0020] The instructions that cause the processor to generate the
sequences of cluster
identifiers may include instructions that, when executed by the processor,
cause the
processor to remove consecutive repetitions of clusters in the sequences of
clusters.
[0021] Each of the clusters may be associated with one of a plurality of
sides, the
plurality of sides including a customer side and an agent side, wherein the
instructions that
cause the processor to identify the frequent clusters of the clusters from the
sequence of
cluster identifiers may include instructions that, when executed by the
processor, cause
5
Date Recue/Date Received 2020-06-19

the processor to identify clusters associated with a side different from the
side of the
current prefix and having support greater than a threshold level.
[0022] The instructions that cause the processor to invoke configuration
of the
automated self-help system may include instructions that, when executed by the
processor, cause the processor to: display, on a user interface, the
preliminary dialogue
tree in a user interface; receive user input identifying an agent response for
a node of the
dialogue tree; and receive user input identifying a grammar matching a
customer phrase
for an edge of the dialogue tree.
[0023] The memory may further store instructions that, when executed by
the
processor, cause the processor to display a plurality of suggested agent
responses, the
plurality of suggested agent responses being generated by: detecting a
plurality of topics
in the prior interactions; receiving from the user interface, an input phrase;
identifying a
cluster matching the input phrase; and displaying on the user interface, a
plurality of
phrases corresponding to the cluster matching the input phrase.
[0024] The memory may further store instructions that, when executed by the
processor, cause the processor to display a plurality of suggested customer
grammars,
the plurality of suggested customer grammars being generated by: detecting, by
the
processor, a plurality of topics in the prior interactions; receiving, by the
processor, from
the user interface, an input phrase; identifying, by the processor, a cluster
matching the
input phrase; and displaying, by the processor, on the user interface, a
grammar
corresponding to the phrases of the cluster matching the input phrase.
[0025] The output dialogue tree may include a plurality of agent nodes
and a plurality
of customer edges connecting the agent nodes.
[0026] At least one of the agent nodes may include a merged plurality of
agent
clusters.
[0027] There is also provided a system comprising: a processor; and a
memory,
wherein the memory stores instructions that, when executed by the processor,
cause the
processor to: recognize speech loaded from a call recording storage medium in
a plurality
of prior interactions between a plurality of customers and a plurality of
agents of a contact
center to generate recognized text, the recognized text comprising a plurality
of phrases,
6
Date Recue/Date Received 2020-06-19

the phrases being classified into a plurality of clusters; extract,
automatically, a plurality of
sequences of clusters, each of the sequences of clusters corresponding to the
phrases of
one of the prior interactions; filter, automatically, the sequences of
clusters based on a
criterion, the criterion comprising at least one of: success rate; frequency
of use; or
interaction length; mine, automatically, a preliminary dialogue tree from the
sequences of
clusters; invoke configuration of an automated self-help system based on the
preliminary
dialogue tree; and output a dialogue tree, automatically generated based on
the
preliminary dialogue tree, for configuring the automated self-help system, the
dialogue tree
being customized for the contact center based on the prior interactions
between the
customers and agents of the contact center, wherein the instructions that
cause the
processor to mine the preliminary dialogue tree from the sequences of clusters
and a
current prefix include instructions that, when executed by the processor,
cause the
processor to: generate sequences of cluster identifiers; identify frequent
clusters of the
clusters from the sequences of cluster identifiers; and match prefixes of the
sequences to
generate the preliminary dialogue tree, wherein the instructions that cause
the processor
to match prefixes of the sequences includes instructions that, based on the
current prefix,
a projected database for the current prefix, and an input tree, for each
cluster in the
frequent clusters, cause the processor to: concatenate the current prefix with
the cluster to
generate an appended prefix; build a projected database for the appended
prefix; create a
subtree by recursively repeating the process using the appended prefix, the
projected
database for the appended prefix, and the input tree; and extend the input
tree by
connecting the subtree as a child to a current parent node corresponding to
the current
prefix.
[0028] The instructions that cause the processor to match prefixes of
the sequences
may include instructions that, when executed by the processor, cause the
processor to
begin matching the prefixes by: setting the current prefix to an empty string;
setting the
projected database for the current prefix to be the sequences of cluster
identifiers; and
setting the input tree to an empty tree.
[0029] The memory may further store instructions that cause the
processor to receive
a selection of a root node from a user, wherein the instructions that cause
the processor to
match prefixes of the sequences includes instructions that, when executed by
the
7
Date Recue/Date Received 2020-06-19

processor, cause the processor to begin matching the prefixes by: setting the
current
prefix to a string corresponding to the root node; setting the projected
database for the
current prefix to be the sequences of cluster identifiers; and setting the
input tree to the
root node.
[0030] Aspects of embodiments of the present invention are directed to
systems and
methods for assisting in the configuration and customization of a self-help
system for a
contact center.
[0031] According to one embodiment, there is provided a method for
generating a
dialogue tree for an automated self-help system of a contact center, the
method
comprising: recognizing, by a processor, speech in a plurality of recorded
interactions
between customers and agents of the contact center to generate recognized
text, the
recognized text comprising a plurality of phrases, the phrases being
classified into a
plurality of clusters, each cluster corresponding to an identifiable concept
within the
recorded interactions comprising a plurality of semantically similar phrases
corresponding
to the identifiable concept; computing, by a processor, a plurality of feature
vectors, each
feature vector corresponding to one of the plurality of recorded interactions,
each feature
vector identifying one or more clusters corresponding to phrases found in the
recognized
text of the corresponding one of the recorded interactions; computing, by the
processor,
similarities between pairs of the feature vectors based on a similarity
threshold; grouping,
by the processor, similar feature vectors based on the computed similarities
into groups of
interactions; rating, by the processor, feature vectors within each group of
interactions
based on one or more criteria, wherein the criteria include at least one of
interaction time,
success rate, and customer satisfaction; and outputting, by the processor, a
dialogue tree
in accordance with the rated feature vectors for configuring the automated
self-help
system.
[0032] The computing the similarity between a first feature vector and a
second feature
vector of the pair of feature vectors based on a similarity threshold may
include: summing
the number of clusters appearing in both the first feature vector and the
second feature
vector to initialize a similarity metric; adjusting the similarity metric
based on clusters
appearing in only one of the pair of feature vectors; and normalizing the
similarity metric.
8
Date Recue/Date Received 2020-06-19

[0033] The method may further include computing the success rate by:
identifying, by
the processor, clusters corresponding to phrases indicating successful
resolution of an
issue associated with the interaction; and computing, by the processor, the
success rate
based on the number of the recorded interactions that include clusters
indicating
successful resolution of the issue.
[0034] The method may further include computing a customer satisfaction
rate by:
associating each interaction with ratings from a survey; and computing the
customer
satisfaction based on the ratings.
[0035] The method may further include identifying a plurality of
customer features
associated with the customer associated with each of the recorded
interactions.
[0036] The method may further include: partitioning the plurality of
recorded
interactions based on a plurality of groups of personalization features;
computing a
dialogue tree for each of the groups of personalization features to compute a
plurality of
dialogue trees; and outputting the plurality of dialogue trees for configuring
the automated
self-help system.
[0037] The dialogue tree may include a plurality of agent nodes arranged
in a plurality
of agent layers and a plurality of customer nodes arranged in a plurality of
customer
layers, wherein at least one of the customer nodes is coupled to a plurality
of successive
agent nodes, and wherein each of a plurality of edges between the at least one
of the
customer nodes and the successive agent nodes includes a condition
corresponding to a
group of personalization features.
[0038] The method may further include outputting a plurality of
suggestions for a
successive node of a tree based on an input prior node and the rated feature
vectors.
[0039]
[0040]
[0041]
[0042] According to one embodiment, there is provided a system
comprising: a
processor; and a memory, wherein the memory stores instructions that, when
executed by
the processor, cause the processor to: recognize speech in a plurality of
recorded
9
Date Recue/Date Received 2020-06-19

interactions between customers and agents of a contact center to generate
recognized
text, the recognized text comprising a plurality of phrases, the phrases being
classified into
a plurality of clusters, each cluster corresponding to an identifiable concept
within the
recorded interactions comprising a plurality of semantically similar phrases
corresponding
.. to the identifiable concept; compute a plurality of feature vectors, each
feature vector
corresponding to one of the plurality of recorded interactions, each feature
vector
identifying one or more clusters corresponding to phrases found in the
recognized text of
the corresponding one of the recorded interactions; compute similarities
between pairs of
the feature vectors based on a similarity threshold; group similar feature
vectors based on
the computed similarities into groups of interactions; rate feature vectors
within each group
of interactions based on one or more criteria, wherein the criteria include at
least one of
interaction time, success rate, and customer satisfaction; and output a
dialogue tree in
accordance with the rated feature vectors for configuring an automated self-
help system.
[0043] The instructions that cause the processor to compute the
similarity between a
first feature vector and a second feature vector of the pair of feature
vectors based on a
similarity threshold may include instructions that, when executed by the
processor, cause
the processor to: sum the number of clusters appearing in both the first
feature vector and
the second feature vector to initialize a similarity metric; adjust the
similarity metric based
on clusters appearing in only one of the pair of feature vectors; and
normalize the
.. similarity metric.
[0044] The instructions that cause the processor to compute the success
rate may
include instructions that, when executed by the processor, cause the processor
to: identify
clusters corresponding to phrases indicating successful resolution of an issue
associated
with the interaction; and compute the success rate based on the number of the
recorded
.. interactions that include clusters indicating successful resolution of the
issue.
[0045] The instructions that cause the processor to compute a customer
satisfaction
rate may include instructions that, when executed by the processor, cause the
processor
to: associate each interaction with ratings from a survey; and compute the
customer
satisfaction based on the ratings.
9a
Date Recue/Date Received 2020-06-19

[0046] The memory may further store instructions that, when executed by
the
processor, cause the processor to identify a plurality of customer features
associated with
the customer associated with each of the recorded interactions.
[0047] The memory may further store instructions that, when executed by
the
processor, cause the processor to: partition the plurality of recorded
interactions based on
a plurality of groups of personalization features; compute a dialogue tree for
each of the
groups of personalization features to compute a plurality of dialogue trees;
and output the
plurality of dialogue trees for configuring the automated self-help system.
[0048] The dialogue tree may include a plurality of agent nodes arranged
in a plurality
of agent layers and a plurality of customer nodes arranged in a plurality of
customer
layers, wherein at least one of the customer nodes is coupled to a plurality
of successive
agent nodes, and wherein each of a plurality of edges between the at least one
of the
customer nodes and the successive agent nodes includes a condition
corresponding to a
group of personalization features.
[0049] The memory may further store instructions that, when executed by the
processor, cause the processor to output a plurality of suggestions for a
successive node
of a tree based on an input prior node and the rated feature vectors.
[0050]
[0051]
[0052]
BRIEF DESCRIPTION OF THE DRAWINGS
[0053] The accompanying drawings, together with the specification,
illustrate
exemplary embodiments of the present invention, and, together with the
description, serve
to explain the principles of the present invention.
[0054] FIG. 1 is a schematic block diagram of a system for supporting a
contact center
in providing contact center services according to one exemplary embodiment of
the
invention.
[0055] FIG. 2 is an abstract visualization of an exemplary dialogue
graph or dialogue
tree.
9b
Date Recue/Date Received 2020-06-19

[0056] FIG. 3 is a flowchart illustrating a method for extracting
interaction data from
recorded interactions according to one embodiment of the present invention.
[0057] FIG. 4A is a schematic diagram illustrating an interaction
between an agent and
a customer, as abstracted into a sequence of clusters (or topics), according
to one
embodiment of the present invention.
[0058] FIG. 4B is a schematic illustration of a sequence of clusters (or
topics)
generated from the separately recognized clusters (or topics), according to
one
embodiment, where the sequence includes an indication of the speaker of the
fragment
associated with the clusters.
[0059] FIG. 5 is a flowchart illustrating a method for mining the pruned
collection of
sequences of clusters to generate a dialogue tree according to one embodiment
of the
present invention.
9c
Date Recue/Date Received 2020-06-19

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [0060] FIG. 6 is an example of an automatically generated preliminary
or raw
dialogue tree T according to one embodiment of the present invention.
[0061] FIG. 7 illustrates a resulting dialogue tree generated based on
the tree
shown in FIG. 6 and based on user input according to one embodiment of the
present invention.
[0062] FIG. 8 is a flowchart illustrating a method for performing
automatic
dialogue expansion according to one embodiment of the present invention.
[0063] FIG. 9 is a diagram illustrating a process according to one
embodiment of
the present invention for a system designer to add an agent node to a dialogue
tree.
[0064] FIG. 10 is a screenshot of a user interface providing suggested
alternative
agent phrases according to one embodiment of the present invention.
[0065] FIG. 11 is a screenshot of a user interface providing suggested
grammars
based on the provided input according to one embodiment of the present
invention.
[0066] FIG. 12A is a schematic diagram of a process for clustering,
filtering, and
mining interactions to generate a dialogue tree according to one embodiment of
the
present invention.
[0067] FIG. 128 is a flowchart illustrating a method 1200 for rating the
performance of various sequences.
[0068] FIG. 120 is a flowchart of a method for computing similarity
between two
bags of clusters (v1, v2) according to one embodiment of the present
invention.
[0069] FIG. 13A is a block diagram of a computing device according to an
embodiment of the present invention.
[0070] FIG. 13B is a block diagram of a computing device according to an
embodiment of the present invention.
[0071] FIG. 130 is a block diagram of a computing device according to an
embodiment of the present invention.
[0072] FIG. 13D is a block diagram of a computing device according to an
embodiment of the present invention.
[0073] FIG. 13E is a block diagram of a network environment including
several
computing devices according to an embodiment of the present invention.
DETAILED DESCRIPTION
[0074] In the following detailed description, only certain exemplary
embodiments
of the present invention are shown and described, by way of illustration. As
those
skilled in the art would recognize, the invention may be embodied in many
different
forms and should not be construed as being limited to the embodiments set
forth
herein. Like reference numerals designate like elements throughout the
specification.

[0075]
Speech enabled self-help systems may provide benefits in terms of a reduced
need
for human agents to serve the needs of outside entities interacting with a
contact center. For
the sake of convenience, outside entities interacting with the contact center
will be referred to
herein as "customers," and may include situations where the outside entities
are not engaged
in commercial or business interactions with the contact center. These self-
help systems are
generally customized to the particular needs of the organizations supported by
the self-help
systems. Tools for performing this configuration enable the definition of
Voice-XML (extensible
markup language) and associated XML form grammar (GRXML) for configuring the
self-
service systems. However, setting, initializing, optimizing, and updating such
systems is
.. typically a manual process that is time consuming, expensive, and
inefficient. In addition, a
designer may fail to appreciate the variety of ways that customers may think
about the
problem to be solved as they approach the self-help system, such as the most
comfortable
order in which to provide information (or providing the flexibility for a
customer to provide
information in an order different from that designed by the system designer).
[0076] Systems and methods for assisting in the development of Voice-XML
and GRXML
based grammars by learning from customer-agent calls can be found, for
example, in U.S.
Patent Application Publication No. US 2017-0018269 Al
"DATA DRIVEN SPEECH
ENABLED SELF-HELP SYSTEMS AND METHODS OF OPERATING THEREOF". These
learned grammars may be used as building blocks by self-help system
configuration tools in
order to assist a user (e.g., a human system administrator or system designer
or application
designer) in configuring the self-help systems. These systems may also
automatically perform
semantic expansion of phrases submitted by an administrator for detection by
the self-help
system, thereby allowing for faster and more thorough configuration of a self-
help system.
[0077] In
addition to customizing the Voice-XML and GRXML based grammars detected
.. by the self-help system, a system administrator may also need to design the
order in which
dialogue options are presented to customers interacting with the self-help
system. For
example, a self-help system for booking a flight may first ask for a departure
city, then a
destination city, followed by a travel date. The various questions and answers
may be
modeled as a directed graph (e.g., a tree), where various nodes of the graph
correspond to
various states of the self-help system and/or grammars detected by the self-
help system. In
conventional systems, the paths through the self-help system and the order in
which the
dialogue options are presented are manually designed by the system
administrator based on
his or her knowledge of the requirements of the system.
11
CA 3005324 2019-09-05

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [0078] Embodiments of the present invention are directed to systems
and
methods for assisting a system administrator in designing a dialogue tree.
This
assistance may be generated by automatically analyzing the previous
interactions
(e.g., recorded conversations) between customers and human agents and the
results of those interactions, thereby solving the problem of designing an
automated
self-help system that matches actual customer behavior.
Contact center overview
[0079] FIG. 1 is a schematic block diagram of a system for supporting a
contact
center in providing contact center services according to one exemplary
embodiment
of the invention. For the purposes of the discussion herein, interactions
between
customers using end user devices 10 and agents at a contact center using agent
devices 38 may be recorded by call recording module 40 and stored in call
recording
storage 42. The recorded calls may be processed by speech recognition module
44
to generate recognized text which is stored in recognized text storage 46. In
some
embodiments of the present invention, an automated self-help system according
to
embodiments of the present invention is provided by automated self-help
configuration module 45, which includes a cluster extraction module 45a, a
user
interface module 45b, a sequence pruning module 45c, a tree mining module 45d,
and a dialogue expansion module 45e, and which will be described in more
detail
below.
[0080] The contact center may be an in-house facility to a business or
corporation
for serving the enterprise in performing the functions of sales and service
relative to
the products and services available through the enterprise. In another aspect,
the
contact center may be a third-party service provider. The contact center may
be
deployed in equipment dedicated to the enterprise or third-party service
provider,
and/or deployed in a remote computing environment such as, for example, a
private
or public cloud environment with infrastructure for supporting multiple
contact centers
for multiple enterprises. The various components of the contact center system
may
also be distributed across various geographic locations and computing
environments
and not necessarily contained in a single location, computing environment, or
even
computing device.
[0081] According to one exemplary embodiment, the contact center system
manages resources (e.g. personnel, computers, and telecommunication equipment)
to enable delivery of services via telephone or other communication
mechanisms.
Such services may vary depending on the type of contact center, and may range
from customer service to help desk, emergency response, telemarketing, order
taking, and the like.
12

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [0082] Customers, potential customers, or other end users
(collectively referred to
as customers) desiring to receive services from the contact center may
initiate
inbound telephony calls to the contact center via their end user devices 10a-
10c
(collectively referenced as 10). Each of the end user devices 10 may be a
communication device conventional in the art, such as, for example, a
telephone,
wireless phone, smart phone, personal computer, electronic tablet, and/or the
like.
Users operating the end user devices 10 may initiate, manage, and respond to
telephone calls, emails, chats, text messaging, web-browsing sessions, and
other
multi-media transactions.
[0083] Inbound and outbound telephony calls from and to the end users
devices
10 may traverse a telephone, cellular, and/or data communication network 14
depending on the type of device that is being used. For example, the
communications network 14 may include a private or public switched telephone
network (PSTN), local area network (LAN), private wide area network (WAN),
and/or
public wide area network such as, for example, the Internet. The
communications
network 14 may also include a wireless carrier network including a code
division
multiple access (C DMA) network, global system for mobile communications (GSM)
network, or any wireless network/technology conventional in the art, including
but to
limited to 3G, 4G, LTE, and the like.
[0084] According to one exemplary embodiment, the contact center includes a
switch/media gateway 12 coupled to the communications network 14 for receiving
and transmitting telephony calls between end users and the contact center. The
switch/media gateway 12 may include a telephony switch configured to function
as a
central switch for agent level routing within the center. The switch may be a
hardware switching system or a soft switch implemented via software. For
example,
the switch 12 may include an automatic call distributor, a private branch
exchange
(PBX), an IP-based software switch, and/or any other switch configured to
receive
Internet-sourced calls and/or telephone network-sourced calls from a customer,
and
route those calls to, for example, an agent telephony device. In this example,
the
switch/media gateway establishes a voice path/connection (not shown) between
the
calling customer and the agent telephony device, by establishing, for example,
a
connection between the customer's telephony device and the agent telephony
device.
[0085] According to one exemplary embodiment of the invention, the
switch is
coupled to a call server 18 which may, for example, serve as an adapter or
interface
between the switch and the remainder of the routing, monitoring, and other
call-
handling components of the contact center.
13

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [0086] The call server 102 may be configured to process PSTN calls,
VolP calls,
and the like. For example, the call server 102 may include a session
initiation
protocol (SIP) server for processing SIP calls. According to some exemplary
embodiments, the call server 102 may, for example, extract data about the
customer
interaction such as the caller's telephone number, often known as the
automatic
number identification (AN I) number, or the customer's internet protocol (IP)
address,
or email address, and communicate with other CC components and/or CC iXn
controller 18 in processing the call.
[0087] According to one exemplary embodiment of the invention, the
system
further includes an interactive media response (IMR) server 34, which may also
be
referred to as a self-help system, virtual assistant, or the like. The IMR
server 34
may be similar to an interactive voice response (IVR) server, except that the
IMR
server is not restricted to voice, but may cover a variety of media channels
including
voice. Taking voice as an example, however, the IMR server may be configured
with
an IMR script for querying calling customers on their needs. For example, a
contact
center for a bank may tell callers, via the IMR script, to "press 1" if they
wish to get
an account balance. If this is the case, through continued interaction with
the IMR,
customers may complete service without needing to speak with an agent. The IMR
server 34 may also ask an open ended question such as, for example, "How may I
assist you?" and the customer may speak or otherwise enter a reason for
contacting
the contact center. The customer's speech may then be processed by the speech
recognition module 44 and the customer's response may then be used by the
routing
server 20 to route the call to an appropriate contact center resource.
[0088] In more detail, a speech driven IMR receives audio containing
speech
from a user. The speech is then processed to find phrases and the phrases are
matched with one or more speech recognition grammars to identify an action to
take
in response to the user's speech. As used herein, the term "phrases" may also
include "fragments" in which words are extracted from utterances that are not
necessarily sequential. As such, the term "phrase" includes portions or
fragments of
transcribed utterances that omit some words (e.g., repeated words and words
with
low saliency such as "urn" and "ah"). For example, if a user says "what is my
account
balance?" then the speech driven IMR may attempt to match phrases detected in
the
audio (e.g., the phrase "account balance") with existing grammars associated
with
actions such as account balance, recent transactions, making payments,
transferring
funds, and connecting to a human customer service agent. Each grammar may
encode a variety of ways in which customers may request a particular action.
For
example, an account balance request may match phrases such as "account
balance," "account status," "how much money is in my accounts," and "what is
my
14

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 balance." Once a match between the spoken phrase from the user and a
grammar is
detected, the action associated with the grammar is performed in a manner
similar to
the receiving a user selection of an action through a keypress. These actions
may
include, for example, a VoiceXML response that is dynamically generated based
on
the user's request and based on stored business information (e.g., account
balances
and transaction records).
[0089] In some embodiments, the routing server 20 may query a customer
database, which stores information about existing clients, such as contact
information, service level agreement (SLA) requirements, nature of previous
customer contacts and actions taken by contact center to resolve any customer
issues, and the like. The database may be, for example, Cassandra or any non-
SQL
database, and may be stored in a mass storage device 30. The database may also
be a SQL database an may be managed by any database management system such
as, for example, Oracle, IBM DB2, Microsoft SQL server, Microsoft Access,
PostgreSQL, MySQL, FoxPro, and SQLite. The routing server 20 may query the
customer information from the customer database via an ANI or any other
information collected by the IMR server 34.
[0090] According to one exemplary embodiment of the invention, the mass
storage device(s) 30 may store one or more databases relating to agent data
(e.g.
agent profiles, schedules, etc.), customer data (e.g. customer profiles),
interaction
data (e.g. details of each interaction with a customer, including reason for
the
interaction, disposition data, time on hold, handle time, etc.), and the like.
According
to one embodiment, some of the data (e.g. customer profile data) may be
maintained
in a customer relations management (CRM) database hosted in the mass storage
device 30 or elsewhere. The mass storage device may take form of a hard disk
or
disk array as is conventional in the art.
[0091] The various servers of FIG. 1 may each include one or more
processors
executing computer program instructions and interacting with other system
components for performing the various functionalities described herein. The
computer program instructions are stored in a memory implemented using a
standard memory device, such as, for example, a random access memory (RAM).
The computer program instructions may also be stored in other non-transitory
computer readable media such as, for example, a CD-ROM, flash drive, or the
like.
Also, although the functionality of each of the servers is described as being
provided
by the particular server, a person of skill in the art should recognize that
the
functionality of various servers may be combined or integrated into a single
server,
or the functionality of a particular server may be distributed across one or
more other

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 servers without departing from the scope of the embodiments of the
present
invention.
[0092] In the various embodiments, the term interaction is used
generally to refer
to any real-time and non-real time interaction that uses any communication
channel
including, without limitation telephony calls (PSTN or VolP calls), emails,
vmails
(voice mail through email), video, chat, screen-sharing, text messages, social
media
messages, web real-time communication (e.g. WebRTC calls), and the like.
[0093] Some embodiments of the present invention are described in the
context
of a contact center. However, embodiments of the present invention are not
limited
thereto and may also be used in under other conditions involving configuration
of the
detection of commands in a speech driven user interface.
[0094] Generally, an interaction between a customer and a contact center
includes a customer side and a human agent side. As noted above, an
interactive
media response (IMR) system 34 may be used to provide a speech enabled self-
help system to attempt to replace the human agent in the interaction.
[0095] When a customer calls a contact center and interacts with the IMR
34, the
customer (or caller) may progress along a route through the dialogue tree
based on
the customer's responses until the customer's issue is resolved or until the
customer
is transferred to a human agent. The routes through dialogue tree may
alternate
between automated agent speech played to the customer and grammars for
recognizing customer speech (e.g., GRXML). The customer may be routed along
different paths of the dialogue tree based on the spoken phrase.
[0096] FIG. 2 is an abstract visualization of an exemplary dialogue
graph or
dialogue tree. The various nodes of the tree correspond to outputs from the
IMR 34
(e.g., messages conveyed from the IMR 34 to the customer) or inputs received
from
the customer (e.g., the customer's responses to the IMR's prompts). The
various
nodes may be grouped into "layers," where the layers are numbered based on
distance from the root of the tree.
[0097] The dialogue tree in FIG. 2 may correspond to a portion of a
customer
self-help system for an airline company. Referring to FIG. 2, in Layer 0
(e.g., the root
node 202 of the tree), in response to the customer's establishing a connection
to the
self-help system (e.g., by dialing the phone number of the contact center) the
automated agent may ask the customer "How may I assist you?" This may be
provided, for example, by one or more of prerecorded phrases, text-to-speech
techniques, transmitting the text to the user (e.g., through a chat
interface), or other
appropriate techniques for interacting with a customer.
[0098] In response to the agent's question, the customer (or caller) may
respond
with any of a number of potential grammars. The customer's response is
processed
16

by the node 212 in Layer 1, as shown in FIG. 2. Node 212 of the tree may
correspond to a
grammar for parsing the user input and may be implemented using a general
GRXML. The
grammar corresponding to node 212 may be used to detect phrases such as A. "I
want to
book a flight," B. "I've lost my account password," and C. "I want to speak
with a supervisor."
The grammar may be configured to match variations of phrases having equivalent
meaning,
such as "Book a flight," "make a flight reservation," and "I want to fly to
San Francisco" for
booking flights or "Reset my password," "I've forgotten my password," "Change
my password"
for resetting a password.
[0099] Based on the detected action, the customer may be routed to an
appropriate node
in the tree. For example, when a customer says that they would like to book a
flight, the self-
help system may route the customer to node 222 of Layer 2 for the automated
agent to ask for
a destination and node 232 of Layer 3 includes the definition of a grammar for
detecting
various valid destinations in various forms (e.g., "San Francisco," "Los
Angeles," "New York,"
"SFO," "LA)(," "JFK," "LaGuardia").
[00100] Alternatively, if the user says that they would like to reset
their password, the self-
help system routes the customer to node 224 of Layer 2, in which case the
system prompts for
a user name and node 234 may include the definition of a grammar for
recognizing the
spelling out of a user name (e.g., detecting individual letters and numbers).
[00101] Other Layer 2 nodes (e.g., node 226) may be provided in the tree to
handle
different types of input provided by the customer in node 212, such as
detecting a request to
route the call to a human supervisor or a request for information about an
existing reservation.
Computer assisted customization of self-help systems
[00102] Aspects of embodiments of the present invention are directed to
systems and
methods for assisting a designer of a self-help system in designing a dialogue
graph (e.g., a
dialogue tree) or automatically generating the dialogue graph, where the
specifies the way in
which a customer interacts with an automated self-help system. Aspects of
embodiments of
the present invention may use automatically generated Voice-XML and GRXML of
possible
dialogue (e.g., possible phrases spoken by a customer during an interaction)
based on
grammar building blocks extracted during a data-driven setup process as
described in more
detail in U.S. Patent Application Publication. No. US 2017-0018269 Al "DATA
DRIVEN
SPEECH ENABLED SELF-HELP SYSTEMS AND METHODS OF OPERATING THEREOF".
17
CA 3005324 2019-09-05

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [00103] Aspects of embodiments of the present invention may also use
automatic
dialogue expansion to automatically suggest new dialogue routes to the
grammar,
where the routes may be suggested based on a phrase or a sentence manually
entered by the designer of the self-help system.
[00104] According to one embodiment of the present invention, the automated
self-
help configuration module 45 may be used to configure the dialogue trees
presented
by the IMR 34. In particular, a system administrator or application designer
may use
the user interface 45b of the automated self-help configuration module 45 to
configure the IMR 34. The automated self-help configuration module 45 may
provide
recommendations to assist the system designer in selecting and arranging the
nodes
of the dialogue tree based on information gathered from previous recorded
conversations.
[00105] According to one aspect of embodiments of the present invention, a
collection of recorded interactions (e.g., stored in the call recording
storage 42 and
the recognized text storage 46) between customers and human agents is
collected
and analyzed to generate the information for assisting system administrators
in
configuring the IMR 34 self-help system, where the recorded interactions
relate to
the types of circumstances to be handled by the automated self-help system.
For
example, to configure an airline company's self-help system for booking
flights, the
input recorded interactions should be those between customers and human agents
related to the booking of flights.
[00106] FIG. 3 is a flowchart illustrating a method 300 for extracting
interaction
data from recorded interactions according to one embodiment of the present
invention. Referring to FIG. 3, the method 300 for extracting data from
existing
interactions includes: preparing data 310, extracting clusters 330, pruning
data 350,
mining the dialogue tree 370 to generate mined dialogue tree data, supplying
the
mined preliminary or raw dialogue tree data to the user interface 380, and
generating
a dialogue tree based on user input and the mined dialogue tree 390.
[00107] According to one embodiment of the present invention, any necessary
initial processing on recorded interaction data is performed in operation 310.
For
example, the recorded data may include audio recordings of voice conversations
between customers and agents. According to some embodiments of the present
invention, the later operations analyze the customer audio and the agent audio
separately. As such, in circumstances where the audio recordings are "mono-
channel" or "single channel" data where the customer and agent audio are on a
single channel, speaker separation and classification techniques may be
applied to
the recorded interactions to generate "dual channel" audio in which the
customer and
agent speech are separated from one another (e.g., in different channels of
the
18

audio). Each interaction may be associated with a unique corresponding
interaction identifier
(or "interaction ID").
[00108] In operation 330, clusters (or topics) are extracted from the
prepared interaction
data to generate a plurality of extracted clusters (or topics). Techniques for
automatically
extracting clusters are described in, for example, U.S. Patent Application
Publication No. US
2017-0018269 Al "Data Driven Speech Enabled Self-Help Systems and Methods of
Operating Thereof'. These extraction techniques can be performed by the
cluster extraction
module 45a of the automated self-help configuration module 45. The extracted
clusters include
fragments of interactions that are semantically the same or similar, where
each cluster
includes information about which interaction it was found in (e.g., its
associated interaction ID)
and its location within the interaction (e.g., fragment start time if it is a
spoken interaction or
word location if the interaction is a text interaction such as an email). The
clustering is
performed separately on the customer and agent data streams.
[00109] Each cluster (or topic) is associated with a unique identifier
(or "cluster ID" or "topic
ID") and corresponds to a particular concept within an interaction. For
example, some clusters
may be associated with greetings, some clusters may be associated particular
requests (e.g.,
various ways for a customer to state that the he or she wants to book a flight
or various ways
for an agent to request payment information) or particular responses (e.g.,
various ways to
state departure and arrival cities or to state a seat preference).
[00110] As such, each interaction may be represented as a sequence of clusters
or
sequence of topics (e.g., the clusters corresponding to the fragments found in
the interaction)
along with an indication of whether a customer or an agent was the speaker
(or, in the case of
a text interaction, the writer) of the fragment.
[00111] FIG. 4A is a schematic diagram illustrating an interaction
between an agent and a
customer, as abstracted into a sequence of clusters (or topics), according to
one embodiment
of the present invention. As shown, the agent side and customer side of the
interaction are
shown in separate lines. In this interaction, the agent began by stating a
fragment from cluster
A (e.g., a greeting), the customer responded with a fragment from cluster D
(e.g., a response
to a greeting) followed by a fragment from cluster F (e.g., a request to book
a flight). The agent
responded to the customer's fragment from cluster F with a fragment from
cluster C (e.g., a
request for a departure city) and the customer responded with a fragment from
cluster S (e.g.,
the name of a departure city). The agent followed up with a fragment from
cluster G (e.g., a
request for a destination city) and the customer responded with a fragment
from cluster B
(e.g., the destination city name).
19
CA 3005324 2019-09-05

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [00112] FIG. 4B is a schematic illustration of a sequence of clusters (or
topics)
generated from the separately recognized clusters (or topics), according to
one
embodiment, where the sequence includes an indication of the speaker of the
fragment associated with the clusters. In FIG. 4B, the clusters associated
with the
agent are labeled with circles and the clusters associated with the customer
are
labeled with squares. In the example given above with respect to FIG. 4A, the
cluster
(or topic) sequence A, D, F, C, S, G, and B was generated.
[00113] In operation 350, the resulting sequences of clusters corresponding to
interactions are filtered or pruned by the sequence pruning module 45c based
on a
criterion, e.g., based on whether the sequences resulted in successful
interactions
(e.g., to filter out unsuccessful interactions). According to one embodiment
of the
present invention, sequences are considered successful interactions based on
one
or more factors. One such factor is interactions that did not follow with a
repeat call
after a given period of time (e.g., two weeks) because a repeat call suggests
that the
first call did not resolve all of the issues. Another factor may be computed
based on
sentiment analysis (e.g., analysis of the clusters identified in the sequence
and
whether any of those clusters are associated with phrases of anger or
disgust). A
third factor may be computed based on explicit indications of successful
interactions
such as a customer's saying "thank you, you've been very helpful" or an
agent's
saying "is there anything else I can help you with?" On the other hand, an
explicit
indication of an unsuccessful interaction is a customer's escalation request
such as:
"I'd like to speak to your supervisor."
[00114] After the unsuccessful interactions have been filtered out, the
remaining,
successful sequences are mined in operation 370 by the tree mining module 45d
to
generate data associated with the dialogue tree, as described in more detail
below.
This data may be used to generate a dialogue tree or to generate
recommendations
for the system designer when constructing a dialogue tree.
[00115] In another embodiment of the present invention, in operation 350
sequences are pruned to filter out the successful interactions and the mining
of
operation 370 is performed on the unsuccessful interactions to generate data
for
warning a system designer if he or she attempts to design a dialogue tree with
a
"bad" sequence.
[00116] As described above, the speech enabled self-help system of the IMR 34
may be modeled as a dialogue tree with directed edges (or transitions).
Formally, the
dialogue tree T may include nodes representing a turn output of the agent side
and
grammars of potential responses from customers and the directed edges
correspond
to the actual input during the customer side turn.

[00117] As such, a system for supporting the design of the speech enabled self-
help
system is directed to designing a tree T that reflects typical successful
sequential patterns of
clusters observed in prior interactions between customers and human agents. In
other words,
in the designed tree T each of paths from the root node to the leaves
corresponds to a
common sequence of clusters in a successful interaction between an agent and a
customer. In
such a tree, each agent node describes the output for that node and each
client node indicates
the potential input for each of the edges and the destination node for each of
those edges.
[00118] According to one embodiment of the present invention, the dialogue
tree is
generated by identifying only the most frequent subsequences of clusters.
Feeding all of the
sequences of successful interactions into a pattern mining algorithm can
generate
subsequences of frequent clusters. One such mining technique is described, for
example, in
U.S. Patent No. 10,061,822 "System and Method For Discovering and Exploring
Concepts and
Root Causes of Events". The resulting frequent subsequences of clusters may be
supplied as
suggestions of routes to the system designer via the user interface 45b and
the system
designer may connect these subsequences together to form the tree, as
described in more
detail below.
[00119] In another embodiment of the present invention, the tree mining
module 45d
generates an entire tree of potential interactions, as described in more
detail below.
[00120] FIG. 5 is a flowchart illustrating a method for mining the pruned
collection of
sequences of clusters to generate a dialogue tree according to one embodiment
of the present
invention. According to this embodiment of the present invention, mining the
dialogue tree 370
includes generating sequences of cluster IDs 372 and building a preliminary or
raw tree of
clusters 374. After mining the preliminary dialogue tree, in operation 380 the
preliminary tree
may be supplied to the user interface 45b and an output dialogue tree for the
self-help system
can then be generated in operation 390 based on the preliminary tree data and
additional user
input 377.
[00121] In one embodiment, generating the sequences of cluster
identifiers from the pruned
sequences in operation 372 includes condensing the sequences by removing
consecutive
repetitions of cluster identifiers. Some methods for doing so according to
embodiments of the
present invention are described in more detail in the above referenced U.S.
Patent Application
No. 13/952,470 "System and Method For Discovering and Exploring Concepts and
Root
Causes of Events." For example, the sequence A-D-D-D-F-C-C-S-G-B may be
condensed by
replacing the consecutive repetitions D-D-D and C-C with a single instance of
each (e.g., D
and C, respectively) to generate the condensed sequence A-D-F-C-S-G-B.
21
CA 3005324 2019-09-05

[00122] In operation 374, the automated self-help system configuration module
45
generates the preliminary dialogue tree T from the condensed sequences by
matching starting
subsequences of the sequences (or "prefixes" of the subsequences). FIG. 6 is
an example of
an automatically generated preliminary dialogue tree T according to one
embodiment of the
present invention, discussed in more detail below.
[00123] According to one embodiment of the present invention, an approach
similar to the
PrefixSpan algorithm described in Pei, J., Han, J., Mortazavi-Asl, B., Wang,
J., Pinto, H.,
Chen, Q., ... & Hsu, M. C. (2004). Mining Sequential Patterns by Pattern-
Growth: The
PrefixSpan Approach. Knowledge and Data Engineering, IEEE Transactions on,
16(11), 1424-
1440.
[00124] In more detail, according to one embodiment of the present
invention, one input of
the PrefixSpan algorithm is a minimum support k (or number of occurrences,
e.g., the
minimum number of occurrences of a particular sequence within the entire
collection of input
sequences) such that any frequent pattern mined using the algorithm has
support greater than
or equal to k. The value of k can be set or adjusted by a user (e.g., the
system designer)
based on characteristics of the input collection of recorded interactions
(e.g., based on how
frequently a sequence needs to occur in the recorded interactions order for
that sequence to
be considered a frequent pattern).
[00125] In a standard application of the PrefixSpan algorithm to a
projected database (PDB)
of each frequent pattern a, the algorithm counts the number of suffixes that
contain each
cluster ID in order to find those that appear frequently enough to meet the
support threshold k.
[00126] Similarly, in embodiments of the present invention, the support
threshold k
corresponds to the concept that, in the output dialogue tree T, every path
from the root to the
leaves has support k (e.g., that, for every sequence of clusters found along
path from the
root to the leaves of the tree, there are at least k instances of the sequence
in the collection of
recorded interactions or the sequence database (SDB) which serves as an input
to the
dialogue tree mining process described in more detail below).
[00127] However, in contrast to the standard PrefixSpan algorithm,
according to one
embodiment of the present invention, the automated self-help system
configuration module 45
counts only clusters of the "other side" (e.g., a side that is complementary
to the last side of a).
For example, if the prefix pattern a ends with an agent (A) cluster, then only
customer (C)
clusters will be counted and vice versa. Building the prefix tree in this way
results in a tree with
alternating layers of A
22
CA 3005324 2019-09-05

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 clusters and C clusters. In addition, embodiments of the present
invention explicitly
construct the dialogue tree T. In particular, for each frequent cluster x, the
automated
self-help configuration module 45 connects a child node x to the parent node a
and
continues developing the tree recursively from the projected database (PDB)
where S is the sequence database (SOB), Si, is the PDB of S with prefix a (the
PDB
having a set of suffixes of sequences in S that come right after the pattern a
in the
sequence), a x is the concatenation of the pattern a and the sequence x.
Generally, a PDB SL, may be constructed by counting the number of sequences a
symbol x appears in the current layer and its location in the sequence. If the
count
exceeds a support threshold, then a PDB is created with a prefix ending with x
and
the items in the PDB are extracted according to the identified locations in
the
sequences.
[00128] FIG. 6 is an example of an automatically generated preliminary
dialogue
tree according to one embodiment of the present invention. The example
dialogue
tree alternates between agent layers (Layers 0 and 2) and customer layers
(Layer 1),
however embodiments of the present invention are not limited thereto and may
generate trees having more than three layers. In FIG. 6, the nodes of the
agent
layers are labeled with the letter A and the nodes of the customer layer are
labeled
with the letter C. Layer 0 includes only node A1 and includes three outgoing
edges to
the three nodes of Layer 1: C1, C2, and C3. The nodes of Layer 1 correspond to
different types of responses that are observed from a customer. Layer 2
includes the
nodes A2, A3, A4, A5, A6, and A7. Two edges connect node C1 to nodes A2 and
A3,
respectively. Similarly, three edges connect node C3 to nodes Ay, A6, and A7,
respectively and one edge connects node C2 to node A4. Nodes A2 and A3 are
grouped together and nodes A5, Ay, and A7 are grouped together, as indicated
by the
ovals drawn around these nodes. In particular, this indicates that the content
of
nodes A2 and A3 may be merged together and the content of nodes A5, A6, and A7
may be merged. The merged nodes may have substantially different content. For
example, if node C1 corresponded to the customer statement: "I want to book a
flight," then node A2 might be correspond to the agent response: "Where would
you
like to go?" and node A3 might correspond to the agent response: "When do you
want to depart?" As such, according to some embodiments of the present
invention,
during the design process, the system designer may select a particular one of
the
nodes to be included in the final dialogue tree. The nodes may be selected
based on
one or more criteria, such as duration of the dialogue, successful completion,
and
customer satisfaction.
23

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [00129] The generation of the dialogue tree (DialogueTreeMiner) in
operation 374
may be represented by the following pseudocode, where a is the current prefix
pattern (e.g., a sequence of clusters), si,is the PDB with prefix a, side(x)
is the side
A or C of cluster id x, last(a) is the last cluster id in prefix a, and sup(c)
is the
support for c in relation to the PDB SL.
DialoguerreeMiner(Prefix a,PDB S, Tree T)
a. Scan Si, and find frequent clusters
F = (cluster xisideGr.) side(lastW) A sup(x)L kl
b. For each b F
i. a= a a b // Concatenation of a and b
ii. Build PDB Sr
SubTree DialogueTreeMineKar, S, T)
iv. CreateNode(u)
v. Extend T by connecting SubTree as a child to the current parent
node a
c. Return T
[00130] The process may begin by making the initial function call:
D ialagueTre eMiner(E , 5, EmptyTree)
where S is the whole sequence database (SDB), e is the empty string, and
last(c) is
defined as C, and EmptyTree is a tree initialized with an E node.
[00131] The result of running the DialogueTreeMiner is a tree T where all of
its
paths have support k and have a dialogue structure of A¨)C¨A¨>C.
Alternatively,
the tree T can be considered as containing all of the paths with those
characteristics
from the SDB.
24

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [00132] In operation 380, the automated self-help configuration module 45
then
supplies the resulting tree T to the user interface 45b. The system designer
may then
review the resulting tree to choose a root node, e.g., the phrase that the
automated
agent of the IMR 34 should start with. Generally, the root is the most
frequent one of
the clusters having the highest support, such as a "greeting" cluster. The
system
designer may supply user input 377 to generate the final tree in operation
390.
[00133] In another embodiment of the present invention, the system designer
identifies the root node before running the DialogueTreeMiner process and,
instead,
supplies the selected root node to DialogueTreeMiner, e.g., by making the
initial
function call:
DialogueTreeMiner("Greeting",S,CreateNode("Greeting"))
[00134] In operation 390, the resulting tree T is used to design the final
agent
nodes and caller transitions based on additional user input 377 from the
system
designer. Generally, agent cluster nodes (that are child nodes to customer
cluster
nodes) correspond to different possibilities for what the automated agent may
say in
the dialogue. These groups of clusters are merged by the designer to build a
response for the agent side at that point of an interaction. For example, in
one
embodiment the agent nodes are merged into Voice-XML entries representing the
current menu.
[00135] Caller cluster nodes (that are children of an agent cluster node)
correspond to the different possibilities for what a customer can say in the
self-help
system dialogue. This group of clusters may be used by the designer to build a
grammar for recognizing the various typical forms of user input in the
interaction at
this point in the interaction and, in one embodiment, are merged into a GRXML
grammar representing the various grammars, where each slot in the GRXML
corresponds to a different customer cluster and each customer cluster
determines
the routing for the next dialogue by directing to the appropriate descendent
in the
tree (see, e.g., the three customer nodes C1, C2, and C3 in Layer 1 of FIG. 6
with
corresponding descendent nodes in Layer 2).
[00136] FIG. 7 illustrates a resulting dialogue tree generated in operation
390
based on the tree shown in FIG. 6 and based on user input 377, where the agent
nodes Az, A3, A4, A5, A6, and A7 are replaced with merged agent nodes A2-FA3,
A4,
and A5+A6+A7 and the customer nodes C1, C2, and C3 are replaced with labeled
edges corresponding to the grammars (e.g., GRXML grammars) developed for each
of these nodes.
Automatic dialogue expansion
[00137] One aspect of embodiments of the present invention is directed to
systems
and methods for assisting a system designer in building a rich dialogue tree
that

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 covers the different routes that a customer may potentially choose during
the
interaction. These techniques may also be used to improve or optimize existing
self-
help systems.
[00138] FIG. 8 is a flowchart illustrating a method 800 for performing
automatic
dialogue expansion according to one embodiment of the present invention.
[00139] According to one embodiment of the present invention, the dialogue
expansion module 45e of the automated self-help system configuration module 45
applies systems and techniques described in U.S. Patent Application No.
14/586,730
"System and Method for Interactive Multi-Resolution Topic Detection and
Tracking"
to all of the available recorded interactions in operation 810 to detect
topics within
the recorded interactions.
[00140] In operation 830, one or more input phrases are received. These input
phrases may be, for example, phrases found in an existing dialogue tree or may
be
phrases that are input by a system designer via the user interface 45b while
the user
is designing or modifying a dialogue tree.
[00141] For each of the received input phrases, in operation 850 the automated
self-help configuration module identifies a list of one or more probable
clusters
corresponding to the phrase (e.g., based on computing semantic distances
between
the input phrase and each of the clusters and identifying clusters having a
semantic
distance below a threshold). The identified clusters may then be inserted into
the
dialogue tree as expansions of the existing grammars according to the
sequences
extracted in the automatic dialogue tree generation process described above,
thereby allowing the self-help system to recognize a wide range of possible
customer
responses, as mined from previously recorded interactions.
[00142] The identified clusters may also be displayed to the system designer
via
the user interface 45b in order for the system designer to decide whether or
not it
would be appropriate to expand particular phrases in the dialogue tree to
include the
identified clusters.
[00143] The suggested clusters may be added by adding the grammar (e.g.,
GRXML) for the cluster to the customer response edges of the dialogue tree.
The
grammars may be associated with the most probable clusters extracted by the
pattern mining process described above.
[00144] The system designer may also choose to add more than one cluster,
thereby providing the user with multiple possible paths from the current agent
node
to the next dialogue layer, thereby further enlarging the dialogue graph.
[00145] According to one embodiment of the present invention, when a system
designer adds a grammar for a customer response, the automated self-help
system
configuration module 45 may also suggest possible paths of agent phrases to
follow,
26

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 based on the sequences and patterns extracted from the recorded
interactions. For
example, if the system designer adds a customer edge for receiving a credit
card
number, the automated self-help system configuration module 45 may suggest
that
the agent ask for a credit card expiration date if the automated self-help
system
configuration module 45 detected the pattern "credit card number," "request
for
expiration date," and "expiration date" in many of the recorded interactions.
[00146] If the system designer inserts a new phrase to be spoken by the
automated self-help system of the IMR 34 (e.g., a text phrase to be processed
by a
text-to-speech module) as part of the VoiceXML, then the dialogue expansion
module 45e may generate one or more alternative phrases that may be used
instead
of the inserted phrase. These alternative phrases may be generated by
identifying
the cluster that is closest to the new phrase and providing the phrases found
in that
cluster.
[00147] In operation 870, the automated self-help configuration module 45
modifies the dialogue tree based on, for example, the detected clusters
matching
phrases and/or based on the input from the system designer and returns the
updated
dialogue tree.
[00148] According to another embodiment of the present invention, a dialogue
can
be expanded from a certain point x by mining a tree rooted at this point x by
calling
D ialogueTreeM iner(" X", 5,CreateNode(":sr))
thereby resulting in a whole new subtree of options that can be concatenated
to the
current dialogue after processing.
[00149] FIG. 9 is a diagram illustrating a process according to one embodiment
of
the present invention for a system designer to add an agent node to a dialogue
tree.
FIG. 10 is a screenshot of a user interface providing suggested alternative
agent
phrases according to one embodiment of the present invention. As seen in FIGS.
9
and 10, the system designer enters the input phrase 1010 "Please state your
destination" using the user interface module 45b to create a new node. The
automated self-help system configuration module 45 suggests the semantically
equivalent phrases 1020 "Where do you want to go?" "What is your destination?"
and "Please choose a destination" by matching the input phrase "Please state
your
destination" with the closest matching cluster (e.g. "Cluster A"). The system
designer
can then select from these alternatives based on which phrase is used most
frequently or which phrase sounds the most natural or comfortable.
[00150] Referring to FIG. 9, the automated self-help system configuration
module
may also automatically suggest probable customer response clusters. FIG. 11 is
a screenshot of a user interface providing suggested grammars based on the
27

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 provided input according to one embodiment of the present invention. For
example,
after determining that the input phrase "Please state your destination"
corresponds to
cluster A and assuming that the previous mining of the recorded interactions
determines that cluster B, where the customer provides a destination, is the
most
probable cluster to follow cluster A, the automated self-help system
configuration
module 45 may suggest adding a grammar 1120 (e.g., GRXML) for matching
"destinations."
[00151] As such, aspects of embodiments of the present invention provide
systems and methods for automatically mining recorded interactions to detect
frequent patterns of interactions between customers and agents and to use the
result
of the mining process to assist system designers in designing and customizing
a
dialogue true for an automated self-help system by suggesting alternative
phrases
on the agent side, likely grammars on the customer side, and likely sequences
of
agent and customer clusters in the dialogue tree.
Dialogue flow optimization
[00152] As discussed above, when the automated self-help configuration module
45 suggests clusters or phrases to a system designer, the system designer may
select an appropriate next cluster in the dialogue tree based on his or her
judgment.
[00153] Some aspects of embodiments of the present invention are directed to a
smart filtering framework for creating an optimized dialogue by filtering the
input data
according to one or more of criteria (e.g., based on the similarity function
and
clustering described below) in order to improve or optimize the dialogue flow.
These
criteria may include, for example: overall interaction time (or interaction
length), ease
of use (e.g., sequences appearing more frequently in the recorded
interactions),
success rate, and combinations thereof. After filtering the data, the
Dialogue TreeMiner process described above may be applied to the filtered
input,
resulting in a dialogue tree (DT) that is adjusted (e.g., improved or
optimized) based
on the chosen criteria (e.g., interaction length, success rate, and customer
satisfaction). The Dialogue TreeMiner process can be used to define a dialogue
tree
system from scratch or to expand an existing dialogue tree system as described
above in the section "Automatic Dialogue Expansion."
[00154] Some aspects of embodiments of the present invention are directed to
automatically or semi-automatically choosing the paths of the output dialogue
tree
given a raw tree output from the Dialogue TreeMiner process, where the choice
of the
best path may be determined, in part, by optimization criteria such as
interaction
length, success rate, and customer satisfaction.
[00155] In addition, other aspects of embodiments of the present invention are
directed to providing a personalized interaction experience with the automated
self-
28

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 help system, where the interaction is personalized in real-time based on
the caller's
characteristics such as gender, age, location, and other information known
about the
customer. This may also be done dynamically during the call, for instance, by
detecting the gender of the customer automatically during the call (see, e.g.,
GDNN
¨ A Gender Dependent Neural Network for Continuous Speech Recognition [Konig,
et al 1991]).
[00156] According to one embodiment of the present invention, when the system
the automated self-help configuration module 45 suggests, via the user
interface
45b, different paths (e.g., nodes and edges) to add to a dialogue tree, where
the
suggestions are sorted by each of the criteria or combinations thereof (e.g.,
a linear
combination of the criteria).
[00157] FIG. 12A is a schematic diagram of a process for clustering,
filtering, and
mining interactions 1282 to generate a dialogue tree according to one
embodiment
of the present invention. In order to perform filtering on the set of
sequences of
cluster ids to filter out unwanted interactions without losing the semantic
topics
discussed in the data set. Generally, this involves representing each
interaction at a
higher semantic level (e.g., representing the interactions with a low
dimensional bag
of clusters assigned for each interaction), defining a similarity function
operating in
the space of this higher semantic level, applying the similarity function to
cluster the
interactions into subsets 1284, each subset corresponding to interactions with
different semantic content, and filtering each of the subsets independently by
taking
the top percentiles of data from each subset and combining the subsets
together
(oval 1286). The combined, filtered interactions 1288 may then be supplied to
the
Dialogue TreeMiner process 370 to generate a dialogue tree 1290.
[00158] FIG. 12B is a flowchart illustrating a method 1200 for rating the
performance of various sequences in more detail. In operation 1210, the
recorded
interactions are analyzed to represent each interaction as a feature vector v
or "bag
of clusters" (where the kth interaction may be represented by the feature
vector vk)
that corresponds to the clusters contained in the interaction. For example,
interactions that relate to booking a flight will include phrases from a first
set of
clusters while interactions containing phrases that relate to changing a
password will
include phrases from a second, different set of clusters.
[00159] In operation 1230, the similarities between pairs of feature vectors
(vi, v2)
are computed to generate a set of feature vector similarities. Similar
interactions
(e.g., interactions having a similarity above a threshold) are grouped
together in
operation 1250 and the interactions in each group are rated based on the given
criteria in operation 1270 (e.g., the interactions can be ranked within each
group).
29

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [00160] When rating sequences of clusters based on criteria that do not
depend on
success rate, such as interaction time and ease of use, only successful
interactions
are analyzed. On the other hand, when rating sequences based on success rate,
all
interactions are analyzed because the success rate is calculated based on:
tfSnecessful interactions
If Success ful interactions + ffUnsuccessful interactions
[00161] FIG. 120 is a flowchart of a method for computing similarity between
two
bags of clusters (v1, v2) according to one embodiment of the present
invention. (In
the below discussion vi denotes cluster] in bag of clusters i.)
[00162] In operation 1232, the automated self-help configuration module
initializes
the similarity D between v1 and v2 by summing up the number of clusters which
appear in both interactions. In other words, by computing the dot product
between
the two binary vectors of the bags of clusters:
D(,i, v2) =
[00163] In operation 1234, clusters appearing in one feature vector but not
the
other are accounted for by adding an adjustment term d for the cluster ci that
is not in
common, where d(ci,vp) is defined as:
max Cosine Similarity (IV ord2Vec(cluster 1abel(ci)),Word2Vec (cluster
label(v1)1
P
[00164] This procedure may be performed for every cluster ci detected in the
recorded interactions such that the similarity D(vi,v2) is updated according
to:
E and ci e -22) then D(vi, v2) = D(vi,-1.72) d (ci,v2)
else if (ci vi and c1 e v2) then D(7.71,172) = D(vi, v7) + cl(ciõ vt)
[00165] After summing up all of the similarities, in operation 1236 the
computed
similarity D(vi, v2) can be normalized by the vector size to get a value
between 0 and
1:
D(vi, v2)
D(vi., v2) = maxavilivzp
[00166] Bags of clusters with high similarity (e.g., above a threshold T) are
then
considered to be similar interactions in operation 1250. As such, given the
entire set
of interactions and the similarity function above, the set of interactions can
be
clustered using a document clustering method such as the one described in U.S.
Patent Application No. 13/952,470, incorporated by reference above, thereby

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 resulting in subsets of interactions, where each interaction is a subset
of interactions
that are similar to one another at a higher, semantic level.
[00167] The rated interactions, sorted into groups, may then be filtered and
then
presented to the system designer to aid in the design of the dialogue tree
based on
the suggestions. The filtered interactions can be feeded to the DTM algorithm
for
getting a tree pattern, or to a sequence mining algorithm for getting specific
suggestions.
[00168] The filtering may be performed according to some optimization criteria
specified by the system designer. The criteria may include, for example, time
for
resolution by organizing the interactions by time to resolution of issue and
identifying
the low percentiles. The criteria may also include identify interactions
exceeding a
threshold level of success as determined, for example, looking for features of
a call
that indicate customer sentiment such as the presence of the "satisfaction"
topic, the
absence of the "dissatisfaction" topic, a manual review of the interaction, or
the result
of a customer survey (e.g., ratings on a scale of 1-5 and averaging the
ratings
across multiple interactions) or by using a repeated call (e.g., a customer
calling
again within a short time of a previous call) to identify customer
dissatisfaction.
[00169] For example, in the case of improving the tree by attempting to reduce
the
amount of time spent for each interaction, all of the feature vectors
corresponding to
a particular desired path through the dialogue tree are presented to the
designer,
sorted by average time to completion of the interaction (e.g., average
duration of
interaction). For example, if the system designer is designing a portion of
the
dialogue tree for booking flights, a group of sequences for previous
interactions
corresponding to the booking of a flight may be presented and sorted based on
average resolution time for the particular sequence of clusters (e.g.,
interactions in
which the agent asked for "departure city," "destination city," and "dates of
travel," in
the stated order, may be in the same group as interactions in which the agent
asked
for "dates of travel" before asking for "departure city" and "destination
city," but may
be represented as a different sequence).
[00170] As another example, when "popularity" or "frequency" is the selected
criterion, it is assumed that routes or sequences of clusters that are used
more
frequently in interactions between customers and human agents correspond to
the
more common and comfortable patterns for the dialogue tree. Based on this
example, instead of sorting the sequences by the average duration of the
interaction,
the sequences may be sorted by the frequency with which they appear in the
recorded interactions and a designer may choose the more popular sequences for
the dialogue tree because these may be the most comfortable or familiar for a
user.
31

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 [00171] As a third example, the sequences may be sorted by their success
rates,
e.g., the fraction of interactions that resulted in a successful completion of
the issue
raised by the customer, such as booking a flight or changing a password. A
designer
may then choose the sequences that, in the past, have more frequently led to
successful outcomes.
[00172] In another embodiment of the present invention, instead of presenting
suggestions for the system designer to choose from, the system may
automatically
choose the agent clusters and sequences according to the optimization criteria
(e.g.,
based on the shortest interaction time).
[00173] In some embodiments of the present invention, the dialogue tree is
automatically personalized based on characteristics of the customer. Customers
interacting with a contact center can be very different from one another. For
example, during interactions with a self-help system of a health care service,
a 21
year old woman may typically have very different interests and concerns than
that of
a 75 year old man (e.g., 21 year old woman is likely less interested in
geriatric
services than the 75 year old man).
[00174] According to one embodiment of the present invention, a plurality of
dialogue trees are generated, where each tree may be customized for particular
types of customers. When the customer begins an interaction with the self-help
system, the self-help system uses a set of features that are known about the
customer and that are relevant to the personalization process (e.g., age,
gender,
location, previous interactions, owned products, and previously used services)
to
identify and assign the corresponding dialogue tree.
[00175] The set of features can be made available through an existing customer
relationship management (CRM) system or by active input from the customer, or
by
automatically extracting this information from other metadata (e.g.,
geolocation
services on the device used by the customer).
[00176] To generate the various customized dialogue trees, each recorded
interaction is a assigned a set of personalization features based on known
information about the customer involved in that interaction. The
personalization
features associated with the recorded interactions may be used during a pre-
filtering
stage to create several partitions of the recorded interactions, grouped by
similar
personalization features. From each partition (e.g., each group of subsets), a
dialogue tree is mined, thereby generating multiple dialogue trees--one for
each
partition of the recorded interactions. For example, the recorded interactions
may be
partitioned by age and gender for customers under 18 years, 18-28 year old
males,
18-28 year old females, 29-45 year old males, 29-45 year old females, 45-60
year
old males, 45-60 year old females, etc. Geographic location may also be
32

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 incorporated in a similar manner. At runtime (e.g., at the beginning of
an interaction),
the features identified for the current customer are used to select a dialogue
tree
suitable for the current customer's properties from the set of possible
dialogue trees.
[00177] According to another embodiment of the present invention, the best
route
for a particular customer is chosen in real time (e.g., during the
interaction) from a
shared dialogue tree based on the personal features of the customer. This
embodiment may be used in situations where there are insufficient recorded
interactions to generate separate dialogue trees for each partition and
therefore a
dialogue tree is generated for multiple partitions (e.g., a dialogue tree is
shared
between different groups of customers). During an interaction, nodes of the
shared
dialogue tree are chosen in real time based on the customer's features. For
example, referring back to FIG. 6, if the interaction is current at node C3,
and most
successful interactions with customers having a profile similar to the current
customer (e.g., male with an age in the range 18-28) proceed with agent path
A6,
then agent response A6 is automatically selected by the IMR 34 from among the
possible agent nodes A5, AB, and A7 that are connected to C3. Generally, each
agent
node may be associated with a personalization feature vector (e.g.,
distributions of
ages, distributions of genders, and distributions of locations) and the choice
of the
agent node for the current interaction is made by the IMR 34 by comparing
features
known about the current customer with the feature vectors associated with the
agent
nodes.
[00178] In some embodiments of the present invention, the features are
compared
in a particular order until a single agent node is identified. For example,
the location
maybe compared first, then gender, and then age. In other embodiments of the
present invention, a current customer feature vector f is compared to cluster
feature
distributions c of each of the agent nodes to determine a distance between the
features f of the current customer and mean feature vectors of each of the
cluster
feature distributions c and an agent node is selected based on the smallest
distance.
[00179] As such, aspects of embodiments of the present can provide a system
designer with suggestions on which of a set of options to use in a dialogue
tree,
based on information mined from previous recorded interactions, thereby
reducing
the degree to which the system designer must rely on assumptions or intuition
alone.
Computing devices
[00180] As described herein, various applications and aspects of the present
invention may be implemented in software, firmware, hardware, and combinations
thereof. When implemented in software, the software may operate on a general
purpose computing device such as a server, a desktop computer, a tablet
computer,
33

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 a smartphone, or a personal digital assistant. Such a general purpose
computer
includes a general purpose processor and memory.
[00181] Each of the various servers, controllers, switches, gateways, engines,
and/or modules (collectively referred to as servers) in the afore-described
figures
may be a process or thread, running on one or more processors, in one or more
computing devices 1500 (e.g., FIG. 13A, FIG. 13B), executing computer program
instructions and interacting with other system components for performing the
various
functionalities described herein. The computer program instructions are stored
in a
memory which may be implemented in a computing device using a standard memory
device, such as, for example, a random access memory (RAM). The computer
program instructions may also be stored in other non-transitory computer
readable
media such as, for example, a CD-ROM, flash drive, or the like. Also, a person
of
skill in the art should recognize that a computing device may be implemented
via
firmware (e.g. an application-specific integrated circuit), hardware, or a
combination
of software, firmware, and hardware. A person of skill in the art should also
recognize that the functionality of various computing devices may be combined
or
integrated into a single computing device, or the functionality of a
particular
computing device may be distributed across one or more other computing devices
without departing from the scope of the exemplary embodiments of the present
invention. A server may be a software module, which may also simply be
referred to
as a module. The set of modules in the contact center may include servers, and
other modules.
[00182] The various servers may be located on a computing device on-site at
the
same physical location as the agents of the contact center or may be located
off-site
(or in the cloud) in a geographically different location, e.g., in a remote
data center,
connected to the contact center via a network such as the Internet. In
addition, some
of the servers may be located in a computing device on-site at the contact
center
while others may be located in a computing device off-site, or servers
providing
redundant functionality may be provided both via on-site and off-site
computing
devices to provide greater fault tolerance. In some embodiments of the present
invention, functionality provided by servers located on computing devices off-
site
may be accessed and provided over a virtual private network (VP N) as if such
servers were on-site, or the functionality may be provided using a software as
a
service (SaaS) to provide functionality over the internet using various
protocols, such
as by exchanging data using encoded in extensible markup language (XML) or
JavaScript Object notation (JSON).
[00183] FIG. 13A¨FIG. 13B depict block diagrams of a computing device 1500 as
may be employed in exemplary embodiments of the present invention. Each
34

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 computing device 1500 includes a central processing unit 1521 and a main
memory
unit 1522. As shown in FIG. 13A, the computing device 1500 may also include a
storage device 1528, a removable media interface 1516, a network interface
1518,
an input/output (I/O) controller 1523, one or more display devices 1530c, a
keyboard
1530a and a pointing device 1530b, such as a mouse. The storage device 1528
may
include, without limitation, storage for an operating system and software. As
shown
in FIG. 13B, each computing device 1500 may also include additional optional
elements, such as a memory port 1503, a bridge 1570, one or more additional
input/output devices 1530d, 1530e and a cache memory 1540 in communication
with
the central processing unit 1521. The input/output devices 1530a, 1530b,
1530d, and
1530e may collectively be referred to herein using reference numeral 1530.
[00184] The central processing unit 1521 is any logic circuitry that responds
to and
processes instructions fetched from the main memory unit 1522. It may be
implemented, for example, in an integrated circuit, in the form of a
microprocessor,
microcontroller, or graphics processing unit (GPU), or in a field-programmable
gate
array (FPGA) or application-specific integrated circuit (ASIC). The main
memory unit
1522 may be one or more memory chips capable of storing data and allowing any
storage location to be directly accessed by the central processing unit 1521.
As
shown in FIG. 13A, the central processing unit 1521 communicates with the main
memory 1522 via a system bus 1550. As shown in FIG. 13B, the central
processing
unit 1521 may also communicate directly with the main memory 1522 via a memory
port 1503.
[00185] FIG. 13B depicts an embodiment in which the central processing unit
1521
communicates directly with cache memory 1540 via a secondary bus, sometimes
referred to as a backside bus. In other embodiments, the central processing
unit
1521 communicates with the cache memory 1540 using the system bus 1550. The
cache memory 1540 typically has a faster response time than main memory 1522.
As shown in FIG. 13A, the central processing unit 1521 communicates with
various
I/O devices 1530 via the local system bus 1550. Various buses may be used as
the
local system bus 1550, including a Video Electronics Standards Association
(VESA)
Local bus (VLB), an Industry Standard Architecture (ISA) bus, an Extended
Industry
Standard Architecture (EISA) bus, a MicroChannel Architecture (MCA) bus, a
Peripheral Component Interconnect (PCI) bus, a PCI Extended (PCI-X) bus, a PCI-
Express bus, or a NuBus. For embodiments in which an I/O device is a display
device 1530c, the central processing unit 1521 may communicate with the
display
device 1530c through an Advanced Graphics Port (AGP). FIG. 13B depicts an
embodiment of a computer 1500 in which the central processing unit 1521
communicates directly with I/O device 1530e. FIG. 13B also depicts an
embodiment

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 in which local busses and direct communication are mixed: the central
processing
unit 1521 communicates with I/O device 1530d using a local system bus 1550
while
communicating with I/O device 1530e directly.
[00186] A wide variety of I/O devices 1530 may be present in the computing
device
1500. Input devices include one or more keyboards 1530a, mice, trackpads,
trackballs, microphones, and drawing tablets. Output devices include video
display
devices 1530c, speakers, and printers. An I/O controller 1523, as shown in
FIG. 13A,
may control the I/O devices. The I/O controller may control one or more I/O
devices
such as a keyboard 1530a and a pointing device 1530b, e.g., a mouse or optical
pen.
[00187] Referring again to FIG. 13A, the computing device 1500 may support one
or more removable media interfaces 1516, such as a floppy disk drive, a CD-ROM
drive, a DVD-ROM drive, tape drives of various formats, a USB port, a Secure
Digital
or COMPACT FLASHTM memory card port, or any other device suitable for reading
data from read-only media, or for reading data from, or writing data to, read-
write
media. An I/O device 1530 may be a bridge between the system bus 1550 and a
removable media interface 1516.
[00188] The removable media interface 1516 may for example be used for
installing software and programs. The computing device 1500 may further
include a
storage device 1528, such as one or more hard disk drives or hard disk drive
arrays,
for storing an operating system and other related software, and for storing
application software programs. Optionally, a removable media interface 1516
may
also be used as the storage device. For example, the operating system and the
software may be run from a bootable medium, for example, a bootable CD.
[00189] In some embodiments, the computing device 1500 may include or be
connected to multiple display devices 1530c, which each may be of the same or
different type and/or form. As such, any of the I/O devices 1530 and/or the
I/O
controller 1523 may include any type and/or form of suitable hardware,
software, or
combination of hardware and software to support, enable or provide for the
connection to, and use of, multiple display devices 1530c by the computing
device
1500. For example, the computing device 1500 may include any type and/or form
of
video adapter, video card, driver, and/or library to interface, communicate,
connect,
or otherwise use the display devices 1530c. In one embodiment, a video adapter
may include multiple connectors to interface to multiple display devices
1530c. In
other embodiments, the computing device 1500 may include multiple video
adapters,
with each video adapter connected to one or more of the display devices 1530c.
In
some embodiments, any portion of the operating system of the computing device
1500 may be configured for using multiple display devices 1530c. In other
36

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 embodiments, one or more of the display devices 1530c may be provided by
one or
more other computing devices, connected, for example, to the computing device
1500 via a network. These embodiments may include any type of software
designed
and constructed to use the display device of another computing device as a
second
display device 1530c for the computing device 1500. One of ordinary skill in
the art
will recognize and appreciate the various ways and embodiments that a
computing
device 1500 may be configured to have multiple display devices 1530c.
[00190] A computing device 1500 of the sort depicted in FIG. 13A¨FIG. 13B may
operate under the control of an operating system, which controls scheduling of
tasks
and access to system resources. The computing device 1500 may be running any
operating system, any embedded operating system, any real-time operating
system,
any open source operating system, any proprietary operating system, any
operating
systems for mobile computing devices, or any other operating system capable of
running on the computing device and performing the operations described
herein.
[00191] The computing device 1500 may be any workstation, desktop computer,
laptop or notebook computer, server machine, handheld computer, mobile
telephone
or other portable telecommunication device, media playing device, gaming
system,
mobile computing device, or any other type and/or form of computing,
telecommunications or media device that is capable of communication and that
has
sufficient processor power and memory capacity to perform the operations
described
herein. In some embodiments, the computing device 1500 may have different
processors, operating systems, and input devices consistent with the device.
[00192] In other embodiments the computing device 1500 is a mobile device,
such
as a Java-enabled cellular telephone or personal digital assistant (PDA), a
smart
phone, a digital audio player, or a portable media player. In some
embodiments, the
computing device 1500 includes a combination of devices, such as a mobile
phone
combined with a digital audio player or portable media player.
[00193] As shown in FIG. 13C, the central processing unit 1521 may include
multiple processors P1, P2, P3, P4, and may provide functionality for
simultaneous
execution of instructions or for simultaneous execution of one instruction on
more
than one piece of data. In some embodiments, the computing device 1500 may
include a parallel processor with one or more cores. In one of these
embodiments,
the computing device 1500 is a shared memory parallel device, with multiple
processors and/or multiple processor cores, accessing all available memory as
a
single global address space. In another of these embodiments, the computing
device
1500 is a distributed memory parallel device with multiple processors each
accessing local memory only. In still another of these embodiments, the
computing
device 1500 has both some memory which is shared and some memory which may
37

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 only be accessed by particular processors or subsets of processors. In
still even
another of these embodiments, the central processing unit 1521 includes a
multicore
microprocessor, which combines two or more independent processors into a
single
package, e.g., into a single integrated circuit (IC). In one exemplary
embodiment,
depicted in FIG. 13D, the computing device 1500 includes at least one central
processing unit 1521 and at least one graphics processing unit 1521'.
[00194] In some embodiments, a central processing unit 1521 provides single
instruction, multiple data (SIMD) functionality, e.g., execution of a single
instruction
simultaneously on multiple pieces of data. In other embodiments, several
processors
in the central processing unit 1521 may provide functionality for execution of
multiple
instructions simultaneously on multiple pieces of data (MIMD). In still other
embodiments, the central processing unit 1521 may use any combination of SIMD
and MIMD cores in a single device.
[00195] A computing device may be one of a plurality of machines connected by
a
network, or it may include a plurality of machines so connected. FIG. 13E
shows an
exemplary network environment. The network environment includes one or more
local machines 1502a, 1502b (also generally referred to as local machine(s)
1502,
client(s) 1502, client node(s) 1502, client machine(s) 1502, client
computer(s) 1502,
client device(s) 1502, endpoint(s) 1502, or endpoint node(s) 1502) in
communication
with one or more remote machines 1506a, 1506b, 1506c (also generally referred
to
as server machine(s) 1506 or remote machine(s) 1506) via one or more networks
1504. In some embodiments, a local machine 1502 has the capacity to function
as
both a client node seeking access to resources provided by a server machine
and as
a server machine providing access to hosted resources for other clients 1502a,
1502b. Although only two clients 1502 and three server machines 1506 are
illustrated in FIG. 13E, there may, in general, be an arbitrary number of
each. The
network 1504 may be a local-area network (LAN), e.g., a private network such
as a
company Intranet, a metropolitan area network (MAN), or a wide area network
(WAN), such as the Internet, or another public network, or a combination
thereof.
[00196] The computing device 1500 may include a network interface 1518 to
interface to the network 1504 through a variety of connections including, but
not
limited to, standard telephone lines, local-area network (LAN), or wide area
network
(WAN) links, broadband connections, wireless connections, or a combination of
any
or all of the above. Connections may be established using a variety of
communication protocols. In one embodiment, the computing device 1500
communicates with other computing devices 1500 via any type and/or form of
gateway or tunneling protocol such as Secure Socket Layer (SSL) or Transport
Layer Security (TLS). The network interface 1518 may include a built-in
network
38

CA 03005324 2018-05-14
WO 2017/070257 PCT/US2016/057775
1 adapter, such as a network interface card, suitable for interfacing the
computing
device 1500 to any type of network capable of communication and performing the
operations described herein. An I/O device 1530 may be a bridge between the
system bus 1550 and an external communication bus.
[00197] According to one embodiment, the network environment of FIG. 13E may
be a virtual network environment where the various components of the network
are
virtualized. For example, the various machines 1502 may be virtual machines
implemented as a software-based computer running on a physical machine. The
virtual machines may share the same operating system. In other embodiments,
different operating system may be run on each virtual machine instance.
According
to one embodiment, a "hypervisor" type of virtualization is implemented where
multiple virtual machines run on the same host physical machine, each acting
as if it
has its own dedicated box. Of course, the virtual machines may also run on
different
host physical machines.
[00198] Other types of virtualization is also contemplated, such as, for
example,
the network (e.g. via Software Defined Networking (SD N)). Functions, such as
functions of the session border controller and other types of functions, may
also be
virtualized, such as, for example, via Network Functions Virtualization (NFV).
[00199] While the present invention has been described in connection with
certain
exemplary embodiments, it is to be understood that the invention is not
limited to the
disclosed embodiments, but, on the contrary, is intended to cover various
modifications and equivalent arrangements included within the spirit and scope
of
the appended claims, and equivalents thereof.
30
39

Dessin représentatif
Une figure unique qui représente un dessin illustrant l'invention.
États administratifs

2024-08-01 : Dans le cadre de la transition vers les Brevets de nouvelle génération (BNG), la base de données sur les brevets canadiens (BDBC) contient désormais un Historique d'événement plus détaillé, qui reproduit le Journal des événements de notre nouvelle solution interne.

Veuillez noter que les événements débutant par « Inactive : » se réfèrent à des événements qui ne sont plus utilisés dans notre nouvelle solution interne.

Pour une meilleure compréhension de l'état de la demande ou brevet qui figure sur cette page, la rubrique Mise en garde , et les descriptions de Brevet , Historique d'événement , Taxes périodiques et Historique des paiements devraient être consultées.

Historique d'événement

Description Date
Inactive : CIB expirée 2023-01-01
Lettre envoyée 2022-11-14
Inactive : Transferts multiples 2022-09-29
Lettre envoyée 2021-06-15
Accordé par délivrance 2021-06-15
Inactive : Octroit téléchargé 2021-06-15
Inactive : Octroit téléchargé 2021-06-15
Inactive : Page couverture publiée 2021-06-14
Préoctroi 2021-04-21
Inactive : Taxe finale reçue 2021-04-21
Un avis d'acceptation est envoyé 2021-02-11
Lettre envoyée 2021-02-11
Un avis d'acceptation est envoyé 2021-02-11
Inactive : Q2 réussi 2021-01-28
Inactive : Approuvée aux fins d'acceptation (AFA) 2021-01-28
Représentant commun nommé 2020-11-07
Inactive : COVID 19 - Délai prolongé 2020-07-16
Inactive : COVID 19 - Délai prolongé 2020-07-02
Modification reçue - modification volontaire 2020-06-19
Inactive : COVID 19 - Délai prolongé 2020-06-10
Rapport d'examen 2020-02-25
Inactive : Rapport - CQ échoué - Mineur 2020-02-19
Inactive : CIB expirée 2020-01-01
Représentant commun nommé 2019-10-30
Représentant commun nommé 2019-10-30
Modification reçue - modification volontaire 2019-09-05
Inactive : Dem. de l'examinateur par.30(2) Règles 2019-03-11
Inactive : Rapport - Aucun CQ 2019-03-06
Inactive : Page couverture publiée 2018-06-13
Inactive : Acc. récept. de l'entrée phase nat. - RE 2018-05-28
Inactive : CIB en 1re position 2018-05-23
Lettre envoyée 2018-05-23
Lettre envoyée 2018-05-23
Lettre envoyée 2018-05-23
Inactive : CIB attribuée 2018-05-23
Inactive : CIB attribuée 2018-05-23
Inactive : CIB attribuée 2018-05-23
Demande reçue - PCT 2018-05-23
Exigences pour l'entrée dans la phase nationale - jugée conforme 2018-05-14
Exigences pour une requête d'examen - jugée conforme 2018-05-14
Toutes les exigences pour l'examen - jugée conforme 2018-05-14
Demande publiée (accessible au public) 2017-04-27

Historique d'abandonnement

Il n'y a pas d'historique d'abandonnement

Taxes périodiques

Le dernier paiement a été reçu le 2020-10-05

Avis : Si le paiement en totalité n'a pas été reçu au plus tard à la date indiquée, une taxe supplémentaire peut être imposée, soit une des taxes suivantes :

  • taxe de rétablissement ;
  • taxe pour paiement en souffrance ; ou
  • taxe additionnelle pour le renversement d'une péremption réputée.

Les taxes sur les brevets sont ajustées au 1er janvier de chaque année. Les montants ci-dessus sont les montants actuels s'ils sont reçus au plus tard le 31 décembre de l'année en cours.
Veuillez vous référer à la page web des taxes sur les brevets de l'OPIC pour voir tous les montants actuels des taxes.

Historique des taxes

Type de taxes Anniversaire Échéance Date payée
Enregistrement d'un document 2018-05-14
Taxe nationale de base - générale 2018-05-14
Requête d'examen - générale 2018-05-14
Rétablissement (phase nationale) 2018-05-14
TM (demande, 2e anniv.) - générale 02 2018-10-19 2018-09-26
TM (demande, 3e anniv.) - générale 03 2019-10-21 2019-09-23
TM (demande, 4e anniv.) - générale 04 2020-10-19 2020-10-05
Taxe finale - générale 2021-06-11 2021-04-21
TM (brevet, 5e anniv.) - générale 2021-10-19 2021-10-14
Enregistrement d'un document 2022-09-29
TM (brevet, 6e anniv.) - générale 2022-10-19 2022-10-04
TM (brevet, 7e anniv.) - générale 2023-10-19 2023-10-05
Titulaires au dossier

Les titulaires actuels et antérieures au dossier sont affichés en ordre alphabétique.

Titulaires actuels au dossier
GENESYS CLOUD SERVICES HOLDINGS II, LLC
Titulaires antérieures au dossier
AMIR LEV-TOV
AVRAHAM FAIZAKOF
TAMIR TAPUHI
YOCHAI KONIG
YONI LEV
Les propriétaires antérieurs qui ne figurent pas dans la liste des « Propriétaires au dossier » apparaîtront dans d'autres documents au dossier.
Documents

Pour visionner les fichiers sélectionnés, entrer le code reCAPTCHA :



Pour visualiser une image, cliquer sur un lien dans la colonne description du document. Pour télécharger l'image (les images), cliquer l'une ou plusieurs cases à cocher dans la première colonne et ensuite cliquer sur le bouton "Télécharger sélection en format PDF (archive Zip)" ou le bouton "Télécharger sélection (en un fichier PDF fusionné)".

Liste des documents de brevet publiés et non publiés sur la BDBC .

Si vous avez des difficultés à accéder au contenu, veuillez communiquer avec le Centre de services à la clientèle au 1-866-997-1936, ou envoyer un courriel au Centre de service à la clientèle de l'OPIC.


Description du
Document 
Date
(aaaa-mm-jj) 
Nombre de pages   Taille de l'image (Ko) 
Revendications 2018-05-13 11 502
Dessins 2018-05-13 18 287
Description 2018-05-13 39 2 482
Abrégé 2018-05-13 1 78
Dessin représentatif 2018-05-13 1 20
Description 2019-09-04 41 2 552
Revendications 2019-09-04 14 542
Description 2020-06-18 42 2 587
Revendications 2020-06-18 15 581
Dessin représentatif 2021-05-20 1 11
Accusé de réception de la requête d'examen 2018-05-22 1 174
Avis d'entree dans la phase nationale 2018-05-27 1 201
Courtoisie - Certificat d'enregistrement (document(s) connexe(s)) 2018-05-22 1 102
Courtoisie - Certificat d'enregistrement (document(s) connexe(s)) 2018-05-22 1 102
Rappel de taxe de maintien due 2018-06-19 1 113
Avis du commissaire - Demande jugée acceptable 2021-02-10 1 552
Certificat électronique d'octroi 2021-06-14 1 2 527
Demande d'entrée en phase nationale 2018-05-13 16 384
Rapport de recherche internationale 2018-05-13 18 786
Traité de coopération en matière de brevets (PCT) 2018-05-13 1 41
Demande de l'examinateur 2019-03-10 4 180
Modification / réponse à un rapport 2019-09-04 50 2 333
Demande de l'examinateur 2020-02-24 5 254
Modification / réponse à un rapport 2020-06-18 51 2 236
Taxe finale 2021-04-20 5 121