Electronic messaging methods
By using a knowledge graph to determine and manipulate message intents, the method generates messages that address the challenges of ambiguity and noise in electronic communication, enhancing training and secure communication.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-08
- Publication Date
- 2026-03-19
AI Technical Summary
Existing electronic messaging systems struggle with managing and processing ambiguous, incomplete, or noisy information, which hampers effective training and communication, particularly in real-world scenarios where information is not structured.
A method and system that utilizes a knowledge base, such as a knowledge graph, to determine message intents and generate new electronic messages by selecting a subset of these intents, adding ambiguity or incomplete information, or masking sensitive data, thereby enhancing training and communication systems.
This approach allows for more effective training and secure communication by generating messages that mimic real-world scenarios, improving user interaction and ensuring compliance with data access rules.
Smart Images

Figure 0007833245000001 
Figure 0007833245000002 
Figure 0007833245000003
Abstract
Description
Technical Field
[0001] The present invention relates to the field of digital computer systems, and more particularly, to an electronic messaging method.
Background Art
[0002] Automated training or testing of users or systems is currently performed using a pre-defined set of questions and answers. However, in the real world, information is not always provided in a simple and structured manner. It may contain a lot of ambiguous information or noise, or only a part of the necessary information, or conversely, too much information.
Summary of the Invention
[0003] In various embodiments, a method, a computer system, and a computer program product are provided as described by the subject matter of the independent claims. Advantageous embodiments are described in the dependent claims. Embodiments of the present invention can be freely combined with each other if they are not mutually exclusive.
[0004] In one aspect, the present invention relates to a computer-implemented method comprising receiving an electronic message of an electronic communication system, determining a message intent and one or more related intents of the received electronic message using a knowledge base, generating an electronic message according to a selected subset of the message intent or according to the related intent, and controlling the electronic communication system to provide the generated electronic message instead of the received electronic message, or to provide the generated electronic message in addition to the received electronic message.
[0005] In another embodiment, the present invention relates to a computer program product including a computer-readable storage medium implementing computer-readable program code, wherein the computer-readable program code is configured to perform all the steps of the method according to the above embodiment.
[0006] In another embodiment, the present invention relates to a computer system configured to perform the following: receiving an electronic message; determining the message intent and one or more associated intents of the received electronic message using a knowledge base; generating an electronic message according to a selected subset of the message intent or according to the associated intents; and providing the generated electronic message in place of the received electronic message, or providing the generated electronic message in addition to the received electronic message.
[0007] Hereinafter, embodiments of the present invention will be described in more detail with reference to the following drawings. [Brief explanation of the drawing]
[0008] [Figure 1A] This figure shows a computer system related to an example of this subject. [Figure 1B] This diagram shows a window displaying the chat session log. [Figure 2] This is a flowchart of a method related to one example of this subject. [Figure 3A] This is a flowchart of a method related to one example of this subject. [Figure 3B] This diagram shows a window displaying the chat session log. [Figure 3C] This diagram illustrates the dependency relationships between words in an electronic message. [Figure 4A] This is a flowchart of a method related to one example of this subject. [Figure 4B] This diagram shows a window displaying the chat session log. [Figure 5A]This is a flowchart of a method related to one example of this subject. [Figure 5B] This diagram shows a window displaying the chat session log. [Figure 6] This is a flowchart illustrating a method for creating a knowledge graph and language model, as an example related to this topic. [Figure 7] This diagram shows how to link text and image embedding spaces related to this topic. [Figure 8] This figure represents a typical computerized system suitable for implementing at least some of the method steps relating to this disclosure. [Modes for carrying out the invention]
[0009] While various embodiments of this disclosure are described exemplarily, they are not intended to be exhaustive or limit the scope to those embodiments disclosed. As will be apparent to those skilled in the art, many modifications and variations are possible without departing from the scope and spirit of each embodiment described. The terminology used herein has been selected to best describe the principles, practical applications, or technical improvements to the technology observed in the market of each embodiment, or to enable other those skilled in the art to understand each embodiment disclosed herein.
[0010] Messaging can be written communication sent via various digital channels, such as email, SMS, and in-app chat. Messaging can be beneficial because it can provide relevant information at the appropriate time. In particular, messaging performed with the right information and frequency can improve the performance of electronic communication systems. However, electronic messaging can be difficult to manage due to the increasing number of platforms, devices, and systems used to create these records. This subject provides a systematic method for controlling and managing electronic messaging communications, which can be beneficial. This is especially true for some organizations where the use of text and chat / instant messaging may be essential to achieving their mission.
[0011] Electronic messages may be received, for example, by reading a conversation log to generate messages for a messaging session. In another example, electronic messages may be received, for example, by intercepting them during an ongoing messaging session. Intercepted electronic messages may be provided, for example, during the messaging session. A messaging session may involve exchanging electronic messages, including text, multimedia, or audio, or a combination thereof, in real-time or non-real-time format. Real-time formats may include instant messaging or chat, while non-real-time formats may include email or posting to a dynamic forum or feed. A messaging session may be associated with a context depending on the use case. For example, a messaging session may be conducted between a chatbot agent and a user for training (of a trainee) or testing of the user. In this case, electronic messages may be questions and answers. In another example, a messaging session may be conducted between multiple users via a mobile messaging application provided on each user's respective mobile client device. In yet another example, a messaging session may include a group chat in which each user shares and discusses various topics, including video or other types of multimedia. The term "chatbot" refers to a computer program designed to simulate conversations with one or more human users, primarily for small talk or training purposes, using auditory or textual methods. The goal of such simulations is to make the end user believe that the program's output is generated by a human.
[0012] Intercepted / received electronic messages are processed to generate new electronic messages. In training use cases, electronic messages may be generated to increase the difficulty of a given question by providing incomplete information, adding misleading intents to increase ambiguity, or adding misleading intents to the intercepted / received electronic message, or a combination of these. This enables reliable automated training sessions. Also, in communication systems where sensitive information should not be provided according to data access rules, intercepted / received electronic messages may be processed to identify and mask or remove intents that do not comply with data access rules. This can enable secure data communication.
[0013] This topic can be beneficial because it allows for the use of a knowledge base to accurately generate messages. The knowledge base may be, for example, a knowledge graph. A knowledge graph may represent one or more domain ontologeries. For example, a knowledge graph may represent a domain of bug fixing for software, hardware, or both. In this case, the nodes of the knowledge graph may represent, for example, intents, images, and resolutions. An intent may represent, for example, a specific software problem. For example, intents "#heating" or "#virus" might indicate problems caused by computer overheating and the presence of a computer virus, respectively. A resolution is associated with the problem defined in the intent in the knowledge graph. For example, the resolution associated with intent "#virus" might be "#install_antivirus". Images may represent stack traces, error logs, function calls, or command output. Images in the graph may be, for example, screenshots of logs describing a problem related to a particular intent. For example, the image "#fan_noise" may be associated with the intent "#heating". However, the domain of the knowledge graph may be broad enough to cover multiple topics. Continuing with the bug problem example, multiple topics may be covered in the knowledge graph. For example, an operating system problem might cover one topic, and a display might cover another. This problem can be solved by clustering the knowledge graph. The knowledge graph may be clustered into multiple clusters. One cluster may be represented, for example, by a subgraph of the knowledge graph, where the data in that cluster represents a specific topic. A cluster may contain multiple subclusters.Here, a subcluster may represent commonly occurring intents, commonly co-occurring intents, commonly proposed solutions, or undesirable or incorrect solutions.
[0014] A knowledge graph may be a graph. A graph may refer to a property graph in which data values are stored as characteristics on nodes and edges. A property graph may be managed and processed by a graph database management system or other database system. These systems provide a wrapper layer that converts the property graph into, for example, a relational table for storage, and converts the relational table back into the property graph when read or queried. A graph may be, for example, a directed graph. A graph may be a collection of nodes (also called vertices) and edges. An edge in a graph connects any two nodes in that graph. An edge can be represented by an ordered pair of nodes (v1, v2) and can be traversed from node v1 to node v2. A node in a graph may represent an entity. An entity may refer to a problem, a solution, etc. An entity (and its corresponding node) may have one or more entity attributes or characteristics to which values can be assigned. For example, the entity attributes of a solution may include attributes indicating whether the solution is a generally recommended solution or a non-recommended solution. The attribute value representing a node is the value of the entity attribute of the entity represented by that node. An edge may be assigned one or more edge attribute values that indicate at least one relationship between the two nodes connected to that edge. The attribute value representing an edge is the value of the edge attribute. Relationships may include, for example, inheritance relationships (e.g., parent-child) or associative relationships that follow a specific hierarchy. For example, the inheritance relationship between nodes v1 and v2 may be called an "is-a relationship" between v1 and v2. For example, "v2 is a parent of v1".Furthermore, the associative relationship between nodes v1 and v2 is sometimes called a "has-a relationship" between v1 and v2. For example, "v2 has a has-a relationship with v1." This means that v1 is either a part of v2, a component of v2, or related to v2.
[0015] According to one embodiment, the method further includes determining the context of a messaging session using an electronic message. The context of a messaging session is defined by at least a subgraph of a knowledge graph. Related intents may be determined using the subgraph such that the generated electronic message contains noisy content that is different from the content of an intercepted electronic message but belongs to the same context. Intents referred to here as “related intents” can be used to add ambiguity or insert misleading information. Alternatively, a selected subset of message intents may be used to generate incomplete information. In other words, the content of the generated electronic message may provide incomplete, ambiguous, or misleading information. The subset of message intents may be selected based on a score assigned to each of the message intents. The score may be determined by an intent classifier. The intent classifier may be configured to receive an incoming electronic message as input and provide the message intents associated with their scores. A subset of intents may be obtained by removing the first N (N≧1) ranked message intents from the message intents.
[0016] The context of a messaging session may be the topic of the messaging session. The topic of the messaging session may be determined by analyzing the content of an electronic message. The analysis may be performed, for example, using data mining techniques. A subgraph of a knowledge graph may include an intent that is assumed to share the topic of the electronic message. The intent of the subgraph may include the message intent of the intercepted electronic message. Since the subgraph can rank the intent of the subgraph based on importance using, for example, centrality, it can be advantageously used.
[0017] According to one embodiment, the electronic message is intercepted from a chat application of an electronic communication system. The chat application is configured to simulate a conversation with a user during a messaging session. The method includes intercepting an electronic message of the chat application at a particular point in time in the messaging session.
[0018] The chat application may be used to conduct an online chat conversation via text or text-to-speech. For example, the chat application may be used to test or train a user by asking questions to the user. The user may provide an answer to the question. The electronic message may be composed of, for example, the text of the question. This embodiment can be beneficial because it can control the timing at which it is necessary to modify or adapt an electronic message (e.g., a question) according to the present subject matter.
[0019] When generating new / modified questions, the time point may be defined in advance or determined dynamically. For example, this time point may be defined dynamically based on user input. Thereby, for example, different operation modes of conversation / training with the user can be used appropriately. For example, a simple training mode or a difficult training mode can be used. In the simple training mode, only a part of the questions (for example, at the beginning of the conversation) may be considered for modification, and in the difficult operation mode, more questions (for example, at different stages of the conversation) may be changed.
[0020] The generated electronic message may be modified by changing the intent of the intercepted electronic message. This change may be implemented by deleting the intent of the intercepted electronic message to provide incomplete information, adding confusing intent to add ambiguity, or adding intent that causes misunderstanding to the intercepted electronic message, or by combining these.
[0021] According to one embodiment, the electronic communication system is a chat server configured to distribute messages between chat clients. For example, before the electronic message is distributed, it is intercepted and processed according to this subject matter.
[0022] According to one embodiment, the electronic message is received from the first chat client addressed to the second chat client. The method further includes detecting sensitive information in the intercepted electronic message. Here, a selected subset of the message intent contains non-confidential information, and instead of the intercepted electronic message, a generated electronic message is provided. The confidential information may include, for example, personal information such as a full name.
[0023] According to one embodiment, the method further includes selecting a subset of message intents based on a knowledge graph centrality index such that the subset of message intents contains K (K≧1) low-priority message intents.
[0024] According to one embodiment, the related intent is a knowledge graph intent located within the k-hop neighborhood of the message intent (where k is the value of a configurable parameter).
[0025] According to one embodiment, the generated electronic message contains noisy content that differs from the content of the intercepted electronic message. The method further includes setting the value of a parameter according to a desired noise level of the noisy content. The noise may be, for example, user-based noise or problem-based noise. User-based noise may be determined based on user characteristics such as age. For example, the noise level for skilled users may be higher than the noise level for ordinary users by increasing the value of parameter k. The level of problem-based noise may be modified by, for example, adding more confusing intents or removing more important intents.
[0026] According to one embodiment, a message intent represents a technical problem. The method further includes identifying a solution associated with a message intent in a knowledge graph, identifying cooccurring intents that co-occur with the message intent in the knowledge graph, identifying solutions associated with the cooccurring intents, ranking the solutions of the cooccurring intents based on their similarity to the solutions of the message intents, and selecting a subset of the cooccurring intent solutions having the lowest R similarity. Here, the associated intents are cooccurring intents associated with the selected solutions, and R ≥ 1.
[0027] According to one embodiment, generating an electronic message according to an associated intent includes applying a language model to the associated intent in order to generate the electronic message. The language model may be, for example, an RNN-based language model, an LSTM-based language model, or a GAN.
[0028] According to one embodiment, the method further includes training a language model for each user persona involved in communication with an electronic communication system in order to mimic a user-specific language. For example, the language model may be trained using sentences or texts that contain user-specific intents (e.g., sentences of a user of a particular age).
[0029] According to one embodiment, generating an electronic message according to a selected subset of intents includes generating an electronic message by removing one or more important intent fragments from an intercepted electronic message.
[0030] According to one embodiment, the method further includes representing the intercepted electronic message in a predetermined vector space. A subset of intents is selected and determined such that the associated intents are at the minimum distance from the intercepted electronic message in the vector space.
[0031] According to one embodiment, the method further includes creating a knowledge graph using communication transcripts or logs of past data communications, or both, and clustering the intents of the knowledge graph according to one or more graph characteristics of the knowledge graph. The graph characteristics include one of the following: a centrality index for each node in the graph, and the distance from each node to other nodes in the graph.
[0032] Figure 1A shows a computer system 100 relating to an example of this subject. The computer system 100 includes an agent computer 105. The agent computer 105 may be an electronic communication system. The computer system 100 is provided with an electronic communication controller 101. The electronic communication controller 101 is connected to a chat link 103 and receives each successive message transmitted between user 102 and agent computer 105 during a conversation or chat session. Link 103 may connect agent computer 105 to user 102's remote user computer, or it may be a link to the agent computer 105's display device. Link 103 may be established via the Internet or other data channel. Link 103 may enable a conversation or chat that includes a stream of text messages exchanged between user 102 and agent computer 105.
[0033] User 102's continuous messages are received by the analysis unit 106 of the agent computer 105. The analysis unit 106 performs the function of analyzing the messages to determine the issue or inquiry of User 102 that is the subject of the chat with the agent computer 105. If the messages are in text format, the analysis unit 106 is equipped with a text analysis function to perform this function. The function of the analysis unit 106 may also be part of the process of identifying the specific responses that User 102 provided to the questions from the agent computer 105.
[0034] The agent computer 105 includes a question builder 116 that receives input from the analysis unit 106. The question builder 116 uses these inputs (e.g., a chatbot) to construct or configure a request or question. A request is a goal statement related to a problem, and user 102 needs to provide a solution to this problem. The question builder 116 may also generate a request without receiving input from the analysis unit, for example, to initiate a conversation with user 102. Messages generated by the question builder 116 or messages received from user 102, or both, may be intercepted or provided as input to the electronic communication controller 101 via link 103. The electronic communication controller 101 may use the knowledge graph 118 as a source of information for correcting intercepted messages in accordance with this subject.
[0035] Messages exchanged between user 102 and agent computer 105 may be displayed on window 130, as shown in Figure 1B. Window 130 may be displayed on the user interface of agent computer 105 if user 102 is directly interacting with agent computer 105, or it may be displayed on user 102's remote user computer.
[0036] Figure 1B shows an example of a timeline view of chat messages between user 102 and agent computer 105. The window 130 showing the chat session record includes a first display area 131 for displaying messages and a second display area 133 for displaying the timestamps of the chat messages. The messages are aligned with their respective timestamps. In the example shown in Figure 1B, agent computer 105 may provide messages 135.1 to 135.n. Each message may be a question to user 102. User 102 may provide corresponding response messages 136.1 to 136.n.
[0037] Although shown as a separate component, in another example, the electronic communication controller 101 may be part of the agent computer 105.
[0038] Figure 2 is a flowchart of a method relating to an example of this subject. For the sake of explanation, the method described in Figure 2 may be implemented in the system illustrated in Figure 1A, but is not limited to this implementation. The method in Figure 2 may be performed, for example, by an electronic communication controller 101.
[0039] In step 201, an electronic message provided to, for example, a user by the electronic communication system 105 may be received or identified in the electronic communication system 105. The electronic message may be received or read from a conversation log file, or it may be intercepted. The electronic message may be, for example, a message sent from a sending computer to a receiving computer, which is the electronic communication system 105. The electronic message may be, for example, an outgoing message from computer 105. In this case, the electronic communication controller 101 may be configured to intercept this electronic message before it is sent from computer 105. In another example, the electronic message may be an incoming message to the computer. In this case, the electronic communication controller may be configured to intercept this incoming electronic message before it is provided to a receiving application on the computer. In yet another example, the electronic message may be a message generated by an application on the computer and displayed on the computer's interface. In this case, the electronic communication controller may be configured to intercept this electronic message before it is displayed. The electronic communication controller may or may not be part of computer 105.
[0040] An electronic message may be, for example, any type of electronic communication data structure. An electronic message may be, for example, an email, instant message, voice message, or text message. An electronic message may be a message in a conversation. An electronic message may be one of the chat messages in a conversation. A conversation may be a series of messages sent between a chat agent and one or more users. An electronic message may be, for example, the first chat message in a conversation, or a randomly selected electronic message in a conversation. In another example, an electronic message may be a selected chat message in a conversation. The selection may be performed based on selection criteria. The selection criteria may be, for example, that the message to be corrected is received after the user has made a correct answer.
[0041] In step 203, the intent of the received or intercepted electronic message may be determined. The determined intent may be referred to as the message intent. The message intent may refer to, for example, the goal that the chatbot agent has in mind when providing a question or comment. Intent classification may involve automatically associating text with a specific purpose or goal. The message intent may be determined, for example, by a classifier. The classifier may analyze fragments of text and classify them into intents such as "computer virus" or "fever." The intent classifier may use, for example, a machine learning algorithm that can associate words or expressions with specific intents.
[0042] In step 205, an intent related to the message intent may be determined. The related intent may belong to the same domain as the message intent, for example. A domain represents a concept or category that belongs to a part of the world, such as biology or politics. A domain typically models the definition of domain-specific terminology. For example, a domain could refer to a field specific to healthcare, advertising, commerce, medicine, or biomedicine, or a combination thereof.
[0043] For example, an intent database may be used to search for intents that are semantically related to the message intent. These semantically related intents may be the related intents determined in step 205.
[0044] In another example, a knowledge graph can be used to gain an advantage in determining relevant intents. Since the knowledge graph may be used in determining message intents, it may be possible to determine relevant intents consistently and accurately. For example, a relevant intent might be a knowledge graph intent within k hops of the message intent (where k is a configurable parameter value).
[0045] In step 207, a subset of message intents may be selected. The subset of message intents may be selected based on a knowledge graph centrality index, for example, such that the subset of message intents contains m less important message intents (where m is a predetermined number). In another example, the subset of m message intents may be randomly selected from the message intents of the intercepted electronic message. In yet another example, the subset of m message intents may be selected based on a score assigned to each message intent. The score may be determined by an intent classifier. The intent classifier may be configured to take the received electronic message as input and provide the message intents associated with their scores. The subset of intents may be obtained by removing the first N (N≧1) ranked message intents from the message intents.
[0046] In step 209, an electronic message may be generated according to a subset of message intents selected in step 207. Alternatively, the electronic message may be generated according to the relevant intents obtained in step 205.
[0047] The generation of electronic messages may be performed using, for example, machine learning. For example, a domain represented by an intent may be used to generate a message from that intent. The domain may be associated with a graph-learning-based model, a grammar-based model, or both. An electronic message may be generated in step 209 using a graph-learning-based model, a grammar-based model, or both. The generated electronic message may have a subset of selected intents, or associated intents, as its intent.
[0048] For example, the generation of electronic messages may be performed using a language model. The language model may be trained for each user persona involved in communication with the electronic communication system, for example, to mimic the user's specific language.
[0049] In step 211, the generated electronic message may be provided. For example, the generated message may be provided in place of the intercepted electronic message. For instance, if the intercepted electronic message was to be displayed on a computer interface, the generated electronic message may be displayed instead. In another example, the generated electronic message may be provided in addition to the intercepted electronic message. For example, if the intercepted electronic message was to be displayed on a computer interface, the generated electronic message may be displayed (in the chat flow) before or after the intercepted electronic message is displayed.
[0050] The generated electronic message may be displayed in association with the image of the knowledge graph associated with the intent from which the electronic message was generated.
[0051] After providing the generated electronic message, it may be determined whether the user identified the generated electronic message as noise. If the user does not identify the electronic message as noise, the electronic communication controller may, according to a simple operating mode, stop providing further content containing noise. In another example, according to a more difficult operating mode, the electronic communication controller may prolong this state for a short time to see if the user can eventually identify the noise in the conversation.
[0052] Figure 3A is a flowchart of a method relating to an example of this subject. For the sake of explanation, the method described in Figure 3A may be implemented in the system illustrated in Figure 1A, but is not limited to this implementation. The method in Figure 3A may be performed, for example, by an electronic communication controller 101. The method in Figure 3A can be advantageously used to generate a message that has incomplete information compared to a corresponding predetermined message.
[0053] Electronic messages, such as message 335.1 shown in Figure 3B, may be intercepted or received. For example, the received electronic message 335.1 may be one of the messages received from the conversation log 300 between user 302 and the chat agent. In another example, electronic message 335.1 may be intercepted in real time, for example. Electronic message 335.1 may be one that the chat agent was preparing to send and may be intercepted before it is displayed in the chat window 330. Electronic message 335.1 may or may not be associated with an image that describes the content of electronic message 335.1. Electronic message 335.1 may be represented in a predetermined embedding space in step 301. This representation may be performed, for example, using a BERT-based sentence encoder 320. If an image is provided in association with electronic message 335.1, both electronic message 335.1 and the associated image may be represented using a joint embedding space. For example, a joint embedding space is defined with reference to Figure 7.
[0054] In step 303, an intent predictor or classifier 318 may be used to identify important intents within the electronic message 335.1 based on intent information. The intent classifier 318 may take a representation of the electronic message 335.1 as input and provide intents for the electronic message, where each intent is associated with a score indicating its importance.
[0055] In step 305, one or more of the identified important intents may be removed from the electronic message 335.1. As shown in Figure 3A, the intents to be removed may be determined, for example, by dependency parsing. Figure 3C shows an example of dependency representation of elements in the intercepted electronic message. As a result, an incomplete text may be generated. In step 307, the generated incomplete text may be verified. This verification may be performed by representing the incomplete text in the embedding space, for example, as a point 321, and comparing this representation 321 with the representation 322 of the intercepted electronic message 335.1 in the embedding space.
[0056] The verification in step 307 can indicate whether the message obtained by removing one or more important intents can be classified as incomplete, based on the distance between two points 321 and 322. If the above message cannot be classified as incomplete, the intercepted electronic message 335.1 may be processed again in step 305 to remove one or more additional important intents, or to remove one or more new different important intents. These newly removed intents may be compared with the conversation history 329 to determine if they are important in the context of the messaging session. If the above message is classified as incomplete, the generated electronic message 335.1 may replace the intercepted message. This is shown in Figure 3B. As shown, the generated electronic message 335.1 is displayed in window 330 instead of the intercepted electronic message. As shown in Figure 3B, if the user cannot answer the question in the newly generated message 335.1, the removed information may be returned in the next message 335.2 in the chat message. Continuing with the example in Figure 3B, three message intents may be identified: "gets heated," "one hour," and "video or audio." Two intents, "one hour" and "video or audio," may be selected as the most important intents. For example, dependency parsing, as shown in Figure 3C, may determine that an intent that does not have any dependent intents is an important intent. A text snippet containing the intent "laptop gets heated" may be retained. A new text snippet containing the other two intents may be created using the language model.
[0057] Figure 4A is a flowchart of a method relating to an example of this subject. For the sake of explanation, the method described in Figure 4A may be implemented in the system illustrated in Figure 1A, but is not limited to this implementation. The method in Figure 4A may be performed, for example, by an electronic communication controller 101.
[0058] Electronic messages, such as message 435.1 shown in Figure 4B, may be intercepted or received. Electronic message 435.1 may be one of the messages in a conversation 300 between user 302 and the chat agent. Electronic message 435.1 may be prepared by the chat agent and displayed in the chat window 430. Electronic message 435.1 may be represented in step 401 in a predetermined embedding space, as defined, for example, with reference to Figure 7. This representation may be performed using a BERT-based sentence encoder 320.
[0059] In step 403, important intents within electronic message 435.1 may be identified using the intent classifier 318. These important intents may form set I. In order that the "ambiguous" information remains contextual, in step 403, a set I' of related intents belonging to the k-hop neighborhood of set I in the knowledge graph may be determined. These are called related intents because they belong to the same context as set I. In step 405, set I' of related intents may be ranked by their similarity / co-occurrence with set I of important intents in the embedding space. In step 405, the intent with the lowest similarity (referred to as a low-similarity intent) may be selected from set I' of related intents. In step 407, Using low-similarity intents, the language model may generate the chat utterance 435.2 shown in Figure 4B.
[0060] Continuing with the example in Figure 4B, the original problem description provided in electronic message 435.1 is as follows: "After installing the latest Windows update, my HP laptop takes nearly 10-15 minutes to boot up. After pressing the Start button, a black screen appears for 10 minutes, and then only the desktop appears. What should I do?" The generated electronic message 435.2 may be used to add ambiguity to the chat flow. This ambiguity is achieved by electronic message 435.2 inserting information that is not strongly related to electronic message 435.1 but belongs to the same context (e.g., a computer-related problem).
[0061] Figure 5A is a flowchart of a method relating to an example of this subject. For the sake of explanation, the method described in Figure 5A may be implemented in the system illustrated in Figure 1A, but is not limited to this implementation. The method in Figure 5A may be performed, for example, by an electronic communication controller 101.
[0062] Electronic messages, such as message 535.1 shown in Figure 5B, may be intercepted or received. Electronic message 535.1 may be one of the messages in a conversation 300 between user 302 and the chat agent. Electronic message 535.1 may be prepared by the chat agent and displayed in the chat window 530. Electronic message 535.1 may be represented in step 501 in a predetermined embedding space, as defined, for example, with reference to Figure 7. This representation may be performed using a BERT-based sentence encoder 320.
[0063] In step 503, important intents within electronic message 535.1 may be identified, for example, using an intent classifier. Then, solutions corresponding to the identified important intents may be identified using a knowledge graph. The important intents may form set I, and the solutions may form set R. In step 503, a set I' of related intents that co-occur with set I may be determined in the knowledge graph. Then, solutions R' associated with set I' of related intents may be identified.
[0064] In step 505, the set of related solutions R' may be ranked by their similarity to the set of important solutions R in the embedding space. In step 505, the solution with the lowest similarity among the related solutions R' may be selected. In step 507, Using a low-similarity intent, which is an intent associated with the selected solution, the language model may generate the chat utterance 535.2 shown in Figure 5B.
[0065] Figure 6 is a flowchart illustrating a method for creating a knowledge graph and language model, as an example related to this subject. The method in Figure 6 may also be performed during the training phase.
[0066] In step 601, an actual customer complaint record 600 may be used to identify key intents and solutions, and images may be extracted from the customer service ticket. In step 603, a knowledge graph may be constructed. In step 605, the knowledge graph may be clustered based on criteria 609, as shown in Figure 6. The criteria may require that clusters represent commonly occurring intents, commonly co-occurring intents, commonly suggested solutions, and not recommended or incorrect solutions.
[0067] In step 611, the language model may receive an actual customer complaint record 600 as input. This allows the language model to be trained in step 613 to determine the language patterns of various categories of users involved in the actual customer complaint record 600.
[0068] Figure 7 shows a method for linking text and image embedding spaces related to this subject. To identify the relationship between images and text, the Siamese network is used. 700 The following can be trained: Images are analyzed by a CNN-based encoder, and text descriptions are analyzed by a BERT-based converter. Simultaneous embeddings are learned using hinge loss to reconcile images and text according to the Shamnet neural network architecture. The Shamnet is trained using a labeled dataset. The labeled dataset consists of entries. Each entry consists of a triplet: an image (e.g., a screenshot), the associated problem text / random problem text, and a label. The label may be set to 1 if the problem text is not random, and to 0 otherwise.
[0069] Figure 8 is a diagram representing a typical computerized system 900 suitable for implementing at least some of the method steps relating to this disclosure.
[0070] It should be understood that the methods described herein are at least partially non-interactive and are automated by computerized systems such as servers and embedded systems. However, in exemplary embodiments, the methods described herein can be implemented in (partially) interactive systems. These methods can further be implemented in software 912, 922 (including firmware 922), hardware (processor) 905, or a combination thereof. In exemplary embodiments, the methods described herein are implemented in software as executable programs and run by dedicated or general-purpose digital computers such as personal computers, workstations, minicomputers, or mainframe computers. Thus, the most common system 900 includes a general-purpose computer 901.
[0071] In an exemplary embodiment, from the viewpoint of hardware architecture, as shown in Figure 8, the computer 901 includes a processor 905, memory (main memory) 910 coupled to a memory controller 915, and one or more input / output (I / O) devices (or peripherals) 10, 945 communicably coupled via a local input / output controller 935. The input / output controller 935 is not particularly limited, but can be one or more buses or other wired or wireless connections as known in the art. Although omitted for the sake of simplicity in the drawings, the input / output controller 935 may include additional elements to enable communication, such as controllers, buffers (caches), drivers, repeaters, and receivers. Furthermore, the local interface may include address connections, control connections, or data connections or a combination thereof to enable proper communication between the above components. As described herein, the I / O devices 10, 945 may generally include any general-purpose cryptographic card or smart card known in the art.
[0072] The processor 905 is a hardware device for executing software, specifically software stored in memory 910. The processor 905 can be any custom-made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors accompanying the computer 901, a semiconductor-based (microchip or chipset type) microprocessor, or any device in general for executing software instructions.
[0073] The memory 910 may include one or a combination of volatile memory elements (e.g., random access memory (RAM such as DRAM, SRAM, SDRAM, etc.)) and non-volatile memory elements (e.g., ROM, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), programmable ROM (PROM)). The memory 910 may have a distributed architecture in which various components are located remotely from each other but are accessible by the processor 905.
[0074] The software in memory 910 may include one or more separate programs, each of which includes an ordered list of executable instructions for implementing logical functions, in particular functions relating to embodiments of the present invention. In the example of Figure 8, the software in memory 910 includes instructions 912, such as instructions for managing a database, such as a database management system.
[0075] The software in memory 910 must generally also include a suitable operating system (OS) 911. The OS 911 essentially controls the execution of other computer programs, such as software 912 for implementing the methods described herein.
[0076] The methods described herein may take the form of a source program 912, an executable program 912 (object code), a script, or any other entity including a set of instructions 912 to be executed. In the case of a source program, the program needs to be translated by a compiler, assembler, interpreter, etc., so that it can operate properly in relation to the OS 911. These may or may not be contained in memory 910. The methods may also be written as an object-oriented programming language having classes of data and methods, or as a procedural programming language having routines, subroutines, functions, or a combination thereof.
[0077] In an exemplary embodiment, a conventional keyboard 950 and mouse 955 can be coupled to the input / output controller 935. Other output devices, such as I / O device 945, may include input devices. Input devices are not particularly limited, but could be, for example, a printer, scanner, or microphone. Finally, I / O devices 10, 945 may further include devices that transmit both input and output. These devices are not particularly limited, but could be, for example, a network interface card (NIC) or modulator / demodulator (for accessing other files, devices, systems, or networks), radio frequency (RF) or other transceivers, telephone interfaces, bridges, or routers. I / O devices 10, 945 may also be any general-purpose cryptographic card or smart card known in the art. System 900 may further include a display controller 925 coupled to a display 930. In an exemplary embodiment, system 900 may further include a network interface for coupling to a network 965. Network 965 can be an IP-based network for communication between computer 901 and any external server, client, etc., via a broadband connection. Network 965 transmits and receives data between computer 901 and external system 30. External system 30 may be involved in the execution of some or all of the steps of the method described herein. In exemplary embodiments, network 965 may be a managed IP network managed by a service provider. Network 965 may be implemented wirelessly using wireless protocols and technologies such as WiFi®, WiMAX®, etc. Network 965 may also be a packet-switched network such as a local area network, wide area network, metropolitan area network, internet network, or other similar network environment.Network 965 may be a fixed wireless network, a wireless local area network (WLAN), a wireless wide area network (WWAN), a personal area network (PAN), a virtual private network (VPN), an intranet, or other suitable network system, and may include equipment for sending and receiving signals.
[0078] If the computer 901 is a PC, workstation, intelligent device, etc., the software in memory 910 may further include a Basic Input / Output System (BIOS) 922. The BIOS is a set of basic software routines that initialize and test the hardware at startup, boot the OS 111, and support data transfer between hardware devices. The BIOS is stored in ROM so that it can be executed when the computer 901 starts up.
[0079] During the operation of the computer 901, the processor 905 is configured to execute software 912 stored in memory 910, communicate data with memory 910, and generally control the operation of the computer 901 according to the software. The methods described herein and the OS 911, in whole or in part, typically the latter, are read by the processor 905, possibly buffered within the processor 905, and then executed.
[0080] When the systems and methods described herein are implemented in software 912 as shown in Figure 8, the methods can be stored in any computer-readable medium, such as storage 920, for use by or in connection with any computer-related system or method. Storage 920 may include disk storage such as HDD storage.
[0081] The present invention may be a system, method, or computer program product or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium storing computer-readable program instructions for causing a processor to perform aspects of the present invention.
[0082] A computer-readable storage medium can be a tangible device capable of holding and storing instructions used by an instruction execution device. A computer-readable storage medium may, for example, be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), static random access memory (SRAM), CD-ROMs, DVDs, memory sticks, floppy disks, mechanically encoded devices with instructions recorded on punch cards or grooved raised structures, and suitable combinations thereof. The computer-readable storage medium as used herein should not be interpreted as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses passing through optical fiber cables), or electrical signals transmitted through wires.
[0083] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing device / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, LAN, WAN, or wireless network, or a combination thereof). The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers or edge servers, or a combination thereof. A network adapter card or network interface within each computing device / processing device receives computer-readable program instructions from the network and transfers them for storage in a computer-readable storage medium within each computing device / processing device.
[0084] The computer-readable program instructions for performing the operation of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk and C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions can be executed as a standalone software package, either entirely on the user's computer or partially on the user's computer. Alternatively, they can be executed partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including LANs and WANs, or it may be connected to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), and programmable logic arrays (PLAs), can execute computer-readable program instructions by utilizing state information of computer-readable program instructions in order to customize the electronic circuits for the purpose of performing aspects of the present invention.
[0085] Aspects of the present invention are described herein with reference to flowcharts or block diagrams, or both, of methods, apparatus (systems), and computer program products according to embodiments of the present invention. Each block in a flowchart or block diagram, or both, and combinations of blocks in a flowchart or block diagram, or both, are executable by computer-readable program instructions.
[0086] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine. This creates a means for these instructions, executed via such a computer or other programmable data processing device processor, to perform functions / operations identified in one or more blocks in a flowchart or block diagram, or both. These computer-readable program instructions can further be stored in a computer-readable storage medium that can be instructed to function in a particular manner to a computer, programmable data processing device, or other device, or a combination thereof. Thus, the computer-readable storage medium containing the instructions constitutes a product containing instructions for performing functions / operations identified in one or more blocks in a flowchart or block diagram, or both.
[0087] Alternatively, a computer execution process may be generated by loading computer-readable program instructions into a computer, another programmable device, or other device, and having a series of operational steps executed on that computer, other programmable device, or other device. This ensures that the instructions executed on the computer, other programmable device, or other device perform functions / operations identified by one or more blocks in a flowchart, block diagram, or both.
[0088] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions containing one or more executable instructions for performing a specific logical function. In some other implementations, the functions shown within a block may be executed in an order different from the order shown in each diagram. For example, depending on the functions involved, two consecutively shown blocks may actually be achieved as a single process, executed simultaneously or nearly simultaneously, executed in a manner that partially or entirely overlaps in time, or the blocks may be executed in reverse order. Each block in a block diagram or flowchart or both, and combinations of multiple blocks in a block diagram or flowchart or both, are executable by a dedicated hardware-based system that performs a specific function or operation, or executes a combination of dedicated hardware and computer instructions.
Claims
1. A method performed by a computer for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, The electronic message is used to determine the context of the messaging session, wherein the context of the messaging session is defined by at least a subgraph of the knowledge graph contained in the knowledge base. The associated intent is determined using the subgraph such that the generated electronic message is different from the content of the received electronic message and contains content that has noise belonging to the determined context, Methods that further include this.
2. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, A method wherein the electronic message is intercepted from a chat application of the electronic communication system, the chat application is configured to simulate a conversation with a user during a messaging session, and the receiving includes intercepting the electronic message of the chat application at a predetermined point in time during the messaging session.
3. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, The electronic communication system is a chat server configured to deliver messages between chat clients, according to the method.
4. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, The aforementioned electronic communication system is a chat server configured to deliver messages between chat clients, The electronic message is received from a first chat client to a second chat client, and the method further comprises detecting sensitive information in the received electronic message, wherein the selected subset of the message intent contains non-sensitive information, and the generated electronic message is provided in place of the received electronic message.
5. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, A method further comprising selecting a subset of message intents based on a centrality index of a knowledge graph contained in the knowledge base, or based on a score of the message intents obtained from an intent classifier, wherein the selection is made such that the subset of message intents includes K (where K is a predetermined number of 1 or more) low-priority message intents.
6. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, The method wherein the associated intent is an intent of the knowledge graph included in the knowledge base, and is located within k-hops of the message intent (where k is the value of a configurable parameter).
7. The method according to claim 6, wherein the generated electronic message includes content having noise different from the content of the received electronic message, and the method further includes setting the value of the parameter k according to a desired noise level of the content having noise.
8. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, The knowledge base includes a knowledge graph representing the domain of computer-related bug fixes, the message intent represents a technical problem, and the method is Identifying the solution associated with the message intent within the knowledge graph, Identifying co-occurring intents that co-occur with the message intent within the aforementioned knowledge graph, Identifying solutions associated with the aforementioned co-occurrence intents, Ranking the solutions of the co-occurring intents based on the similarity of the message intents to the solutions, Selecting a subset of the solutions of the co-occurring intent having the lowest similarity, wherein the associated intent is the co-occurring intent associated with the selected solution, Methods that further include this.
9. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, A method for generating the electronic message in accordance with the associated intent, comprising applying a language model to the associated intent in order to generate the electronic message.
10. The method according to claim 9, further comprising training the language model for each user persona involved in communication with the electronic communication system in order to mimic a user-specific language.
11. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, A method for generating the electronic message according to a selected subset of the message intents, comprising generating the electronic message by removing fragments representing the subset of the message intents in the received electronic message.
12. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, A method further comprising representing the received electronic message in a predetermined vector space, wherein a subset of the message intents is selected and the associated intents are determined such that the generated electronic message is at the minimum distance from the received electronic message in the vector space.
13. A computer method for electronic messaging, Receiving electronic messages from an electronic communication system, Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Includes, The aforementioned knowledge base includes a knowledge graph, and the aforementioned method is Creating the aforementioned knowledge graph using communication records or logs of past data communications, or both. Clustering the intents of the knowledge graph according to one or more graph characteristics of the knowledge graph, wherein the graph characteristics include one of the following: the centrality index of each node in the knowledge graph, and the distance from each node to another node in the knowledge graph. Methods that further include this.
14. A computer program for execution by one or more computers, wherein the computer program is The above-mentioned one or more computers receive electronic messages from an electronic communication system, The one or more computers use a knowledge base to determine the message intent and one or more associated intents of the received electronic message, One or more computers generate an electronic message according to a selected subset of the message intents or according to the associated intents. Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Make it run, The electronic message is used to determine the context of the messaging session, wherein the context of the messaging session is defined by at least a subgraph of the knowledge graph contained in the knowledge base. The associated intent is determined using the subgraph such that the generated electronic message is different from the content of the received electronic message and contains content that has noise belonging to the determined context, A computer program that executes something.
15. A computer program for execution by one or more computers, wherein the computer program is The above-mentioned one or more computers receive electronic messages from an electronic communication system, The one or more computers use a knowledge base to determine the message intent and one or more associated intents of the received electronic message, One or more computers generate an electronic message according to a selected subset of the message intents or according to the associated intents. Controlling the electronic communication system to provide the generated electronic message in place of the received electronic message, or to provide the generated electronic message in addition to the received electronic message, Make it run, The electronic message is intercepted from a chat application of the electronic communication system, the chat application is configured to simulate a conversation with a user during a messaging session, and the receiving includes a computer program intercepting the electronic message of the chat application at a predetermined point in time during the messaging session.
16. A computer system comprising one or more processors and one or more tangible storage media storing program instructions to be executed by said one or more processors, wherein the program instructions are Receiving electronic messages and Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Providing the generated electronic message in place of the received electronic message, or providing the generated electronic message in addition to the received electronic message, Make it run, The electronic message is used to determine the context of the messaging session, wherein the context of the messaging session is defined by at least a subgraph of the knowledge graph contained in the knowledge base. The associated intent is determined using the subgraph such that the generated electronic message is different from the content of the received electronic message and contains content that has noise belonging to the determined context, A computer system that further includes instructions for executing [something].
17. A computer system comprising one or more processors and one or more tangible storage media storing program instructions to be executed by the one or more processors, wherein the program instructions are Receiving electronic messages and Using the knowledge base, determine the message intent and one or more associated intents of the received electronic message, To generate an electronic message according to a selected subset of the aforementioned message intents, or according to the aforementioned related intents, Providing the generated electronic message in place of the received electronic message, or providing the generated electronic message in addition to the received electronic message, Make it run, The electronic message is intercepted from a chat application of an electronic communication system, the chat application is configured to simulate a conversation with a user during a messaging session, and the receiving includes intercepting the electronic message from the chat application at a predetermined point in time during the messaging session.
Citation Information
Patent Citations
Identification and management of frequently asked questions
US10956822B1
Search query obfuscation via broadened subqueries and recombining
US20150039579A1
Rule-based dialog state tracking
US20170228366A1