WO2022164131A1 - 챗봇의 세션을 유지하는 시간을 결정하는 전자 장치 및 그 동작 방법 - Google Patents
챗봇의 세션을 유지하는 시간을 결정하는 전자 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- WO2022164131A1 WO2022164131A1 PCT/KR2022/001093 KR2022001093W WO2022164131A1 WO 2022164131 A1 WO2022164131 A1 WO 2022164131A1 KR 2022001093 W KR2022001093 W KR 2022001093W WO 2022164131 A1 WO2022164131 A1 WO 2022164131A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- session
- time
- response message
- electronic device
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
Definitions
- the present disclosure relates to an electronic device for determining a time for maintaining a session in a chatbot that provides a response message to a user's input message, and an operating method thereof.
- chatbot is an abbreviation of a chat robot, and is an artificial intelligence service configured to perform actions such as providing information about a question or providing a service related to a request through a conversation with a user using a voice signal or text.
- a chatbot is a service that interacts through a messenger application and is provided through preset rules or artificial intelligence technology.
- the session duration is determined in terms of the user's privacy protection, and the session is terminated when all of the session duration time has elapsed.
- the session holding time is updated by the user's input. If the session is terminated before the problem is completely resolved as the session duration time elapses, the user must re-enter the message entered at the previous point in time and receive the same response message again to reach the original troubleshooting scenario. Bar, cumbersome and time wasting.
- the same session maintenance time is provided at the same time, so the user spends time solving the problem and the session ends unintentionally. can be
- a solution of extending the session maintenance time for all troubleshooting scenarios can be considered, but additional resource usage and cost increase due to the increase in the number of sessions to be managed at the same time, and the risk of personal information leakage may increase. have.
- an aspect of the present disclosure is to solve at least one of the above-mentioned problems and/or disadvantages, and to provide the advantages described below. Accordingly, an aspect of the present disclosure provides an electronic device that provides a session maintenance time suitable for a problem solving scenario by determining a basic session time and an additional session time according to characteristics of a response message, and an operating method thereof.
- a method for determining a time for an electronic device to maintain a session of a chatbot includes outputting a response message to a user's input message, determining a basic session time for which a session is maintained, based on the difficulty level of the outputted response message, before outputting the response message Determining an additional session time based on conversation history information through the chatbot, waiting for a user to input an additional message for a session maintenance time that is the sum of the basic session time and the additional session time, and determining whether the additional message is input and determining to terminate the session based on the step.
- the determining of the basic session time includes obtaining a label value for the output difficulty level by applying the response message to a deep neural network model as an input, and on the obtained label value.
- the method may include determining a correspondingly mapped session time as the basic session time.
- the deep neural network model may be an artificial intelligence model trained through supervised learning that applies a plurality of learning messages as input and applies a label value related to difficulty as an output correct value (groundtruth) have.
- the conversation history information is information about at least one of the number of response messages previously output in a conversation before the response message is output and a session usage time in a scenario performed according to the output response message may include.
- the additional session time may be determined as a preset ratio to the total of the session usage time for each scenario.
- the determining of the additional session time includes calculating a session time usage rate by dividing the session usage time for each scenario by the basic session time, and setting the calculated session time usage rate to a preset threshold. and comparing with , and determining the additional session time based on a result of the comparison.
- the determining of the additional session time includes calculating an average value of the session usage time before the response message is output, comparing the calculated average value with a preset threshold, and based on the comparison result to determine the additional session time.
- the determining of the end of the session may include outputting a session end notification providing information about the end of the session before the session maintenance time elapses.
- the method includes storing session usage history information of a plurality of users for the output response message, and adjusting the basic session time based on the stored session usage history information of the plurality of users. It may further include the step of
- the session usage history information includes at least the number of session extension requests at a time before the response message is output, the number of scenarios performed before the response message, and a session usage time used for the response message. and statistical data of the plurality of users about one.
- an electronic device for determining a session maintenance time of a chatbot.
- the electronic device includes a communication interface for transmitting and receiving data with another device, a memory, and a processor for executing one or more instructions, wherein the processor obtains an input message input by a user through the communication interface and output a response message to the input message, determine a basic session time for which a session is maintained based on the difficulty of the output response message, and have a conversation through the chatbot before outputting the response message An additional session time is determined based on the history information, the user waits for an additional message input for a session maintenance time that is the sum of the basic session time and the additional session time, and the session termination is determined based on whether the additional message is input. .
- the processor obtains a label value related to the output difficulty by applying the response message to a deep neural network model as an input, and sets a session time mapped to correspond to the obtained label value. This can be determined by the default session time.
- the deep neural network model may be an artificial intelligence model trained through supervised learning that applies a plurality of learning messages as input and applies a label value related to difficulty as an output correct value (groundtruth) have.
- the conversation history information is information on at least one of the number of response messages previously output in a conversation before the response message is output and a session usage time in a scenario performed according to the output response message may include.
- the processor may determine the additional session time as a preset ratio to the total of the session usage time for each scenario.
- the processor calculates a session time usage rate by performing an operation by dividing the session usage time for each scenario by the basic session time, compares the calculated session time usage rate with a preset threshold, and adds Based on this, the additional session time may be determined.
- the processor may output a session termination notification providing information about the session termination before the session maintenance time elapses.
- the processor stores the session use history information of a plurality of users with respect to the output response message in the database of the memory, and determines the basic session time based on the stored session use history information of the plurality of users. can be adjusted.
- the session use history information includes at least the number of session extension requests at a time point before the response message is output, the number of scenarios performed before the response message, and a session use time used for the response message. and statistical data of the plurality of users about one.
- the computer program product includes a computer-readable recording medium in which a program for execution by a computer is recorded.
- FIG. 1 is a conceptual diagram illustrating a method in which an electronic device provides a chatbot service to a client device through a network according to an embodiment of the present disclosure.
- FIG. 2 is a conceptual diagram illustrating a method for an electronic device to determine a session maintenance time according to an embodiment of the present disclosure.
- FIG. 3 is a block diagram illustrating components of an electronic device according to an embodiment of the present disclosure.
- FIG. 4 is a flowchart illustrating a method of operating an electronic device according to an embodiment of the present disclosure.
- 5A is a diagram illustrating a method of learning, by an electronic device, a deep neural network model for classifying a difficulty level of a response message according to an embodiment of the present disclosure.
- 5B is a diagram illustrating a method for an electronic device to obtain difficulty information about a response message using a deep neural network model according to an embodiment of the present disclosure.
- 5C is a diagram illustrating a method for an electronic device to determine a basic session time based on difficulty according to an embodiment of the present disclosure
- FIG. 6 is a flowchart illustrating a method of operating an electronic device according to an embodiment of the present disclosure.
- FIG. 7 is a time table showing a relationship between a basic session time and a session use time according to an input message input by a user and a response message provided by the chatbot.
- FIG. 8 is a flowchart illustrating a method in which an electronic device determines to provide an additional session time according to an embodiment of the present disclosure.
- FIG. 9 is a flowchart illustrating a method for an electronic device to determine provision of an additional session time according to an embodiment of the present disclosure.
- FIG. 10 is a flowchart illustrating a method for an electronic device to determine provision of an additional session time according to an embodiment of the present disclosure.
- FIG. 11 is a flowchart illustrating a method in which an electronic device outputs a session termination notification according to an embodiment of the present disclosure.
- FIG. 12 is a flowchart illustrating a method for an electronic device to adjust a basic session time according to an embodiment of the present disclosure.
- FIG. 13 is a flowchart illustrating a method of extending or shortening a basic session time by an electronic device according to an embodiment of the present disclosure.
- the expression “at least one of a, b, or c” refers to a only, b only, c only, both a and b, both a and c, both b and c, a, b, c , all or a variant thereof.
- a processor configured (or configured to perform) A, B, and C refers to a dedicated processor (eg, an embedded processor) for performing the operations, or by executing one or more software programs stored in memory; It may refer to a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.
- chatbot' is an abbreviation of a chat robot, and is an artificial intelligence service configured to perform an operation such as providing information about a question or providing a service related to a request through a conversation with a user using a voice signal or text to be.
- a chatbot is a service that interacts through a messenger application and is provided through preset rules or artificial intelligence technology.
- a 'session' is a set of a user's message input through the chatbot within a certain period and a response message of the chatbot.
- the 'session holding time' is a time during which the session is maintained without being terminated.
- the session maintenance time starts from the point in time when the chatbot's response message to the user's input message is output.
- the session duration is updated and initialized when the user inputs a message.
- 'session use time' refers to the time a user uses a session, and refers to a time interval between a time when a response message of the chatbot is output and a time when the user inputs a response message or an additional message related to the response message.
- a 'scenario' is a problem solving step (or process) such as a request, a question, an answer, or provision of information through a response message provided by the chatbot to a user's input message.
- the scenario may refer to a problem solving step through a response message related to a request, question, answer, or information provision provided by the chatbot until the failure receipt is completed.
- the session usage time and scenario will be described with reference to FIG. 7 .
- FIG. 1 is a conceptual diagram illustrating a method in which an electronic device provides a chatbot service to a client device through a network according to an embodiment of the present disclosure.
- an electronic device 1000 is a computing device that receives an input message from a user of the client devices 3001 , 3002 , and 3003 and provides a response message related to the input message.
- the electronic device 1000 may be implemented as a chatbot that provides a response message to an input message, but is not limited thereto.
- the electronic device 1000 may be configured as a server or a workstation.
- the present invention is not limited thereto, and the electronic device 1000 may include, for example, a smart phone, a tablet personal computer, a mobile phone, a video phone, and an e-book reader. ), a desktop personal computer (PC), a laptop personal computer (PC), a netbook computer, a personal digital assistant (PDA), or a portable multimedia player (PMP).
- a smart phone a tablet personal computer
- a mobile phone a video phone
- PDA personal digital assistant
- PMP portable multimedia player
- the electronic device 1000 may transmit/receive data between the client devices 3001 , 3002 , and 3003 through the network 2000 .
- the network 2000 is not limited to a specific communication method such as wired or wireless, and may be configured.
- the network 2000 includes, for example, Ethernet, wired/wireless local area network (LAN), Wi-Fi, Wi-Fi Direct (WFD), and WiGig (Wireless Gigabit Allicance, WiGig). It may be configured as at least one of wired and wireless data communication methods.
- the client devices 3001 , 3002 , and 3003 are terminals used by a user to receive a chatbot service from the electronic device 1000 through a chatbot application.
- the user may execute a chatbot application through the client devices 3001 , 3002 , and 3003 , input a text message into the chatbot application, and receive a response message provided from the electronic device 1000 .
- the client devices 3001 , 3002 , and 3003 receive a user's voice input, convert the voice input into text, and transmit it to the electronic device 1000 , and a response message to the text from the electronic device 1000 . can receive
- Client devices 3001 , 3002 , 3003 may be, for example, smart phones, tablet PCs, mobile phones, videophones, e-book readers, desktop PCs, laptop PCs, netbook computers, PDA's, PMPs, mobile medical devices, or wearable devices. It may consist of at least one of
- the electronic device 1000 of the present disclosure receives an input message from the client devices 3001 , 3002 , and 3003 through a network 2000 , and responds to the client devices 3001 , 3002 , and 3003 . It is not limited to providing a message. In an embodiment, unlike the embodiment shown in FIG. 1 , the electronic device 1000 may directly receive an input message from a user without intervention of the network 2000 and may output a response message to the input message.
- FIG. 2 is a conceptual diagram illustrating a method for an electronic device to determine a session maintenance time according to an embodiment of the present disclosure.
- the electronic device 1000 may receive the first input message 210 stating “food in the refrigerator is not frozen” from the user, and may output a first response message 220 related to the first input message 210 .
- the first response message 220 may be a message requesting confirmation from the user with respect to the first input message 210 .
- the first response message 220 may be "Have you checked whether the power cord of the refrigerator is plugged into an outlet?"
- the electronic device 1000 initializes the session time when the first response message 220 is output.
- the electronic device 1000 waits for input of an additional message by the user for a preset default session maintenance time.
- the user can use the session time by checking the power cord.
- the electronic device 1000 When the second input message 230 is input from the user, the electronic device 1000 outputs a second response message 240 related to the second input message 230 .
- the second input message 230 may be configured as a user's answer or additional query regarding the first response message 220 .
- the second input message 230 may be “Yes, the power cord is plugged in well.”
- the second response message 240 may be a message related to the chatbot's additional request, response, or information provision regarding the second input message 230 .
- the second response message 240 may be “Have you checked whether the cooling engine of the refrigerator is running?”
- the electronic device 1000 initializes the session time when the second response message 240 is output.
- the electronic device 1000 may determine the basic session time based on the difficulty level of the second response message 240 .
- the difficulty level of the second response message 240 means the degree of difficulty and easiness of problem solving through request, question, answer, or information provided by the response message.
- the electronic device 1000 performs learning to classify response messages according to difficulty using the deep neural network model, and obtains information about the difficulty of the second response message 240 through the deep neural network model.
- the electronic device 1000 may determine the session time mapped to correspond to the difficulty level as the basic session time.
- the electronic device 1000 waits for input of an additional message by the user during the basic session time.
- the electronic device 1000 may determine to provide the additional session time.
- the electronic device 1000 may determine the additional session time based on the currently output response message, that is, the conversation history information before the second response message 240 is output. In an embodiment, before the second response message 240 is output, the electronic device 1000 determines at least one of the number of previously output response messages and the session usage time used in a scenario performed by the output response message. Based on the information about the additional session time may be determined.
- the electronic device 1000 checks the first response message 220 that is output before the second response message 240 that is the current response message is output, and the first response message 220 . Obtains information on the session usage time used by the user until the time the user inputs the second input message 230 in a scenario related to , based on the number of first response messages 220 and the session usage time in the previous scenario to determine the additional session time.
- the electronic device 1000 may determine a certain percentage of the basic session time as the additional session time. For example, the electronic device 1000 may determine 20% of the basic session time as the additional session time.
- the electronic device 1000 determines the sum of the basic session time and the additional session time as the session maintenance time.
- the electronic device 1000 may check whether the session maintenance time has elapsed, and output a session termination notification 250 when the session maintenance time has elapsed.
- the electronic device 1000 may extend or shorten the basic session time based on statistical data regarding conversation history information of other users related to the current response message.
- the session duration is determined in terms of the user's privacy protection, and the session is terminated when all the session duration times have elapsed.
- the chatbot according to the prior art when the session maintenance time elapses, the session is terminated regardless of whether the problem is completely solved. There was a problem that was cumbersome and time-consuming because it was possible to reach the problem-solving scenario.
- the chatbot according to the prior art provides the same session maintenance time in a batch, even though different processing times are required depending on the problem solving scenario. Problems with this termination may occur.
- a method of extending the session maintenance time for all problem solving scenarios can be considered, but the number of sessions that the chatbot must manage at the same time increases, thereby increasing resource use and increasing network cost This may additionally occur.
- the electronic device 1000 determines the basic session time according to the difficulty of the response message, determines to provide the additional session time based on conversation history information before the currently output response message, and It is possible to provide a chatbot service that adaptively adjusts the session time according to a problem-solving scenario by extending or shortening the session time using statistical data on session use history information of other users. Accordingly, the electronic device 1000 of the present disclosure can prevent in advance the waste of time and inconvenience caused when the user is repeatedly provided with the same response message after the session maintenance time has elapsed, and the technical effect of efficiencies in resource use and network cost there is
- FIG. 3 is a block diagram illustrating components of an electronic device according to an embodiment of the present disclosure.
- the electronic device 1000 may include a communication interface 1100 , a processor 1200 , and a memory 1300 .
- 3 illustrates only essential components for describing a function and/or operation of the electronic device 1000 , and the components included in the electronic device 1000 are not limited as illustrated in FIG. 3 .
- the communication interface 1100 is configured to transmit/receive data between the electronic apparatus 1000 and another device (eg, a client device).
- Communication interface 1100 for example, Ethernet (Ethernet), wired and wireless LAN (Local Area Network), Wi-Fi (Wi-Fi), WFD (Wi-Fi Direct), and WiGig (Wireless Gigabit Allicance, WiGig) Data communication may be performed with a server or another device using at least one of the included wired/wireless data communication methods.
- the electronic device 1000 is configured as a server, receives text data related to an input message from another device (eg, a client device) through the communication interface 1100 , and text data related to a response message can be transmitted.
- the electronic device 1000 may further include a voice input unit and an ASR model.
- the voice input unit may be configured as a device for receiving a voice input such as a user's query.
- the voice input unit may include, for example, a microphone.
- the voice input unit may receive a voice input (eg, utterance of the user) from the user through the microphone, and obtain a voice signal from the received voice input.
- the processor 1200 of the electronic device 1000 receives a user's voice input through a microphone, converts the received voice input into an acoustic signal, and generates noise (eg, non-voice) from the acoustic signal. component) to obtain a voice signal.
- noise eg, non-voice
- the ASR model is a voice recognition model that recognizes a user's voice, and is a model trained to convert a voice input received from the user into text and output it.
- the electronic device 1000 may convert a voice input into text using the ASR model.
- the electronic device 1000 has a function of detecting a specified voice input (eg, 'Hi Bixby', 'Ok Google', or a wake-up input such as such) or a voice signal obtained from some voice input. It may include a voice pre-processing module having a function of pre-processing.
- a specified voice input eg, 'Hi Bixby', 'Ok Google', or a wake-up input such
- a voice signal obtained from some voice input may include a voice pre-processing module having a function of pre-processing.
- the processor 1200 is configured to read and execute one or more instructions or program code, thereby controlling the electronic device 1000 to perform operations and/or functions. Instructions or program codes executed by the processor 1200 are stored in the memory 1300 , and the processor 1200 may execute instructions or program codes loaded from the memory 1300 , but is not limited thereto. . The processor 1200 may itself include instructions or program code.
- the processor 1200 may be composed of hardware components that perform arithmetic, logic, input/output operations and signal processing.
- the processor 1200 is, for example, a central processing unit (Central Processing Unit), a microprocessor, a graphic processing unit (ASICs), Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processors (DSPDs). Signal Processing Devices), PLDs (Programmable Logic Devices), and FPGAs (Field Programmable Gate Arrays) may be configured as at least one, but is not limited thereto.
- the memory 1300 may store instructions and program codes readable by the processor 1200 .
- the memory 1300 may include, for example, a flash memory type, a hard disk type, a multimedia card micro type, or a card type memory (eg, SD or XD memory). etc.), RAM (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic It may include at least one type of storage medium among a memory, a magnetic disk, and an optical disk.
- the processor 1200 may include a basic session time determination module 1210 , an additional session time determination module 1220 , an end notification module 1230 , and a session time adjustment module 1240 .
- the processor 1200 may receive a user input message through the communication interface 1100 .
- the processor 1200 recognizes a domain, an intent, and an entity name of the input message by analyzing the received user's input message, and provides information about the recognized domain, intent, and entity name.
- a response message can be output.
- the processor 1200 parses the text constituting the input message in units of morphemes, words, or phrases using a natural language understanding model, and morphemes , words, or linguistic features (eg, grammatical elements) of a phrase may be used to infer the meaning of a word extracted from the parsed text.
- the processor 1200 may recognize the domain, intent, and entity name by comparing the meaning of the inferred word with predefined domains, intents, and entity names provided from the natural language understanding model, respectively.
- the processor 1200 may output a response message set to correspond to a domain, an intent, and an entity name.
- the basic session time determination module 1210 is a module configured to obtain information on the difficulty 540 of the response message by analyzing the output response message, and to determine the basic session time based on the difficulty 540 of the response message.
- the basic session time determination module 1210 may include a deep neural network model 1214 .
- the present invention is not limited thereto, and the deep neural network model 1214 may be executed by the processor 1200 as a module separate from the basic session time determination module 1210 , or may be stored in the memory 1300 .
- the processor 1200 applies the text data of the output response message as an input to the deep neural network model 1214 by executing the instructions or program code related to the basic session time determination module 1210, and the deep neural network model 1214 It is possible to obtain a label value for the difficulty 540 that is output through .
- the deep neural network model 1214 may be a model trained to classify response messages according to the difficulty 540 .
- the deep neural network model 1214 may be implemented as a neural network model trained before the time when the response message is output.
- the deep neural network model 1214 applies a plurality of pre-obtained training messages as an input, and applies a label value related to the difficulty 540 set for each of the plurality of training messages as an output groundtruth. It can be trained through supervised learning.
- the 'difficulty level 540' refers to the degree of difficulty and ease of problem solving through a request, question, answer, or information provided by the message.
- the label value for the difficulty 540 may be defined as, for example, an integer value such as 0, 1, 2, ..., n, but is not limited thereto.
- the deep neural network model may be implemented as, for example, a convolutional neural network model (CNN), but is not limited thereto.
- the deep neural network model is a Recurrent Neural Network (RNN), a Restricted Boltzmann Machine (RBM), a Deep Belief Network (DBN), a Bidirectional Recurrent Deep Neural Network (BRDNN), or a deep Q-network. It can be implemented as a deep learning-based neural network model such as (Deep Q-Networks).
- the processor 1200 inputs a response message to the deep neural network model 1214, and through learning using the deep neural network model 1214, may obtain a label value related to the difficulty 540 in which the response message can be classified.
- the processor 1200 searches the session time DB 1310 for a label value related to the obtained difficulty 540, and information about the session time mapped to correspond to the label value from the session time DB 1310 can be obtained.
- the session time DB 1310 is a database that stores session times according to the difficulty 540 .
- the session time DB 1310 stores a plurality of difficulty label values and data regarding a plurality of session times.
- a plurality of session times may be mapped to correspond to a label value for each of a plurality of difficulty levels.
- the label value for each of a plurality of difficulty levels and data of a plurality of session times may be stored in the session time DB 1310 as a key-value type.
- FIGS. 5A to 5C and FIG. 6 A specific embodiment in which the processor 1200 determines a basic session time for a response message using the basic session time determination module 1210 will be described with reference to FIGS. 5A to 5C and FIG. 6 .
- the additional session time determination module 1220 is a module configured to receive information on whether the basic session time for the response message has elapsed from the basic session time determination module 1210 and to determine the additional session time for the response message.
- the additional session time determination module 1220 may determine the additional session time based on conversation history information before the response message is output.
- the conversation history information may include information about at least one of the number of response messages previously output in the conversation before the response message is output and the session use time for each scenario according to the output response message.
- the processor 1200 may determine whether to provide the additional session time based on the conversation history information by executing instructions or program code related to the additional session time determining module 1220 .
- the processor 1200 calculates a session time usage rate by dividing the session usage time for each scenario performed before output of the response message by the basic session time, and additional session time based on the calculated session time usage rate You can decide whether to provide
- the processor 1200 may calculate an average value of the session usage time for each scenario performed before the response message is output, and determine whether to provide the additional session time based on the calculated average value.
- the processor 1200 may determine as the additional session time a certain percentage of the total sum of session use times for each scenario. A specific embodiment in which the processor 1200 determines the additional session time will be described with reference to FIGS. 8 to 10 .
- the end notification module 1230 is a module configured to output a notification message regarding the end of the session when it is confirmed that the session maintenance time has elapsed.
- the end notification module 1230 may be configured as a natural language generation model.
- the termination notification module 1230 may generate a message informing the user that the session maintenance time has ended by using the intent and the entity name related to the response message, and may output the generated message.
- a session end message can be generated and output, for example, "Is the refrigerator problem resolved? End the chat.”
- the session maintenance time may be determined as the sum of the basic session time and the additional session time.
- the processor 1200 may check whether a session maintenance time has elapsed by executing commands or program codes related to the termination notification module 1230 , and may output a session termination notification message according to a result of the verification. An example of outputting the session termination notification message will be described with reference to FIG. 11 .
- the session time adjustment module 1240 is a module configured to adjust a basic session time based on session usage history information of a plurality of users with respect to the output response message. As the session time adjustment module 1240 receives information related to the elapse of the session maintenance time from the end notification module 1230, the session usage history information related to the response message currently output to the session usage history statistics DB 1320 is You can search for statistical data about The session time adjustment module 1240 may obtain session use history information of a plurality of users according to a search result of the session use history statistics DB 1320, and extend or shorten the basic session time based on the session use history information. . The session time adjustment module 1240 may provide information about the extended or shortened basic session time to the basic session time determination module 1210 .
- the session use history statistics DB 1320 is a database that stores statistical data on session use histories of a plurality of users.
- the session usage history information relates to at least one of the number of session extension requests at a time before the current response message is output, the number of scenarios performed before the response message, and the session usage time used for the response message Statistical data of a plurality of users may be included.
- the processor 1200 retrieves statistical data on the session usage histories of a plurality of users related to the current response message from the session usage history statistics DB 1320 by executing instructions or program codes related to the session time adjustment module 1240 . and may acquire session usage history information according to the search result.
- the processor 1200 may extend or shorten the basic session time based on session use history information. A specific embodiment in which the processor 1200 adjusts the basic session time based on session use history information will be described with reference to FIGS. 12 and 13 .
- the session time DB 1310 and the session usage history statistics DB 1320 may be configured as non-volatile memories.
- the non-volatile memory refers to a storage medium that stores and maintains information even when power is not supplied and can use the stored information again when power is supplied.
- the non-volatile memory includes, for example, a flash memory, a hard disk, a solid state drive (SSD), a multimedia card micro type, a card type memory (eg, SD or XD memory, or a memory such as such), a read only memory (ROM), a magnetic memory, a magnetic disk, and an optical disk.
- both the session time DB 1310 and the session usage history statistics DB 1320 are illustrated as being included in the memory 1300 , but are not limited thereto.
- at least one of the session time DB 1310 and the session usage history statistics DB 1320 may be configured as a database separate from the memory 1300 .
- at least one of the response session time DB 1310 and the session usage history statistics DB 1320 is not the electronic device 1000, but an external device or a component of an external server, and a communication interface 1100 It may be connected to the electronic device 1000 through wired/wireless communication.
- FIG. 4 is a flowchart illustrating a method of operating the electronic device 1000 according to an embodiment of the present disclosure.
- the electronic device 1000 outputs a response message to the user's input message.
- the electronic device 1000 may recognize the domain, intent, and entity name related to the input message by analyzing the user's input message using the natural language understanding model.
- the electronic device 1000 parses the text constituting the input message in units of morphemes, words, or phrases using the natural language understanding model, and morphemes, words, or The meaning of the word extracted from the parsed text can be inferred by using the linguistic features of the phrase (eg, grammatical elements).
- the electronic device 1000 may recognize the domain, intent, and entity name by comparing the meaning of the inferred word with predefined domains, intents, and entity names provided from the natural language understanding model, respectively.
- the electronic device 1000 may output a response message set to correspond to the recognized domain, intent, and entity name from the input message.
- the electronic device 1000 may generate a response message for solving a problem related to a domain, an intent, and an entity name using a natural language generation model, and may output the generated response message. .
- the electronic device 1000 determines a basic session time during which a session is maintained based on the difficulty of the output response message.
- the electronic device 1000 obtains a label value related to the output difficulty by applying a response message to the deep neural network model as an input, and determines a session time mapped to correspond to the obtained label value as the basic session time.
- a deep neural network model may be an artificial intelligence model trained through supervised learning that applies a plurality of learning messages as input and applies a label value related to difficulty as an output correct value (groundtruth) have.
- the electronic device 1000 determines the additional session time based on the conversation history information before the output of the response message. In an embodiment, the electronic device 1000 performs at least one of the number of response messages previously output in a conversation before the response message is output in step S410 and a session use time used in a scenario performed by the output response message It can be determined whether to provide additional session time based on the In an embodiment, the additional session time may be determined as a preset ratio to the total of the session usage time for each scenario.
- the electronic device 1000 waits for the user's input of an additional message for a session maintenance time that is the sum of the basic session time and the additional session time.
- the electronic device 1000 determines whether to terminate the session based on whether an additional message is input.
- the electronic device 1000 may check whether the session maintenance time has elapsed, and output a session termination notification message based on the check result.
- the electronic device 1000 may output a preset session termination notification message with respect to the response message, but is not limited thereto.
- the electronic device 1000 generates a session termination notification message asking whether to solve a problem related to an intent and an entity name recognized from a response message by using a natural language generation model, and terminates the generated session You can print a notification message.
- 5A is a diagram illustrating a method of learning, by an electronic device, a deep neural network model for classifying a difficulty level of a response message according to an embodiment of the present disclosure.
- the electronic device 1000 applies a plurality of learning messages 510-1 to 510-n for learning as an input, and relates to each of the plurality of learning messages 510-1 to 510-n.
- the deep neural network model 1214 may be trained by applying the label values 520-1 to 520-n of the difficulty as an output groundtruth.
- the plurality of training messages 510-1 to 510-n are messages previously acquired for training the deep neural network model 1214, and may be configured as examples of a chatbot response message to a user's input message.
- the plurality of learning messages 510-1 to 510-n include content related to a request, a question, an answer, or information provision.
- Multiple learning messages (510-1 to 510-n) are, for example, "The price of the Galaxy S7 LTE 128G model is 762,000 won", or "Did you check whether the power cord is plugged in?” etc. can be
- the plurality of training messages 510-1 to 510-n are input to the embedding module 1212 before being input to the deep neural network model 1214 .
- the embedding module 1212 is a module that parses and extracts the input text into at least one word, and digitizes the extracted at least one word as a vector.
- the embedding module 1212 may convert at least one word into an embedding vector using a known machine learning model such as word2vec, GloVe, or onehot coding, for example.
- the embedding model used by the embedding module 1212 is not limited to the examples listed above.
- the processor 1200 (refer to FIG. 3) of the electronic device 1000 extracts at least one word by parsing the plurality of learning messages 510-1 to 510-n in word units using the embedding module 1212, The extracted word can be converted into an embedding vector.
- the processor 1200 may arrange an embedding vector of at least one word in a matrix form.
- the first training message 510 - 1 is converted into a first embedding vector by the embedding module 1212
- the second training message 510 - 2 is sent to the embedding module 1212 .
- the processor 1200 may input the embedding vector to the deep neural network model 1214 .
- the embedding vector becomes a feature vector input to the deep neural network model 1214 .
- the deep neural network model 1214 is an artificial intelligence model configured to perform training using an embedding vector provided from the embedding module 1212 .
- the deep neural network model 1214 is supervised by applying an embedding vector as an input and applying label values 520-1 to 520-n related to difficulty as a groundtruth. learning) can be trained.
- the 'difficulty' refers to the degree of difficulty and easiness of problem solving through requests, questions, answers, or information provided by the plurality of learning messages 510-1 to 510-n.
- the difficulty level may be an integer value ranging from 0 to n, but is not limited thereto.
- the 'label value for difficulty' means a preset numerical value for the difficulty level.
- the first training message 510-1 “The price of the Galaxy S7 LTE model is 762,000 won.” is mapped to difficulty 0 and outputs the first label value 520-1 for difficulty 0. is learned
- the second learning message 510-2 "Have you checked whether the power cord is plugged in?" is mapped to difficulty 1, and the second label value 520-2 for difficulty 1 is output as the correct value.
- the deep neural network model 1214 may include a plurality of hidden layers that are internal layers for performing calculations.
- the deep neural network model 1214 is, for example, a Convolutional Neural Network (CNN), a Recurrent Neural Network (RNN), a Restricted Boltzmann Machine (RBM), or a Deep Belief Network (DBN). ), BRDNN (Bidirectional Recurrent Deep Neural Network), and deep Q-networks (Deep Q-Networks) may be configured as at least one.
- the deep neural network model 1214 is not limited to the above-described example, and may include all known deep learning-based neural network models.
- the deep neural network model 1214 is implemented as a convolutional neural network model (CNN)
- feature values are extracted from an embedding vector applied as an input using a filter having a preset size and a preset number of channels, and the extracted
- a plurality of layers including feature values may be obtained, and a feature vector map may be obtained by applying a weight to the plurality of layers.
- a rectified linear unit (ReLU) model is used, and the learning model is regularized through drop out to improve efficiency, and pooling or max pooling is performed. Operations for performing (max pooling) may be further added.
- ReLU rectified linear unit
- the feature values obtained through pooling or max pooling are integrated through a fully connected layer, and an activation function including softmax, sigmoid, and hyperbolic tangent. It can be learned to output a label related to the compression ratio value through .
- Values of parameters constituting the deep neural network model 1214 may be changed through learning of the deep neural network model 1214 . For example, weight and bias values of layers constituting the deep neural network model 1214 may be changed.
- 5B is a diagram illustrating a method for an electronic device to obtain difficulty information about a response message using a deep neural network model according to an embodiment of the present disclosure.
- the electronic device 1000 outputs a response message 530 to the user's input message.
- the electronic device 1000 may first input the output response message 530 into the embedding module 1212 in order to input it into the deep neural network model 1214 .
- the embedding module 1212 extracts at least one word by parsing the input text in word units, and digitizes the extracted at least one word into a vector to obtain an embedding vector can be printed out.
- the embedding vector output through the embedding module 1212 is input to the deep neural network model 1214 .
- the deep neural network model 1214 applies a plurality of training messages (510-1 to 510-n, see FIG. 5A) as inputs, and label values for difficulty (520-1 to 520-) n, see FIG. 5A) as an output correct answer value, is an artificial intelligence model trained through supervised learning.
- a label value that can be predicted by the difficulty of the response message 530 may be output.
- the difficulty level of the response message 530 “The price of the Galaxy Z Fold 5G 256G model is KRW 2,199,000” can be predicted to be 0, and the difficulty level is 0 through the deep neural network model 1214.
- a label value of can be output.
- 5C is a diagram illustrating a method for an electronic device to determine a basic session time based on difficulty according to an embodiment of the present disclosure
- the label value related to the difficulty of the response message 530 (see FIG. 5B ) output through the deep neural network model 1214 (see FIG. 5B ) may be input to the basic session time determination module 1210 .
- the basic session time determination module 1210 is a module configured to obtain difficulty information about the response message 530 and determine the basic session time based on the difficulty level of the response message. In an embodiment, the basic session time determination module 1210 may retrieve the session time according to the difficulty from the session time DB 1310 .
- the session time DB 1310 is a database that stores session times according to difficulty.
- the session time DB 1310 stores a plurality of difficulty label values 1312-1 to 1312-n and data regarding a plurality of session times 1314-1 to 1314-n.
- the plurality of session times 1314-1 to 1314-n may be mapped to correspond to label values 1312-1 to 1312-n for each of the plurality of difficulty levels.
- the data of the plurality of difficulty-related label values 1312-1 to 1312-n and the plurality of session times 1314-1 to 1314-n are key-value types. It may be stored in the time DB 1310 . In the embodiment shown in FIG.
- the first label value 1312-1 of difficulty 0 may be stored in the session time DB 1310 as a first session time 1314-1 of 30 seconds and a key-value type.
- the n-th label value 1312-n of difficulty n may be stored in the session time DB 1310 as the n-th session time 1314-n of 90 minutes and the key-value type.
- the electronic device 1000 may search for a session time according to the difficulty of the response message from the session time DB 1310 using the basic session time determination module 1210 and receive information about the session time.
- the basic session time determination module 1210 receives a label value related to the difficulty of the response message 530 (refer to FIG. 5B ), and a label value related to difficulty 0 in the session time DB 1310
- a first session time 1314 - 1 that is a session time according to can be searched for.
- the first session time 1314 - 1 is 30 seconds, and the basic session time determination module 1210 may obtain information about the session time (30 seconds) from the session time DB 1310 .
- FIG. 6 is a flowchart illustrating a method of operating an electronic device according to an embodiment of the present disclosure.
- steps S610 and S620 are concrete steps of step S410 shown in FIG. 4 .
- steps S630 to S660 illustrated in FIG. 6 are steps that embody step S420 illustrated in FIG. 4 .
- the electronic device 1000 determines a response message mapped to correspond to the input message.
- the electronic device 1000 may recognize a domain, an intent, and an entity of the input message by analyzing the input message received from the user.
- the electronic device 1000 parses the text constituting the input message in units of morphemes, words, or phrases using a natural language understanding model, The meaning of the word extracted from the parsed text may be inferred using the linguistic features (eg, grammatical elements) of morphemes, words, or phrases.
- the electronic device 1000 may recognize the domain, intent, and entity name by comparing the meaning of the inferred word with predefined domains, intents, and entity names provided from the natural language understanding model, respectively.
- the electronic device 1000 may output a response message for the recognized domain, intent, and entity name.
- the response message may be preset to correspond to a domain, an intent, and an entity name.
- the present invention is not limited thereto, and the electronic device 1000 may generate a response message related to a domain, an intent, and an entity name using a natural language generation model.
- step S620 the electronic device 1000 outputs the determined response message.
- the electronic device 1000 checks whether a basic session time for the response message is set.
- the electronic device 1000 When the basic session time is not set in the response message (step S640 ), the electronic device 1000 outputs a label value related to the difficulty of the response message through a deep neural network model.
- the 'deep neural network model' is an artificial trained through supervised learning that applies a plurality of learning messages as input and applies a label value of difficulty for each of the plurality of learning messages as an output correct value (groundtruth). intelligence model.
- the deep neural network model is a model trained in advance before the point in time when an input message is received from the user in step S610.
- the electronic device 1000 may obtain a label value predicted by the difficulty of the response message by applying the response message to the deep neural network model as an input.
- the electronic device 1000 determines the session time corresponding to the obtained label value of the difficulty level as the basic session time.
- the electronic device 1000 searches the session time DB 1310 (refer to FIG. 5C ) by using a label value related to the difficulty obtained through the deep neural network model, and session time information mapped to correspond to the label value. can be obtained.
- the electronic device 1000 may determine the session time obtained from the session time DB 1310 as the default session time.
- a default session time may be defined according to information, response, or request provided by a response message.
- the electronic device 1000 determines the preset session time as the default session time.
- FIG. 7 is a time table 700 according to an embodiment of the present disclosure, illustrating a relationship between a basic session time and a session use time according to an input message input by a user and a response message provided by the chatbot.
- the chatbot when a first input message 711 is input from the user at a first time point t 1 , the chatbot responds to a first response message regarding the first input message 711 at a second time point t 2 . (721) is output.
- the first basic session time 731 is provided for a predetermined time from the second time point t 2 at which the first response message 721 is output. Since the detailed method of determining the basic session time has been described with reference to FIGS. 5A to 5C and FIG. 6 , a redundant description thereof will be omitted.
- the user may input the second input message 712 at a third time point t 3 before the first basic session time 731 has elapsed, and in this case, the session time is updated.
- the first session usage time 741 is a time point t 2 at which the user receives the first response message 721, and then performs a specific operation according to a request, answer, or information provision by the first response message 721 or , means the time used before the time point t 3 at which the second input message 712 is input for an additional query or additional request.
- the first basic session time 731 may be 5 minutes
- the first session usage time 741 may be 4 minutes. If the session usage time exceeds the default session time, the session is terminated.
- the chatbot outputs a second response message 722 related to the second input message 712 at the fourth time point t 4 .
- the second basic session time 732 is provided for a predetermined time from the fourth time point t 4 at which the second response message 722 is output.
- the user may input the third input message 713 at a fifth time point t 5 before the second basic session time 732 has elapsed, and in this case, the session time is updated.
- the second session usage time 742 indicates that the user performs a specific operation according to a request, answer, or information provision by the second response message 722 after the time t 4 when the user receives the second response message 722 or , means the time used before the time point t 5 at which the third input message 713 is input for an additional query or additional request.
- the second basic session time 732 may be 10 minutes
- the second session usage time 742 may be 6 minutes.
- 'Scenario' means a problem solving step (or process) such as a request, a question, an answer, or provision of information through a response message provided by a chatbot to a user's input message.
- the scenario may be defined from a time point when a response message is provided to a time point when an additional input message of the user is input.
- the first scenario is from a second time point t 2 at which the first response message 721 is output to a third time point t 3 at which the second input message 712 is input.
- the second scenario is a time interval from a fourth time point t 4 at which the second response message 722 is output to a fifth time point t 5 at which the third input message 713 is input.
- the electronic device 1000 determines the additional session time based on information about at least one of the number of response messages previously output before the currently output response message and the session use time used in a scenario performed by the previously output response message can decide In an embodiment, when the number of previously output response messages is one or more, the electronic device 1000 may determine to provide the additional session time.
- the additional session time may be determined as a preset ratio with respect to the total of the session usage time for each scenario. A specific embodiment in which the electronic device 1000 determines the additional session time will be described in detail with reference to FIGS. 8 to 10 .
- FIG. 8 is a flowchart illustrating a method in which an electronic device determines to provide an additional session time according to an embodiment of the present disclosure.
- steps S810 to S830 are concrete steps of step S430 shown in FIG. 4 .
- Step S810 may be performed after step S420 shown in FIG. 4 is performed.
- step S440 shown in FIG. 4 is performed.
- step S810 the electronic device 1000 checks whether there is a pre-output response message before the response message.
- the electronic device 1000 determines a predetermined ratio of the sum of session use times for each scenario according to the previously output response message as the additional session time. Referring to FIG. 7 together, when the currently output response message is the third response message 723 (refer to FIG. 7), the first response message 721 (refer to FIG. 7) at a time before the third response message 723 is output. ) and two response messages including the second response message 722 (refer to FIG. 7 ) are output, the electronic device 1000 may determine to provide the additional session time. In addition, since the first session usage time 741 (refer to FIG. 7 ) and the second session usage time 742 (refer to FIG.
- the electronic device 1000 transmits the first session A predetermined ratio, for example, 20%, of the total of the use time 741 and the second session use time 742 may be determined as the additional session time. For example, when the first session usage time 741 is 4 minutes and the second session usage time 742 is 6 minutes, the electronic device 1000 sets the first session usage time 741 and the second session usage time ( 742), 2 minutes corresponding to 20% of the total may be determined as the additional session time for the third response message 723 (refer to FIG. 7).
- the electronic device 1000 determines not to provide the additional session time.
- FIG. 9 is a flowchart illustrating a method for an electronic device to determine provision of an additional session time according to an embodiment of the present disclosure.
- steps S910 to S940 are concrete steps of step S430 shown in FIG. 4 .
- Step S910 may be performed after step S420 shown in FIG. 4 is performed.
- step S440 shown in FIG. 4 is performed.
- the electronic device 1000 calculates a session time usage rate for each scenario.
- the electronic device 1000 may calculate the session time usage rate by performing an operation by dividing the session usage time by the basic session time. For example, if the basic session time is 10 minutes and the session usage time is 6 minutes, the session time usage rate may be 60%.
- the electronic device 1000 may calculate the session time usage rate for each scenario according to the previously output response message. Referring also to FIG. 7 , when the currently output response message is the third response message 723 (refer to FIG. 7 ), the electronic device 1000 determines the first session time usage rate in the first scenario and the second response message in the second scenario. 2
- the session time usage rate can be calculated. For example, in the first scenario, if the first basic session time (731, see FIG. 7) is 5 minutes and the first session usage time (741, see FIG. 7) is 4 minutes, the first session time usage rate is 80% , in the second scenario, when the second basic session time 732 (refer to FIG. 7) is 10 minutes and the second session usage time 742 (refer to FIG. 7) is 6 minutes, the second session time usage rate may be 60%.
- the electronic device 1000 compares the session time usage rate with a preset threshold ⁇ .
- the electronic device 1000 may determine whether the session time usage rate exceeds the threshold ⁇ .
- the electronic device 1000 determines to provide the additional session time. For example, when the preset threshold ⁇ is 50%, the first session time usage rate is 80% and the second session time usage rate is 60%, so the electronic device 1000 sets the session time usage rate to the preset threshold ⁇ ) has been exceeded, and may decide to provide additional session time.
- the additional session time may be determined as a certain percentage of the total of the session usage time for each scenario. For example, if the first session usage time is 4 minutes and the second session usage time is 6 minutes, the additional session time may be determined as 2 minutes, which is 20% of the total of the first session usage time and the second session usage time. .
- the electronic device 1000 determines not to provide the additional session time.
- FIG. 10 is a flowchart illustrating a method for an electronic device to determine provision of an additional session time according to an embodiment of the present disclosure.
- steps S1010 to S1040 are concrete steps of step S430 shown in FIG. 4 .
- Step S1010 may be performed after step S420 shown in FIG. 4 is performed.
- step S440 shown in FIG. 4 is performed.
- the electronic device 1000 calculates an average value of the session use time before the response message is output.
- the electronic device 1000 sets the session use time in the first scenario and the session use time in the second scenario. can calculate the average value of For example, if the first session usage time (741, see FIG. 7) used in the first scenario is 4 minutes and the second session usage time (742, see FIG. 7) used in the second scenario is 6 minutes, the average value can be calculated in 5 minutes.
- the electronic device 1000 compares the calculated average value with a preset threshold value t th to determine whether the average value exceeds the threshold value t th .
- the electronic device 1000 may determine to provide the additional session time. For example, when the preset threshold t th is 3 minutes, the average value calculated in step S1010 is 5 minutes, so the electronic device 1000 may determine to provide the additional session time.
- the additional session time may be determined as a certain percentage of the total of the session usage time for each scenario. For example, if the first session usage time is 4 minutes and the second session usage time is 6 minutes, the additional session time may be determined as 2 minutes, which is 20% of the total of the first session usage time and the second session usage time. .
- the electronic device 1000 determines not to provide the additional session time.
- the user's burden for terminating the session may increase. If time is taken due to a user's action (eg, checking for a failure, checking a device status, or an action like this) according to the current response message 723 , or if input of an additional message is accidentally omitted, the default session Time elapses, and thus the session may end. In this case, the user has to repeatedly input the same input message in order to arrive at the same response message 723 , which is cumbersome and reduces user convenience.
- a user's action eg, checking for a failure, checking a device status, or an action like this
- the electronic device 1000 according to the embodiment shown in FIGS. 8 to 10 , the number of previously output response messages 721 and 722 (refer to FIG. 7 ) before the currently output response message 723 and the previously output response messages Since the additional session time is provided based on at least one piece of information among the session usage times for each scenario according to steps 721 and 722 , a problem in which the session is unintentionally terminated due to the elapse of the basic session time can be solved. In addition, by considering the session usage time used by the user until the current response message 723 is reached, it is possible to provide an additional session time optimized according to the user, thus improving user convenience.
- FIG. 11 is a flowchart illustrating a method in which an electronic device outputs a session termination notification according to an embodiment of the present disclosure.
- steps S1110 to S1150 are concrete steps of step S450 shown in FIG. 4 .
- Step S1110 is performed after step S440 shown in FIG. 4 is performed.
- the electronic device 1000 checks whether the session maintenance time has elapsed.
- the session maintenance time may be determined as the sum of the basic session time and the additional session time.
- the electronic device 1000 may check whether an additional message from the user is input during the session maintenance time from the time the response message is output.
- the electronic device 1000 outputs a session termination notification.
- the electronic device 1000 uses a natural language generation model to generate a message informing the user that the session maintenance time has ended by using an intent and an entity name related to the response message, and the generated message can be printed.
- the end-of-session notification message could be, for example, "Are the issues with the refrigerator fixed? End the chat.”
- the electronic device 1000 checks whether a user's response message to the termination notification is input.
- the user's response message may be, for example, a message indicating whether a problem is solved by Y/N, such as "yes" or "no", but is not limited thereto.
- the reply message may be a message related to an additional query or additional request.
- the electronic device 1000 updates the session maintenance time.
- the electronic device 1000 determines to end the session. In one embodiment, even if a reply message has been entered, if the reply message is a message indicating that the problem has been resolved (eg, "yes" to "Is the problem with the refrigerator fixed? End the chat.” message), the electronic device 1000 may determine to end the session.
- the electronic device 1000 does not immediately terminate the session when the session maintenance time has elapsed, but notifies the user of whether the session is terminated by outputting a session termination notification message, and, if necessary, adds the user Allows you to enter a message. Accordingly, the electronic device 1000 of the present disclosure may prevent a problem in which a session is unintentionally terminated and improve user convenience.
- FIG. 12 is a flowchart illustrating a method for an electronic device to adjust a basic session time according to an embodiment of the present disclosure.
- the electronic device 1000 stores statistical data related to session use history information of a plurality of users.
- the session usage history information may be statistical data of a plurality of users regarding at least one of the number of session extension requests, the number of scenarios performed before the response message is output, and the session usage time.
- the electronic device 1000 may classify and store session use history information for each response message.
- the electronic device 1000 adjusts the basic session time based on session use history information.
- the electronic device 1000 may extend or shorten the basic session time based on session use history information of a plurality of users regarding the currently output response message. A specific embodiment in which the electronic device 1000 extends or shortens the basic session time will be described with reference to FIG. 13 .
- FIG. 13 is a flowchart illustrating a method of extending or shortening a basic session time by an electronic device according to an embodiment of the present disclosure.
- the electronic device 1000 checks whether a session extension request has been made in a previous session.
- the electronic device 1000 searches for statistical data on session use history information related to a currently output response message from session use history information of a plurality of users stored in the session history statistics DB 1320 (refer to FIG. 3 ). can do.
- the session use history statistics DB 1320 is a database that stores statistical data on session use histories of a plurality of users. According to a search result of the session use history statistics DB 1320 , the electronic device 1000 may obtain information on whether a session extension request was made by a plurality of users in the session before the response message is output.
- the electronic device 1000 When it is confirmed that there is a session extension request (step S1320), the electronic device 1000 increases the number of session extension times by one.
- the electronic device 1000 determines whether the number of session extensions exceeds ⁇ % of the total number of sessions.
- the electronic device 1000 When it is determined that the number of session extensions exceeds ⁇ % of the total number of sessions (step S1340 ), the electronic device 1000 extends the basic session time for the response message.
- the electronic device 1000 updates the session time.
- the electronic device 1000 determines whether the maximum value of the session use time for the response message is less than ⁇ % of the basic session time.
- the electronic device 1000 may obtain information about session usage time by a plurality of users in response to the currently output response message from the session usage history statistics DB 1320 .
- the electronic device 1000 checks the maximum value of the session use time from information about the session use time used by a plurality of users obtained from the session use history statistics DB 1320, and the maximum value is ⁇ % of the basic session time (eg, 50%) may be determined.
- the electronic device 1000 When the maximum value of the session use time is less than ⁇ % (step S1370), the electronic device 1000 shortens the basic session time related to the response message.
- the electronic device 1000 may shorten the basic session time by 25%, for example.
- the electronic device 1000 stores session use history information of other users with respect to the response message, and extends the basic session time by using the stored session use history information of a plurality of users. Alternatively, for short, there is a technical effect of adaptively adjusting the basic session time to reflect a plurality of user experiences.
- the program executed by the electronic device 1000 described in this specification may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component.
- a program may be executed by any system capable of executing computer readable instructions.
- Software may comprise a computer program, code, instructions, or a combination of one or more of these, which configures a processing device to operate as desired or is independently or collectively processed You can command the device.
- the software may be implemented as a computer program including instructions stored in a computer-readable storage medium.
- the computer-readable recording medium includes, for example, a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optically readable medium (eg, CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc.
- the computer-readable recording medium is distributed among network-connected computer systems, so that the computer-readable code can be stored and executed in a distributed manner.
- the medium may be readable by a computer, stored in a memory, and executed on a processor.
- the computer-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-transitory' means that the storage medium does not include a signal and is tangible, and does not distinguish that data is semi-permanently or temporarily stored in the storage medium.
- program according to the embodiments disclosed in the present specification may be provided by being included in a computer program product.
- Computer program products may be traded between sellers and buyers as commodities.
- the computer program product may include a software program, a computer-readable storage medium in which the software program is stored.
- the computer program product may be a product (eg, downloadable application (downloadable application)).
- downloadable application downloadable application
- the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing a software program.
- the computer program product in a system consisting of a server and a device, may include a storage medium of the server or a storage medium of the device.
- the computer program product when there is a server or a third device (eg, a smart phone) that is communicatively connected to the server, the computer program product may include a storage medium of the third device.
- the computer program product may include the software program itself transmitted from the server to the device or the third device, or transmitted from the third device to the device.
- one of the server, the device and the third device may execute the computer program product to perform the method according to the disclosed embodiments.
- two or more of a server, a device, and a third device may execute a computer program product to distribute the method according to the disclosed embodiments.
- the server may execute a computer program product stored in the server to control a device communicatively connected with the server to perform the method according to the disclosed embodiments.
- the third device may execute a computer program product to control the device communicatively connected with the third device to perform the method according to the disclosed embodiment.
- the third device may download the computer program product from the server and execute the downloaded computer program product.
- the third device may execute the computer program product provided in a preloaded state to perform the method according to the disclosed embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
챗봇에서 응답 메시지의 특성에 따라 세션 유지 시간을 결정하는 전자 장치 및 그 동작 방법을 제공한다. 본 개시의 일 실시예에 따른 전자 장치는, 응답 메시지의 난이도에 기초하여 기본 세션 시간을 결정하고, 응답 메시지의 출력 이전의 챗봇을 통한 대화 이력 정보에 기초하여 추가 세션 시간을 결정하며, 기본 세션 시간과 추가 세션 시간을 합하여 세션 유지 시간을 결정하고, 세션 유지 시간을 제공하도록 구성된다.
Description
본 개시는 사용자의 입력 메시지에 관한 응답 메시지를 제공하는 챗봇(chatbot)에서 세션을 유지하는 시간을 결정하는 전자 장치 및 그 동작 방법에 관한 것이다.
사용자가 전자 장치에 질의 메시지를 입력하거나, 또는 음성 메시지를 통해 질문을 하는 경우, 사용자의 질의에 대한 답변을 제공하는 시스템이 이용되고 있다. 더 구체적으로, 최근에는, 인공지능 및 빅 데이터 기술이 발전됨에 따라, 챗봇(chatbot)과 같은 지능형 응답 시스템이 널리 이용되고 있다. '챗봇'은 채팅 로봇의 약어로서, 음성 신호 또는 텍스트를 이용한 사용자와의 대화를 통해 질문에 관한 정보를 제공하거나, 요청에 관한 서비스를 제공하는 등 동작을 수행하도록 구성되는 인공지능 서비스이다. 챗봇은 메신저 애플리케이션을 통해 상호 작용하는 서비스로 기설정된 규칙 또는 인공지능 기술을 통해 제공된다.
챗봇을 통한 대화에서, 사용자의 개인 정보 보호 측면에서 세션 유지 시간이 결정되고, 세션 유지 시간이 모두 경과하는 경우 세션은 종료된다. 세션 유지 시간은 사용자의 입력에 의해 갱신된다. 세션 유지 시간이 경과됨에 따라 문제가 완전히 해결되기 전에 세션이 종료되는 경우, 사용자는 이전 시점에 입력하였던 메시지를 다시 입력하고, 동일한 응답 메시지를 다시 제공받아야 원래 진행하던 문제 해결 시나리오에 도달할 수 있는바, 번거롭고 시간이 낭비된다. 또한, 문제 해결 시나리오에 따라 각기 다른 진행 시간이 필요함에도 불구하고, 일괄적으로 동일한 세션 유지 시간을 제공되는바, 사용자가 문제에 관한 해결에 시간이 소모되어 의도치 않게 세션이 종료되는 문제점이 발생될 수 있다.
세션 유지 시간을 모든 문제 해결 시나리오에 대하여 연장하는 해결책을 고려할 수 있지만, 동시에 관리해야 되는 세션 수의 증가에 따른 추가 리소스 사용과 그에 따른 비용 증가가 발생될 수 있으며, 개인 정보의 유출 위험도가 높아질 수 있다.
상기 정보는 단지 본 개시의 이해를 돕기 위한 배경 정보로만 제공된다. 상기 내용 중 어느 것이 본 개시와 관련하여 선행 기술로 적용될 수 있는지 여부에 대하여 결정되지 않았으며, 어떠한 주장(assertion)도 이루어지지 않았다.
본 개시의 일 측면은 상기 언급된 문제점 및/또는 단점 중 적어도 하나를 해결하고, 이하에서 설명되는 이점을 제공하기 위한 것이다. 따라서, 본 개시의 일 측면(aspect)은 응답 메시지의 특성에 따라 기본 세션 시간 및 추가 세션 시간을 결정함으로써, 문제 해결 시나리오에 적합한 세션 유지 시간을 제공하는 전자 장치 및 그 동작 방법을 제공한다.
추가적인 측면은 하기의 기재를 통해 부분적으로 설명될 것이고, 기재로부터 명백하며, 제시된 실시예의 실시에 의해 학습될 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치가 챗봇(chatbot)의 세션을 유지하는 시간을 결정하는 방법이 제공된다. 상기 방법은 사용자의 입력 메시지에 대한 응답 메시지를 출력하는 단계, 상기 출력된 응답 메시지의 난이도에 기초하여, 세션(session)이 유지되는 기본 세션 시간을 결정하는 단계, 상기 응답 메시지의 출력 이전의 상기 챗봇을 통한 대화 이력 정보에 기초하여 추가 세션 시간을 결정하는 단계, 상기 기본 세션 시간과 상기 추가 세션 시간을 합한 세션 유지 시간 동안 사용자의 추가 메시지 입력을 대기하는 단계, 및 상기 추가 메시지의 입력 여부에 기초하여 세션 종료를 결정하는 단계를 포함한다.
일 실시예에서, 상기 기본 세션 시간을 결정하는 단계는 심층 신경망 모델( deep neural network)에 상기 응답 메시지를 입력으로 적용함으로써 출력된 난이도에 관한 라벨값을 획득하는 단계, 및 상기 획득된 라벨값에 대응되도록 매핑된 세션 시간을 상기 기본 세션 시간으로 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 심층 신경망 모델은 복수의 학습용 메시지를 입력으로 적용하고, 난이도에 관한 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된 인공지능 모델일 수 있다.
일 실시예에서, 상기 대화 이력 정보는 상기 응답 메시지가 출력되기 이전의 대화에서 기 출력된 응답 메시지의 수 및 상기 기 출력된 응답 메시지에 따라 수행된 시나리오에서의 세션 사용 시간 중 적어도 하나에 관한 정보를 포함할 수 있다.
일 실시예에서, 상기 추가 세션 시간은 상기 시나리오 별 세션 사용 시간의 총합에 대한 기설정된 비율로 결정될 수 있다.
일 실시예에서, 상기 추가 세션 시간을 결정하는 단계는 상기 시나리오 별 세션 사용 시간을 상기 기본 세션 시간으로 나누는 연산을 수행함으로써, 세션 시간 사용률을 산출하는 단계, 상기 산출된 세션 시간 사용률을 기 설정된 임계치와 비교하는 단계, 및 비교 결과에 기초하여 상기 추가 세션 시간을 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 추가 세션 시간을 결정하는 단계는 상기 응답 메시지가 출력되기 이전의 세션 사용 시간의 평균값을 산출하는 단계, 상기 산출된 평균값을 기 설정된 임계치와 비교하는 단계, 및 비교 결과에 기초하여 상기 추가 세션 시간을 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 세션 종료를 결정하는 단계는 상기 세션 유지 시간이 경과하기 전에 상기 세션 종료에 관한 정보를 제공하는 세션 종료 알림을 출력하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 출력된 응답 메시지에 대한 복수의 사용자의 세션 사용 이력 정보를 저장하는 단계, 상기 저장된 복수의 사용자의 세션 사용 이력 정보에 기초하여 상기 기본 세션 시간을 조정(adjust)하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 세션 사용 이력 정보는 상기 응답 메시지가 출력되기 이전 시점에서의 세션 연장 요청 횟수, 상기 응답 메시지 이전에 수행된 시나리오의 수, 및 상기 응답 메시지에 대하여 사용된 세션 사용 시간 중 적어도 하나에 관한 상기 복수의 사용자의 통계 데이터를 포함할 수 있다.
본 개시의 다른 측면(another aspect)에 따르면, 챗봇의 세션 유지 시간을 결정하는 전자 장치가 제공된다. 상기 전자 장치는 타 디바이스와의 데이터 송수신을 수행하는 통신 인터페이스, 메모리, 하나 이상의 명령어들(instructions)을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 통신 인터페이스를 통해 사용자에 의해 입력된 입력 메시지를 획득하고, 상기 입력 메시지에 대한 응답 메시지를 출력하고, 상기 출력된 응답 메시지의 난이도에 기초하여, 세션(session)이 유지되는 기본 세션 시간을 결정하고, 상기 응답 메시지의 출력 이전의 상기 챗봇을 통한 대화 이력 정보에 기초하여 추가 세션 시간을 결정하고, 상기 기본 세션 시간과 상기 추가 세션 시간을 합한 세션 유지 시간 동안 사용자의 추가 메시지 입력을 대기하고, 상기 추가 메시지의 입력 여부에 기초하여 세션 종료를 결정한다.
일 실시 예에서, 상기 프로세서는 심층 신경망 모델( deep neural network)에 상기 응답 메시지를 입력으로 적용함으로써 출력된 난이도에 관한 라벨값을 획득하고, 상기 획득된 라벨값에 대응되도록 매핑된 세션 시간을 상기 기본 세션 시간으로 결정할 수 있다.
일 실시예에서, 상기 심층 신경망 모델은 복수의 학습용 메시지를 입력으로 적용하고, 난이도에 관한 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된 인공지능 모델일 수 있다.
일 실시 예에서, 상기 대화 이력 정보는 상기 응답 메시지가 출력되기 이전의 대화에서 기 출력된 응답 메시지의 수 및 상기 기 출력된 응답 메시지에 따라 수행된 시나리오에서의 세션 사용 시간 중 적어도 하나에 관한 정보를 포함할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 시나리오 별 세션 사용 시간의 총합에 대한 기설정된 비율로 상기 추가 세션 시간을 결정할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 시나리오 별 세션 사용 시간을 상기 기본 세션 시간으로 나누는 연산을 수행함으로써, 세션 시간 사용률을 산출하고, 상기 산출된 세션 시간 사용률을 기 설정된 임계치와 비교하고, 비교 결과에 기초하여 상기 추가 세션 시간을 결정할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 세션 유지 시간이 경과하기 전에 상기 세션 종료에 관한 정보를 제공하는 세션 종료 알림을 출력할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 출력된 응답 메시지에 대한 복수의 사용자의 세션 사용 이력 정보를 상기 메모리의 데이터베이스에 저장하고, 상기 저장된 복수의 사용자의 세션 사용 이력 정보에 기초하여 상기 기본 세션 시간을 조정(adjust)할 수 있다.
일 실시 예에서, 상기 세션 사용 이력 정보는 상기 응답 메시지가 출력되기 이전 시점에서의 세션 연장 요청 횟수, 상기 응답 메시지 이전에 수행된 시나리오의 수, 및 상기 응답 메시지에 대하여 사용된 세션 사용 시간 중 적어도 하나에 관한 상기 복수의 사용자의 통계 데이터를 포함할 수 있다.
본 개시의 다른 측면에 따르면, 컴퓨터 프로그램 제품(computer program product)이 제공된다. 상기 컴퓨터 프로그램 제품은 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.
본 개시 내용의 특정 실시예의 상기 측면, 다른 측면, 특징들, 및 실시예들의 이점은 첨부된 도면과 결합된 하기 설명으로부터 명백해질 것이다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 네트워크를 통해 클라이언트 디바이스에 챗봇 서비스를 제공하는 방법을 도시한 개념도이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 세션 유지 시간을 결정하는 방법을 설명하기 위한 개념도이다.
도 3은 본 개시의 일 실시예에 따른 전자 장치의 구성 요소를 도시한 블록도이다.
도 4는 본 개시의 일 실시예에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 5a는 본 개시의 일 실시예에 따른 전자 장치가 응답 메시지의 난이도 분류를 위한 심층 신경망 모델의 학습 방법을 도시한 도면이다.
도 5b는 본 개시의 일 실시예에 따른 전자 장치가 심층 신경망 모델을 이용하여 응답 메시지에 관한 난이도 정보를 획득하는 방법을 도시한 도면이다.
도 5c는 본 개시의 일 실시예에 따른 전자 장치가 난이도에 기초하여 기본 세션 시간을 결정하는 방법을 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 7은 사용자에 의해 입력되는 입력 메시지, 챗봇에 의해 제공되는 응답 메시지에 따른 기본 세션 시간 및 세션 사용 시간의 관계를 도시한 타임 테이블이다.
도 8은 본 개시의 일 실시예에 따른 전자 장치가 추가 세션 시간의 제공을 결정하는 방법을 도시한 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 전자 장치가 추가 세션 시간의 제공을 결정하는 방법을 도시한 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 전자 장치가 추가 세션 시간의 제공을 결정하는 방법을 도시한 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 전자 장치가 세션 종료 알림을 출력하는 방법을 도시한 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 전자 장치가 기본 세션 시간을 조정하는 방법을 도시한 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 전자 장치가 기본 세션 시간을 연장 또는 단축하는 방법을 도시한 흐름도이다.
도면 전체에 걸쳐, 유사한 참조 번호는 유사한 부분(parts), 구성 요소(components) 및 구조를 지칭하는 것으로 이해될 것이다.
첨부된 도면을 참조한 하기 설명은 청구항 및 그 균등 범위에 의해 정의된 바와 같은 본 개시의 다양한 실시예의 포괄적인 이해를 돕기 위해 제공된다. 하기 설명은 이해를 돕기 위한 다양한 특정 세부 사항이 포함되어 있지만, 이는 단지 예시적인 것으로 간주된다. 따라서, 본 기술 분야의 통상의 지식을 가진 자는 본 개시의 범위(scope) 및 사상(spirit)을 벗어나지 않고 본 개시에 기재된 다양한 실시예의 다양한 변형 및 수정이 이루어질 수 있음을 인식할 것이다. 또한, 명확성(clarity) 및 간결함(conciseness)를 위하여 잘 알려진 기능 및 구성에 관한 설명은 생략될 수 있다.
하기의 설명 및 청구항에서 사용된 용어 및 단어들은 문헌상의 의미에 한정되지 않으며, 본 개시의 명확하고 일관된 이해를 가능하게 하기 위해 본 발명자가 사용한 것에 불과하다. 따라서, 본 개시의 다양한 실시예에 대한 하기 설명은 단지 예시의 목적으로 제공되고 첨부된 청구항 및 그 균등 범위에 의해 정의된 바와 같은 본 개시를 제한하기 위한 것이 아님이 당업자에게 명백하여야 한다.
단수 형태 "a", "an" 및 "the"는 문맥이 달리 명백하게 지시하지 않는 한 복수의 지시 대상을 포함하는 것으로 이해되어야 한다. 따라서, 예를 들어 "구성요소 표면(a component surface)"에 대한 언급은 그러한 표면 중 하나 이상에 대한 언급을 포함한다.
본 개시의 전반에 걸쳐, "a, b, 또는 c 중 적어도 하나"라는 표현은 a만, b만, c만, a와 b 모두, a와 c 모두, b와 c 모두, a, b, c, 모두 또는 이들의 변형을 나타낸다.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 개시 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 시스템"이라는 표현은, 그 시스템이 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시에서 '챗봇'은 채팅 로봇의 약어로서, 음성 신호 또는 텍스트를 이용한 사용자와의 대화를 통해 질문에 관한 정보를 제공하거나, 요청에 관한 서비스를 제공하는 등 동작을 수행하도록 구성되는 인공지능 서비스이다. 챗봇은 메신저 애플리케이션을 통해 상호 작용하는 서비스로 기설정된 규칙 또는 인공지능 기술을 통해 제공된다.
본 개시에서 '세션(session)'은 챗봇을 통해 일정 기간 내에 입력된 사용자의 메시지와 챗봇의 응답 메시지의 집합이다.
본 개시에서 '세션 유지 시간'은 세션이 종료되지 않고 유지되는 시간이다. 세션 유지 시간은 사용자의 입력 메시지에 대한 챗봇의 응답 메시지가 출력되는 시점으로부터 시작된다. 세션 유지 시간은 사용자가 메시지를 입력하는 시점에서 갱신되고, 초기화된다.
본 개시에서 '세션 사용 시간'은 사용자가 세션을 사용하는 시간으로서, 챗봇의 응답 메시지가 출력된 시점으로부터 사용자가 응답 메시지에 관한 답변 메시지 또는 추가 메시지를 입력하는 시점 사이의 시간 간격을 의미한다.
본 개시에서 '시나리오'는 사용자의 입력 메시지에 대하여 챗봇에 의해 제공되는 응답 메시지를 통한 요청, 질문, 답변 또는 정보 제공 등 문제 해결 단계(또는 과정)이다. 예를 들어, 입력 메시지가 "고장 접수"인 경우, 시나리오는 고장 접수가 완료되기 까지 챗봇에 의해 제공되는 요청, 질문, 답변, 또는 정보 제공과 관련된 응답 메시지를 통한 문제 해결 단계를 의미할 수 있다. 세션 사용 시간과 시나리오에 대해서는 도 7에서 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 네트워크를 통해 클라이언트 디바이스에 챗봇 서비스를 제공하는 방법을 도시한 개념도이다.
도 1을 참조하면, 전자 장치(1000)는 클라이언트 디바이스(3001, 3002, 3003)의 사용자로부터 입력 메시지를 수신하고, 입력 메시지에 관한 응답 메시지를 제공하는 컴퓨팅 디바이스이다. 일 실시예에서, 전자 장치(1000)는 입력 메시지에 관한 응답 메시지를 제공하는 챗봇(chatbot)으로 구현될 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(1000)는 서버(server) 또는 워크스테이션(workstation)으로 구성될 수 있다. 그러나, 이에 한정되는 것은 아니고, 전자 장치(1000)는 예를 들어, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), 또는 PMP(portable multimedia player) 중 적어도 하나로 구성될 수 있다.
전자 장치(1000)는 네트워크(2000)를 통해 클라이언트 디바이스(3001, 3002, 3003) 간의 데이터를 송수할 수 있다. 네트워크(2000)는 유선 또는 무선 등 특정 통신 방법으로 한정되지 않고, 구성될 수 있다. 네트워크(2000)는 예를 들어, 이더넷(Ethernet), 유무선 LAN(Local Area Network), 와이파이(Wi-Fi), WFD(Wi-Fi Direct), 및 와이기그(Wireless Gigabit Allicance, WiGig)를 포함하는 유무선 데이터 통신 방식 중 적어도 하나로 구성될 수 있다.
클라이언트 디바이스(3001, 3002, 3003)는 챗봇 애플리케이션을 통해 전자 장치(1000)로부터 챗봇 서비스를 제공받기 위하여 사용자가 이용하는 단말이다. 일 실시예에서, 사용자는 클라이언트 디바이스(3001, 3002, 3003)을 통해 챗봇 애플리케이션을 실행하고, 챗봇 애플리케이션에 텍스트 메시지를 입력하고, 전자 장치(1000)로부터 제공되는 응답 메시지를 수신할 수 있다. 일 실시예에서, 클라이언트 디바이스(3001, 3002, 3003)는 사용자의 음성 입력을 수신하고, 음성 입력을 텍스트로 변환하여 전자 장치(1000)에 전송하며, 전자 장치(1000)로부터 텍스트에 대한 응답 메시지를 수신할 수 있다.
클라이언트 디바이스(3001, 3002, 3003)는 예를 들어, 스마트 폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, PDA, PMP, 모바일 의료기기, 또는 웨어러블 디바이스 중 적어도 하나로 구성될 수 있다.
본 개시의 전자 장치(1000)가 도 1에 도시된 바와 같이, 네트워크(2000)를 통해 클라이언트 디바이스(3001, 3002, 3003)로부터 입력 메시지를 수신하고, 클라이언트 디바이스(3001, 3002, 3003)에 응답 메시지를 제공하는 것으로 한정되는 것은 아니다. 일 실시예에서, 전자 장치(1000)는 도 1에 도시된 실시예와는 달리, 네트워크(2000)의 개입없이 직접 사용자로부터 입력 메시지를 입력받고, 입력 메시지에 대한 응답 메시지를 출력할 수도 있다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 세션 유지 시간을 결정하는 방법을 설명하기 위한 개념도이다.
도 2를 참조하면, 챗봇을 통한 대화 화면이 도시된다. 전자 장치(1000)가 사용자로부터 "냉장고 음식이 안 얼어"라는 제1 입력 메시지(210)를 수신하고, 제1 입력 메시지(210)에 관한 제1 응답 메시지(220)를 출력할 수 있다. 제1 응답 메시지(220)는 제1 입력 메시지(210)에 관하여 사용자에게 확인을 요청하는 메시지일 수 있다. 예를 들어, 제1 응답 메시지(220)는 "냉장고의 전원 코드가 콘센트에 꽂혀 있는지 확인하였나요?"일 수 있다.
전자 장치(1000)는 제1 응답 메시지(220)가 출력되는 시점에 세션 시간을 초기화한다. 전자 장치(1000)는 기 설정된 디폴트(default) 세션 유지 시간 동안 사용자에 의한 추가 메시지의 입력을 대기한다. 사용자는 전원 코드 확인으로 인하여 세션 시간을 사용할 수 있다.
사용자로부터 제2 입력 메시지(230)가 입력되면, 전자 장치(1000)는 제2 입력 메시지(230)에 관한 제2 응답 메시지(240)를 출력한다. 일 실시예에서, 제2 입력 메시지(230)는 제1 응답 메시지(220)에 관한 사용자의 답변 또는 추가 질의로 구성될 수 있다. 도 2에 도시된 실시예에서, 제2 입력 메시지(230)는 "응. 전원 코드는 잘 꽂혀 있어."일 수 있다. 제2 응답 메시지(240)는 제2 입력 메시지(230)에 관한 챗봇의 추가 요청, 답변, 또는 정보 제공과 관련된 메시지일 수 있다. 도 2에 도시된 실시예에서, 제2 응답 메시지(240)는 "냉장고의 냉각 엔진이 작동하는지 확인해 보셨나요?"일 수 있다. 전자 장치(1000)는 제2 응답 메시지(240)를 출력하는 시점에 세션 시간을 초기화한다.
전자 장치(1000)는 제2 응답 메시지(240)의 난이도에 기초하여 기본 세션 시간을 결정할 수 있다. 제2 응답 메시지(240)의 난이도는, 응답 메시지에 의한 요청, 질문, 답변 또는 정보 제공을 통한 문제 해결의 어려움과 쉬움의 정도를 의미한다. 일 실시예에서, 전자 장치(1000)는 심층 신경망 모델을 이용하여 응답 메시지를 난이도에 따라 분류하는 학습을 수행하고, 심층 신경망 모델을 통해 제2 응답 메시지(240)의 난이도에 관한 정보를 획득할 수 있다. 전자 장치(1000)는 난이도에 대응되도록 매핑된 세션 시간을 기본 세션 시간으로 결정할 수 있다.
전자 장치(1000)는 기본 세션 시간 동안 사용자에 의한 추가 메시지 입력을 대기한다. 기본 세션 시간이 경과됨에도 불구하고 사용자의 추가 메시지가 입력되지 않은 경우, 전자 장치(1000)는 추가 세션 시간의 제공을 결정할 수 있다. 전자 장치(1000)는 현재 출력된 응답 메시지, 즉 제2 응답 메시지(240)가 출력되기 전의 대화 이력 정보에 기초하여 추가 세션 시간을 결정할 수 있다. 일 실시예에서, 전자 장치(1000)는 제2 응답 메시지(240)가 출력되기 전에 기 출력된 응답 메시지의 수 및 기 출력된 응답 메시지에 의해 수행된 시나리오에서 사용된 세션 사용 시간 중 적어도 하나에 관한 정보에 기초하여, 추가 세션 시간을 결정할 수 있다.
도 2에 도시된 실시예에서, 전자 장치(1000)는 현재 응답 메시지인 제2 응답 메시지(240)가 출력되기 전에 출력된 제1 응답 메시지(220)를 확인하고, 제1 응답 메시지(220)와 관련된 시나리오에서 사용자가 제2 입력 메시지(230)를 입력하는 시점까지 사용자가 사용한 세션 사용 시간에 관한 정보를 획득하며, 제1 응답 메시지(220)의 수 및 이전 시나리오에서의 세션 사용 시간에 기초하여 추가 세션 시간을 결정할 수 있다.
전자 장치(1000)는 기본 세션 시간의 일정 비율만큼을 추가 세션 시간으로 결정할 수 있다. 예를 들어, 전자 장치(1000)는 기본 세션 시간의 20%를 추가 세션 시간으로 결정할 수 있다.
전자 장치(1000)는 기본 세션 시간과 추가 세션 시간의 합을 세션 유지 시간으로 결정한다. 전자 장치(1000)는 세션 유지 시간이 경과하는지 여부를 확인하고, 세션 유지 시간이 경과한 경우 세션 종료 알림(250)을 출력할 수 있다.
일 실시예에서, 전자 장치(1000)는 현재 응답 메시지와 관련된 다른 사용자들의 대화 이력 정보에 관한 통계 데이터에 기초하여 기본 세션 시간을 연장 또는 단축할 수 있다.
챗봇을 통한 대화에서, 사용자의 개인 정보 보호 측면에서 세션 유지 시간이 결정되고, 세션 유지 시간이 모두 경과되는 경우 세션은 종료된다. 종래 기술에 따른 챗봇에서는, 세션 유지 시간이 경과되면 문제가 완전히 해결되었는지 여부에 관계없이 세션을 종료하는바, 사용자는 이전 시점에 입력하였던 메시지를 다시 입력하고, 동일한 응답 메시지를 다시 제공받아야 원래 진행하던 문제 해결 시나리오에 도달할 수 있어 번거롭고 시간이 많이 소요되는 문제점이 있었다. 또한, 종래 기술에 따른 챗봇은 문제 해결 시나리오에 따라 각각 다른 진행 시간이 필요함에도 불구하고, 일괄적으로 동일한 세션 유지 시간을 제공하는바, 사용자가 문제에 관한 해결에 시간이 소모되어 의도치 않게 세션이 종료되는 문제점이 발생될 수 있다. 전술한 문제점을 해결하기 위하여 세션 유지 시간을 모든 문제 해결 시나리오에 대하여 연장하는 방법을 고려할 수 있지만, 챗봇이 동시에 관리하여야 하는 세션 수가 증가되고, 이에 따라 리소스 사용이 증가되며, 네트워크 비용이 증가되는 문제점이 추가로 발생될 수 있다.
본 개시의 일 실시예에 따른 전자 장치(1000)는 응답 메시지의 난이도에 따라 기본 세션 시간을 결정하고, 현재 출력된 응답 메시지 이전의 대화 이력 정보에 기초하여 추가 세션 시간의 제공을 결정하며, 다수의 다른 사용자들의 세션 사용 이력 정보에 관한 통계 데이터를 이용하여 세션 시간을 연장 또는 단축함으로써, 문제 해결 시나리오에 따라 적응적으로(adaptively) 세션 시간을 조절하는 챗봇 서비스를 제공할 수 있다. 따라서, 본 개시의 전자 장치(1000)는 세션 유지 시간이 경과되어 사용자가 동일한 응답 메시지를 반복적으로 제공받아 생기는 시간 낭비 및 번거로움을 미리 방지할 수 있고, 리소스 사용 및 네트워크 비용을 효율화하는 기술적 효과가 있다.
도 3은 본 개시의 일 실시예에 따른 전자 장치의 구성 요소를 도시한 블록도이다.
도 3을 참조하면, 전자 장치(1000)는 통신 인터페이스(1100), 프로세서(1200), 및 메모리(1300)를 포함할 수 있다. 도 3에는 전자 장치(1000)의 기능 및/또는 동작을 설명하기 위한 필수적 구성 요소만이 도시되었고, 전자 장치(1000)가 포함하는 구성 요소가 도 3에 도시된 바와 같이 한정되는 것은 아니다.
통신 인터페이스(1100)는 전자 장치(1000)와 타 디바이스(예를 들어, 클라이언트 디바이스) 간의 데이터 송수신을 수행하도록 구성된다. 통신 인터페이스(1100)는 예를 들어, 이더넷(Ethernet), 유무선 LAN(Local Area Network), 와이파이(Wi-Fi), WFD(Wi-Fi Direct), 및 와이기그(Wireless Gigabit Allicance, WiGig)를 포함하는 유무선 데이터 통신 방식 중 적어도 하나를 이용하여 서버 또는 타 디바이스와 데이터 통신을 수행할 수 있다. 일 실시예에서, 전자 장치(1000)는 서버로 구성되고, 통신 인터페이스(1100)를 통해 타 디바이스(예를 들어, 클라이언트 디바이스)로부터 입력 메시지에 관한 텍스트 데이터를 수신하고, 응답 메시지에 관한 텍스트 데이터를 전송할 수 있다.
도 3에는 도시되지 않았지만, 전자 장치(1000)는 음성 입력부 및 ASR 모델을 더 포함할 수 있다. 음성 입력부는 사용자의 질의와 같은 음성 입력을 수신하는 장치로 구성될 수 있다. 음성 입력부는 예를 들어, 마이크로폰을 포함할 수 있다. 음성 입력부는 마이크로폰을 통해 사용자로부터 음성 입력(예를 들어, 사용자의 발화)을 수신하고, 수신된 음성 입력으로부터 음성 신호를 획득할 수 있다. 일 실시예에서, 전자 장치(1000)의 프로세서(1200)는, 마이크로폰을 통해 사용자의 음성 입력을 수신하고, 수신된 음성 입력을 음향 신호로 변환하고, 음향 신호로부터 노이즈(예를 들어, 비음성 성분)를 제거하여 음성 신호를 획득할 수 있다.
ASR 모델은 사용자의 음성을 인식하는 음성 인식 모델로서, 사용자로부터 수신된 음성 입력을 텍스트로 변환하여 출력하도록 학습된 모델이다. 일 실시예에서, 전자 장치(1000)는 ASR 모델을 이용하여 음성 입력을 텍스트로 변환할 수 있다.
도면에는 도시되지 않았지만, 전자 장치(1000)는 지정된 음성 입력(예를 들어, '하이 빅스비', '오케이 구글' 또는 이와 같은 웨이크 업 입력)을 감지하는 기능 또는 일부 음성 입력으로부터 획득한 음성 신호를 전처리하는 기능을 갖는 음성 전처리 모듈을 포함할 수 있다.
프로세서(1200)는 하나 또는 그 이상의 명령어들(instructions) 또는 프로그램 코드를 판독하고, 실행함으로써, 전자 장치(1000)의 동작 및/또는 기능을 수행하도록 제어하도록 구성된다. 프로세서(1200)에 의해 실행되는 명령어들 또는 프로그램 코드는 메모리(1300)에 저장되어 있고, 프로세서(1200)는 메모리(1300)로부터 로딩된 명령어들 또는 프로그램 코드를 실행할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(1200)는 자체적으로 명령어들 또는 프로그램 코드를 포함할 수 있다.
프로세서(1200)는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행하는 하드웨어 구성 요소로 구성될 수 있다. 프로세서(1200)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 및 FPGAs(Field Programmable Gate Arrays) 중 적어도 하나로 구성될 수 있으나, 이에 한정되는 것은 아니다.
메모리(1300)에는 프로세서(1200)가 판독할 수 있는 명령어들 및 프로그램 코드(program code)가 저장될 수 있다. 메모리(1300)는 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광 디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
프로세서(1200)는 기본 세션 시간 결정 모듈(1210), 추가 세션 시간 결정 모듈(1220), 종료 알림 모듈(1230), 및 세션 시간 조정 모듈(1240)을 포함할 수 있다.
프로세서(1200)는 통신 인터페이스(1100)를 통해 사용자의 입력 메시지를 수신할 수 있다. 프로세서(1200)는 수신된 사용자의 입력 메시지를 분석함으로써, 입력 메시지의 도메인(domain), 인텐트(intent), 및 개체명(entity)을 인식하고, 인식된 도메인, 인텐트 및 개체명에 대한 응답 메시지를 출력할 수 있다. 일 실시예에서, 프로세서(1200)는 자연어 이해 모델(Natural Language Understanding)을 이용하여 입력 메시지를 구성하는 텍스트를 형태소, 단어(word), 또는 구(phrase)의 단위로 파싱(parsing)하고, 형태소, 단어, 또는 구의 언어적 특징(예: 문법적 요소)을 이용하여 파싱된 텍스트로부터 추출된 단어의 의미를 추론할 수 있다. 프로세서(1200)는, 추론된 단어의 의미를 자연어 이해 모델에서 제공되는 기 정의된 도메인, 인텐트, 및 개체명과 각각 비교함으로써, 도메인, 인텐트, 및 개체명을 인식할 수 있다. 일 실시예에서, 프로세서(1200)는 도메인, 인텐트, 및 개체명에 대응되도록 설정된 응답 메시지를 출력할 수 있다.
기본 세션 시간 결정 모듈(1210)은 출력된 응답 메시지를 분석함으로써, 응답 메시지의 난이도(540) 정보를 획득하고, 응답 메시지의 난이도(540)에 기초하여 기본 세션 시간을 결정하도록 구성된 모듈이다. 일 실시예에서, 기본 세션 시간 결정 모듈(1210)은 심층 신경망 모델(1214)을 포함할 수 있다. 그러나, 이에 한정되는 것은 아니고, 심층 신경망 모델(1214)은 기본 세션 시간 결정 모듈(1210)과는 별개의 모듈로서 프로세서(1200)에 의해 실행되거나, 또는 메모리(1300)에 저장될 수도 있다. 프로세서(1200)는 기본 세션 시간 결정 모듈(1210)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 출력된 응답 메시지의 텍스트 데이터를 심층 신경망 모델(1214)에 입력으로 적용하고, 심층 신경망 모델(1214)을 통해 출력된 난이도(540)에 관한 라벨값(label)을 획득할 수 있다.
심층 신경망 모델(Deep Neural Network)(1214)은 응답 메시지를 난이도(540)에 따라 분류하도록 학습된 모델일 수 있다. 심층 신경망 모델(1214)은 응답 메시지가 출력되는 시점 이전에 학습된(trained) 신경망 모델로 구현될 수 있다. 일 실시예에서, 심층 신경망 모델(1214)은 기 획득된 복수의 학습용 메시지를 입력으로 적용하고, 복수의 학습용 메시지 각각에 관하여 설정된 난이도(540)에 관한 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝될 수 있다. 여기서, '난이도(540)'는 메시지에 의해 제공되는 요청, 질문, 답변 또는 정보를 통한 문제 해결의 어려움과 쉬움의 정도를 의미한다. 난이도(540)에 관한 라벨값은 예를 들어, 0, 1, 2, ... , n 과 같은 정수값으로 정의될 수 있으나, 이에 한정되는 것은 아니다.
심층 신경망 모델은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN)로 구현될 수 있으나, 이에 한정되는 것은 아니다. 일 실시예에서 심층 신경망 모델은 순환 신경망 모델(Recurrent Neural Network; RNN), 제한 볼츠만 머신(Restricted Boltzmann Machine; RBM), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등의 딥 러닝(Deep Learning) 기반 신경망 모델로 구현될 수 있다.
프로세서(1200)는 심층 신경망 모델(1214)에 응답 메시지를 입력하고, 심층 신경망 모델(1214)을 이용한 학습을 통해 응답 메시지가 분류될 수 있는 난이도(540)에 관한 라벨값을 획득할 수 있다. 일 실시예에서, 프로세서(1200)는 획득된 난이도(540)에 관한 라벨값을 세션 시간 DB(1310)에서 검색하고, 세션 시간 DB(1310)로부터 라벨값에 대응되도록 매핑된 세션 시간에 관한 정보를 획득할 수 있다.
세션 시간 DB(1310)는 난이도(540)에 따른 세션 시간을 저장하는 데이터베이스이다. 일 실시예에서, 세션 시간 DB(1310)에는 복수의 난이도의 라벨값과 복수의 세션 시간에 관한 데이터가 저장되어 있다. 복수의 세션 시간은 복수의 난이도 각각에 관한 라벨값에 대응되도록 매핑될 수 있다. 일 실시예에서, 복수의 난이도 각각에 관한 라벨값과 복수의 세션 시간의 데이터는 키(key)-밸류(value) 타입으로 세션 시간 DB(1310)에 저장될 수 있다.
프로세서(1200)가 기본 세션 시간 결정 모듈(1210)을 이용하여 응답 메시지에 관한 기본 세션 시간을 결정하는 구체적인 실시예에 대해서는 도 5a 내지 도 5c, 도 6에서 설명하기로 한다.
추가 세션 시간 결정 모듈(1220)은 응답 메시지에 관한 기본 세션 시간의 경과 여부에 관한 정보를 기본 세션 시간 결정 모듈(1210)로부터 입력받고, 응답 메시지에 관한 추가 세션 시간을 결정하도록 구성된 모듈이다. 추가 세션 시간 결정 모듈(1220)은 응답 메시지가 출력되기 이전의 대화 이력 정보에 기초하여 추가 세션 시간을 결정할 수 있다. 일 실시예에서, 대화 이력 정보는 응답 메시지가 출력되기 전의 대화에서 기 출력된 응답 메시지의 수 및 기 출력된 응답 메시지에 따른 시나리오 별 세션 사용 시간 중 적어도 하나에 관한 정보를 포함할 수 있다.
프로세서(1200)는 추가 세션 시간 결정 모듈(1220)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 대화 이력 정보에 기초하여 추가 세션 시간을 제공할지 여부를 결정할 수 있다. 일 실시예에서, 프로세서(1200)는 응답 메시지의 출력 이전에 수행된 시나리오 별 세션 사용 시간을 기본 세션 시간으로 나누는 연산을 통해 세션 시간 사용률을 산출하고, 산출된 세션 시간 사용률에 기초하여 추가 세션 시간을 제공할 지 여부를 결정할 수 있다. 다른 실시예에서, 프로세서(1200)는 응답 메시지가 출력되기 이전에 수행된 시나리오 별 세션 사용 시간의 평균값을 산출하고, 산출된 평균값에 기초하여 추가 세션 시간을 제공할 지 여부를 결정할 수 있다.
프로세서(1200)는 시나리오 별 세션 사용 시간의 총합의 일정 비율만큼을 추가 세션 시간으로 결정할 수 있다. 프로세서(1200)가 추가 세션 시간을 결정하는 구체적인 실시예에 대해서는 도 8 내지 도 10에서 설명하기로 한다.
종료 알림 모듈(1230)은 세션 유지 시간이 경과됨이 확인된 경우, 세션 종료에 관한 알림 메시지를 출력하도록 구성되는 모듈이다. 일 실시예에서, 종료 알림 모듈(1230)은 자연어 생성 모델(Natural Language Generation)로 구성될 수 있다. 종료 알림 모듈(1230)은 응답 메시지에 관련된 인텐트 및 개체명을 이용하여 사용자에게 세션 유지 시간이 종료되었음을 알리는 메시지를 생성하고, 생성된 메시지를 출력할 수 있다. 세션 종료 메시지는 예를 들어, "냉장고에 관한 문제 해결이 되었나요? 채팅을 종료합니다."와 같이 생성되고, 출력될 수 있다.
세션 유지 시간은 기본 세션 시간과 추가 세션 시간의 합으로 결정될 수 있다. 프로세서(1200)는 종료 알림 모듈(1230)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 세션 유지 시간의 경과 여부를 확인하고, 확인 결과에 따라 세션 종료 알림 메시지를 출력할 수 있다. 세션 종료 알림 메시지의 출력 실시예에 관해서는 도 11에서 설명하기로 한다.
세션 시간 조정 모듈(1240)은 출력된 응답 메시지에 대한 복수의 사용자의 세션 사용 이력 정보에 기초하여 기본 세션 시간을 조정(adjust)하도록 구성된 모듈이다. 세션 시간 조정 모듈(1240)은 종료 알림 모듈(1230)으로부터 세션 유지 시간의 경과와 관련된 정보를 입력 받음에 따라, 세션 사용 이력 통계 DB(1320)에 현재 출력된 응답 메시지와 관련된 세션 사용 이력 정보에 관한 통계 데이터를 검색할 수 있다. 세션 시간 조정 모듈(1240)은 세션 사용 이력 통계 DB(1320)의 검색 결과에 따라 복수의 사용자의 세션 사용 이력 정보를 획득하고, 세션 사용 이력 정보에 기초하여 기본 세션 시간을 연장 또는 단축할 수 있다. 세션 시간 조정 모듈(1240)은 연장 또는 단축된 기본 세션 시간에 관한 정보를 기본 세션 시간 결정 모듈(1210)에 제공할 수 있다.
세션 사용 이력 통계 DB(1320)는 복수의 사용자의 세션 사용 이력에 관한 통계 데이터를 저장하는 데이터베이스이다. 일 실시예에서, 세션 사용 이력 정보는, 현재 응답 메시지가 출력되기 이전 시점에서의 세션 연장 요청 횟수, 응답 메시지 이전에 수행된 시나리오 수, 및 응답 메시지에 대하여 사용된 세션 사용 시간 중 적어도 하나에 관한 복수의 사용자의 통계 데이터를 포함할 수 있다.
프로세서(1200)는 세션 시간 조정 모듈(1240)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 세션 사용 이력 통계 DB(1320)로부터 현재 응답 메시지와 관련된 복수의 사용자의 세션 사용 이력에 관한 통계 데이터를 검색하고, 검색 결과에 따라 세션 사용 이력 정보를 획득할 수 있다. 프로세서(1200)는 세션 사용 이력 정보에 기초하여 기본 세션 시간을 연장 또는 단축할 수 있다. 프로세서(1200)가 세션 사용 이력 정보에 기초하여 기본 세션 시간을 조정하는 구체적인 실시예에 대해서는 도 12 및 도 13에서 설명하기로 한다.
세션 시간 DB(1310) 및 세션 사용 이력 통계 DB(1320)는 비휘발성 메모리로 구성될 수 있다. 비휘발성 메모리(Non-volatile memory)는 전원이 공급되지 않은 상태에서도 정보를 저장 및 유지하고, 전원이 공급되면 다시 저장된 정보를 사용할 수 있는 기억 매체를 의미한다. 비휘발성 메모리는 예를 들어, 플래시 메모리(flash memory), 하드디스크(hard disk), SSD(Solid State Drive), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리, 또는 그와 같은 메모리), 롬(Read Only Memory; ROM), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나를 포함할 수 있다.
도 3을 참조하면, 세션 시간 DB(1310) 및 세션 사용 이력 통계 DB(1320)는 모두 메모리(1300)에 포함되는 것으로 도시되었지만, 이에 한정되는 것은 아니다. 일 실시예에서, 세션 시간 DB(1310) 및 세션 사용 이력 통계 DB(1320) 중 적어도 하나는 메모리(1300)와는 별개의 데이터베이스 형태로 구성될 수도 있다. 다른 실시예에서, 응 세션 시간 DB(1310) 및 세션 사용 이력 통계 DB(1320) 중 적어도 하나는 전자 장치(1000)가 아닌, 외부의 디바이스 또는 외부 서버의 구성 요소로서, 통신 인터페이스(1100)를 통해 전자 장치(1000)와 유무선 통신을 통해 연결될 수도 있다.
도 4는 본 개시의 일 실시예에 따른 전자 장치(1000)의 동작 방법을 도시한 흐름도이다.
도 4를 참조하면, 단계 S410에서, 전자 장치(1000)는 사용자의 입력 메시지에 대한 응답 메시지를 출력한다. 일 실시예에서, 전자 장치(1000)는 자연어 이해 모델을 이용하여 사용자의 입력 메시지를 분석함으로써, 입력 메시지와 관련된 도메인, 인텐트 및 개체명을 인식할 수 있다. 일 실시예에서, 전자 장치(1000)는 자연어 이해 모델을 이용하여 입력 메시지를 구성하는 텍스트를 형태소, 단어(word), 또는 구(phrase)의 단위로 파싱(parsing)하고, 형태소, 단어, 또는 구의 언어적 특징(예: 문법적 요소)을 이용하여 파싱된 텍스트로부터 추출된 단어의 의미를 추론할 수 있다. 전자 장치(1000)는, 추론된 단어의 의미를 자연어 이해 모델에서 제공되는 기 정의된 도메인, 인텐트, 및 개체명과 각각 비교함으로써, 도메인, 인텐트, 및 개체명을 인식할 수 있다.
전자 장치(1000)는 입력 메시지로부터 인식된 도메인, 인텐트, 및 개체명에 대응되도록 설정된 응답 메시지를 출력할 수 있다. 일 실시예에서, 전자 장치(1000)는 자연어 생성 모델(Natural Language Generation)을 이용하여 도메인, 인텐트, 및 개체명과 관련된 문제 해결을 위한 응답 메시지를 생성하고, 생성된 응답 메시지를 출력할 수 있다.
단계 S420에서, 전자 장치(1000)는 출력된 응답 메시지의 난이도에 기초하여, 세션(session)이 유지되는 기본 세션 시간을 결정한다. 일 실시예에서, 전자 장치(1000)는 심층 신경망 모델에 응답 메시지를 입력으로 적용함으로써 출력된 난이도에 관한 라벨값을 획득하고, 획득된 라벨값에 대응되도록 매핑된 세션 시간을 기본 세션 시간으로 결정할 수 있다. 심층 신경망 모델( deep neural network)은, 복수의 학습용 메시지를 입력으로 적용하고, 난이도에 관한 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된 인공지능 모델일 수 있다.
단계 S430에서, 전자 장치(1000)는 응답 메시지의 출력 이전의 대화 이력 정보에 기초하여 추가 세션 시간을 결정한다. 일 실시예에서, 전자 장치(1000)는 단계 S410에서 응답 메시지가 출력되기 이전의 대화에서 기 출력된 응답 메시지의 수 및 기 출력된 응답 메시지에 의해 수행된 시나리오에서 사용된 세션 사용 시간 중 적어도 하나에 기초하여 추가 세션 시간을 제공할지 여부를 결정할 수 있다. 일 실시예에서, 추가 세션 시간은 시나리오 별 세션 사용 시간의 총합에 대한 기 설정된 비율로 결정될 수 있다.
단계 S440에서, 전자 장치(1000)는 기본 세션 시간과 추가 세션 시간을 합한 세션 유지 시간 동안 사용자의 추가 메시지의 입력을 대기한다.
단계 S450에서, 전자 장치(1000)는 추가 메시지 입력 여부에 기초하여 세션 종료를 결정한다. 일 실시예에서, 전자 장치(1000)는 세션 유지 시간이 경과하였는지 여부를 확인하고, 확인 결과에 기초하여 세션 종료 알림 메시지를 출력할 수 있다.
전자 장치(1000)는 응답 메시지에 관하여 기 설정된 세션 종료 알림 메시지를 출력할 수 있으나, 이에 한정되지 않는다. 일 실시예에서, 전자 장치(1000)는 자연어 생성 모델(Natural Language Generation)을 이용하여 응답 메시지로부터 인식된 인텐트 및 개체명과 관련된 문제 해결 여부를 묻는 세션 종료 알림 메시지를 생성하고, 생성된 세션 종료 알림 메시지를 출력할 수 있다.
도 5a는 본 개시의 일 실시예에 따른 전자 장치가 응답 메시지의 난이도 분류를 위한 심층 신경망 모델의 학습 방법을 도시한 도면이다.
도 5a를 참조하면, 전자 장치(1000)는 학습을 위한 복수의 학습용 메시지(510-1 내지 510-n)를 입력으로 적용하고, 복수의 학습용 메시지(510-1 내지 510-n) 각각에 관한 난이도의 라벨값(520-1 내지 520-n)을 출력 정답값(groundtruth)으로 적용함으로써 심층 신경망 모델(1214)을 학습(training)할 수 있다. 복수의 학습용 메시지(510-1 내지 510-n)는 심층 신경망 모델(1214)을 학습시키기 위하여 기 획득된 메시지로서, 사용자의 입력 메시지에 대한 챗봇의 응답 메시지의 예시로 구성될 수 있다. 복수의 학습용 메시지(510-1 내지 510-n)는 요청, 질문, 답변 또는 정보 제공 등에 관한 내용을 포함한다. 복수의 학습용 메시지(510-1 내지 510-n)는 예를 들어, "갤럭시 S7 LTE 128G 모델의 가격은 762,000원입니다.", 또는 "전원 코드가 꽂혀 있는지 확인해 보셨나요?" 등이 될 수 있다.
복수의 학습용 메시지(510-1 내지 510-n)는 심층 신경망 모델(1214)에 입력되기 전에 임베딩 모듈(1212)에 입력된다. 임베딩 모듈(1212)은 입력된 텍스트를 적어도 하나의 단어로 파싱(parsing)하여 추출하고, 추출된 적어도 하나의 단어를 벡터로 수치화하는 모듈이다. 임베딩 모듈(1212)은 예를 들어, word2vec, GloVe, 또는 onehot coding과 같이 공지된 기계 학습 모델을 이용하여, 적어도 하나의 단어를 임베딩 벡터(embedding vector)로 변환할 수 있다. 그러나, 임베딩 모듈(1212)이 사용하는 임베딩 모델이 상기 나열된 예시로 한정되는 것은 아니다.
전자 장치(1000)의 프로세서(1200, 도 3 참조)는 임베딩 모듈(1212)을 이용하여 복수의 학습용 메시지(510-1 내지 510-n)를 단어 단위로 파싱함으로써 적어도 하나의 단어를 추출하고, 추출된 단어를 임베딩 벡터로 변환할 수 있다. 프로세서(1200)는 적어도 하나의 단어의 임베딩 벡터를 매트릭스(matrix) 형태로 배열할 수 있다. 도 5a에 도시된 실시예에서, 제1 학습용 메시지(510-1)는 임베딩 모듈(1212)에 의해 제1 임베딩 벡터로 변환되고, 제2 학습용 메시지(510-2)는 임베딩 모듈(1212)에 의해 제2 임베딩 벡터로 변환될 수 있다.
프로세서(1200)는 임베딩 벡터를 심층 신경망 모델(1214)에 입력시킬 수 있다. 이 경우, 임베딩 벡터는 심층 신경망 모델(1214)에 입력되는 특징 벡터로 된다.
심층 신경망 모델(1214)은 임베딩 모듈(1212)로부터 제공받은 임베딩 벡터를 이용하는 학습(training)을 수행하도록 구성되는 인공지능 모델이다. 일 실시예에서, 심층 신경망 모델(1214)은 임베딩 벡터를 입력으로 적용하고, 난이도에 관한 라벨값(label)(520-1 내지 520-n)을 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝될 수 있다. 여기서, '난이도'는, 복수의 학습용 메시지(510-1 내지 510-n)에 의한 요청, 질문, 답변 또는 정보 제공을 통한 문제 해결의 어려움과 쉬움의 정도를 의미한다. 도 5a에 도시된 실시예에서, 난이도는 0 내지 n의 범위를 갖는 정수값일 수 있으나, 이에 한정되지 않는다. '난이도에 관한 라벨값'은 난이도에 대하여 기 설정된 수치값을 의미한다. 예를 들어, "갤럭시 S7 LTE 모델의 가격을 762,000원입니다."라는 제1 학습용 메시지(510-1)는 난이도 0으로 매핑되어 난이도 0에 관한 제1 라벨값(520-1)을 출력 정답값으로 학습되고, "전원 코드가 꽂혀 있는지 확인해 보셨나요?"라는 제2 학습용 메시지(510-2)는 난이도 1로 매핑되어 난이도 1에 관한 제2 라벨값(520-2)을 출력 정답값으로 학습될 수 있다.
일 실시예에서, 심층 신경망 모델(1214)은 연산을 수행하는 내부의 레이어(layer)인 복수의 은닉 레이어(hidden layer)를 포함할 수 있다. 심층 신경망 모델(1214)은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), 제한 볼츠만 머신(Restricted Boltzmann Machine; RBM), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나로 구성될 수 있다. 그러나, 심층 신경망 모델(1214)이 전술한 예시로 한정되는 것은 아니고, 공지의 모든 딥 러닝(Deep Learning) 기반의 신경망 모델을 포함할 수 있다.
심층 신경망 모델(1214)이 컨볼루션 신경망 모델(CNN)로 구현되는 경우, 기설정된 크기 및 기설정된 채널 수를 갖는 필터(filter)를 이용하여 입력으로 적용된 임베딩 벡터로부터 특징 값들을 추출하고, 추출된 특징 값들을 포함하는 복수 개의 레이어(layer)를 획득하며, 복수 개의 레이어에 가중치(weight)를 적용함으로써 특징 벡터 맵(feature vector map)을 획득할 수 있다. 상기 특징 벡터 맵을 획득하는 과정에서 정류 선형 유닛(ReLU) 모델이 이용되고, 효율을 향상시키기 위하여 드롭 아웃(drop out)을 통해 학습 모델을 정칙화(regularization)하고, 풀링(pooling) 또는 맥스 풀링(max pooling)을 수행하는 동작들이 더 추가될 수 있다. 이어서, 풀링 또는 맥스 풀링을 통해 획득된 특징값들은 fully connected layer를 통해 통합되고, 소프트맥스(softmax), 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent)를 포함하는 활성 함수(activation function)를 통해 압축률 값과 관련된 라벨을 출력하도록 학습될 수 있다. 심층 신경망 모델(1214)의 학습을 통해 심층 신경망 모델(1214)을 구성하는 파라미터 들의 값이 변경될 수 있다. 예를 들어, 심층 신경망 모델(1214)을 구성하는 레이어들의 가중치(weight) 및 편향(bias) 값이 변경될 수 있다.
도 5b는 본 개시의 일 실시예에 따른 전자 장치가 심층 신경망 모델을 이용하여 응답 메시지에 관한 난이도 정보를 획득하는 방법을 도시한 도면이다.
도 5b를 참조하면, 전자 장치(1000)는 사용자의 입력 메시지에 대한 응답 메시지(530)를 출력한다. 전자 장치(1000)는 출력된 응답 메시지(530)를 심층 신경망 모델(1214)에 입력하기 위하여 임베딩 모듈(1212)에 먼저 입력할 수 있다. 임베딩 모듈(1212)은 응답 메시지(530)를 구성하는 텍스트가 입력되면, 입력된 텍스트를 단어 단위로 파싱함으로써, 적어도 하나의 단어를 추출하고, 추출된 적어도 하나의 단어를 벡터로 수치화하여 임베딩 벡터를 출력할 수 있다. 임베딩 모듈(1212)을 통해 출력된 임베딩 벡터는 심층 신경망 모델(1214)로 입력된다.
심층 신경망 모델(1214)은 도 5a에 도시된 바와 같이, 복수의 학습용 메시지(510-1 내지 510-n, 도 5a 참조)를 입력으로 적용하고, 난이도에 관한 라벨값(520-1 내지 520-n, 도 5a 참조)을 출력 정답값으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된 인공지능 모델이다. 심층 신경망 모델(1214)에 응답 메시지(530)가 변환된 임베딩 벡터가 입력되면, 응답 메시지(530)의 난이도로 예측될 수 있는 라벨값이 출력될 수 있다. 도 5b에 도시된 실시예에서, "갤럭시 Z 폴드 5G 256G 모델의 가격은 2,199,000원입니다."라는 응답 메시지(530)의 난이도는 0으로 예측될 수 있고, 심층 신경망 모델(1214)을 통해 난이도 0에 관한 라벨값이 출력될 수 있다.
도 5c는 본 개시의 일 실시예에 따른 전자 장치가 난이도에 기초하여 기본 세션 시간을 결정하는 방법을 도시한 도면이다.
도 5c를 참조하면, 심층 신경망 모델(1214, 도 5b 참조)을 통해 출력된 응답 메시지(530, 도 5b 참조)의 난이도에 관한 라벨값은 기본 세션 시간 결정 모듈(1210)로 입력될 수 있다. 기본 세션 시간 결정 모듈(1210)은 응답 메시지(530)에 관한 난이도 정보를 획득하고, 응답 메시지의 난이도에 기초하여 기본 세션 시간을 결정하도록 구성된 모듈이다. 일 실시예에서, 기본 세션 시간 결정 모듈(1210)은 세션 시간 DB(1310)로부터 난이도에 따른 세션 시간을 검색할 수 있다.
세션 시간 DB(1310)는 난이도에 따른 세션 시간을 저장하는 데이터베이스이다. 일 실시예에서, 세션 시간 DB(1310)에는 복수의 난이도의 라벨값(1312-1 내지 1312-n)과 복수의 세션 시간(1314-1 내지 1314-n)에 관한 데이터가 저장되어 있다. 복수의 세션 시간(1314-1 내지 1314-n)은 복수의 난이도 각각에 관한 라벨값(1312-1 내지 1312-n)에 대응되도록 매핑될 수 있다. 일 실시예에서, 복수의 난이도에 관한 라벨값(1312-1 내지 1312-n)과 복수의 세션 시간(1314-1 내지 1314-n)의 데이터는 키(key)-밸류(value) 타입으로 세션 시간 DB(1310)에 저장될 수 있다. 도 5c에 도시된 실시예에서, 난이도 0의 제1 라벨값(1312-1)은 30초인 제1 세션 시간(1314-1)과 키-밸류 타입으로 세션 시간 DB(1310)에 저장될 수 있다. 마찬가지로, 난이도 n의 제n 라벨값(1312-n)은 90분인 제n 세션 시간(1314-n)과 키-밸류 타입으로 세션 시간 DB(1310)에 저장될 수 있다.
전자 장치(1000)는 기본 세션 시간 결정 모듈(1210)을 이용하여, 세션 시간 DB(1310)로부터 응답 메시지의 난이도에 따른 세션 시간을 검색하고, 세션 시간에 관한 정보를 제공받을 수 있다. 도 5c에 도시된 실시예에서, 기본 세션 시간 결정 모듈(1210)은 응답 메시지(530, 도 5b 참조)의 난이도에 관한 라벨값을 입력받고, 세션 시간 DB(1310)에 난이도 0에 관한 라벨값에 따른 세션 시간인 제1 세션 시간(1314-1)을 검색할 수 있다. 제1 세션 시간(1314-1)은 30초이고, 기본 세션 시간 결정 모듈(1210)은 세션 시간 DB(1310)로부터 세션 시간에 관한 정보(30초)를 획득할 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 6을 참조하면, S610 및 S620은 도 4에 도시된 단계 S410을 구체화한 단계들이다. 도 6에 도시된 단계 S630 내지 S660은 도 4에 도시된 단계 S420을 구체화한 단계들이다.
단계 S610에서, 전자 장치(1000)는 입력 메시지에 대응되도록 매핑된 응답 메시지를 결정한다. 전자 장치(1000)는 사용자로부터 수신된 입력 메시지를 분석함으로써, 입력 메시지의 도메인(domain), 인텐트(intent), 및 개체명(entity)을 인식할 수 있다. 일 실시예에서, 전자 장치(1000)는 자연어 이해 모델(Natural Language Understanding)을 이용하여 입력 메시지를 구성하는 텍스트를 형태소, 단어(word), 또는 구(phrase)의 단위로 파싱(parsing)하고, 형태소, 단어, 또는 구의 언어적 특징(예: 문법적 요소)을 이용하여 파싱된 텍스트로부터 추출된 단어의 의미를 추론할 수 있다. 전자 장치(1000)는, 추론된 단어의 의미를 자연어 이해 모델에서 제공되는 기 정의된 도메인, 인텐트, 및 개체명과 각각 비교함으로써, 도메인, 인텐트, 및 개체명을 인식할 수 있다.
전자 장치(1000)는 인식된 도메인, 인텐트 및 개체명에 대한 응답 메시지를 출력할 수 있다. 일 실시예에서, 응답 메시지는 도메인, 인텐트, 및 개체명에 대응되도록 기 설정될 수 있다. 그러나, 이에 한정되는 것은 아니고, 전자 장치(1000)는 자연어 생성 모델(Natural Language Generation)을 이용하여 도메인, 인텐트 및 개체명과 관련된 응답 메시지를 생성할 수도 있다.
단계 S620에서, 전자 장치(1000)는 결정된 응답 메시지를 출력한다.
단계 S630에서, 전자 장치(1000)는 응답 메시지에 관한 기본 세션 시간이 설정되어 있는지 확인한다.
응답 메시지에 기본 세션 시간이 설정되어 있지 않은 경우(단계 S640), 전자 장치(1000)는 심층 신경망 모델(Deep Neural Network)을 통해 응답 메시지의 난이도에 관한 라벨값을 출력한다. 여기서, '심층 신경망 모델'은 복수의 학습용 메시지를 입력으로 적용하고, 복수의 학습용 메시지 각각에 관한 난이도의 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된 인공지능 모델이다. 심층 신경망 모델은 단계 S610에서 사용자로부터 입력 메시지가 수신되는 시점 이전에 미리 학습된 모델이다. 전자 장치(1000)는 심층 신경망 모델에 응답 메시지를 입력으로 적용함으로써, 응답 메시지의 난이도로 예측되는 라벨값을 획득할 수 있다.
단계 S650에서, 전자 장치(1000)는 획득된 난이도의 라벨값에 대응되는 세션 시간을 기본 세션 시간으로 결정한다. 일 실시예에서, 전자 장치(1000)는 심층 신경망 모델을 통해 획득된 난이도에 관한 라벨값을 이용하여 세션 시간 DB(1310, 도 5c 참조)를 검색함으로써, 라벨값에 대응되도록 매핑된 세션 시간 정보를 획득할 수 있다. 전자 장치(1000)는 세션 시간 DB(1310)로부터 획득한 세션 시간을 기본 세션 시간으로 결정할 수 있다.
응답 메시지가 제공하는 정보, 답변, 또는 요청에 따라 기본 세션 시간이 정의되어 있을 수 있다. 응답 메시지에 기본 세션 시간이 설정되어 있는 경우(단계 S660), 전자 장치(1000)는 기 설정된 세션 시간을 기본 세션 시간으로 결정한다.
도 7은 사용자에 의해 입력되는 입력 메시지, 챗봇에 의해 제공되는 응답 메시지에 따른 기본 세션 시간 및 세션 사용 시간의 관계를 도시한, 본 개시의 일 실시예에 따른 타임 테이블(700)이다.
도 7을 참조하면, 제1 시점(t1)에 사용자로부터 제1 입력 메시지(711)가 입력되면, 챗봇은 제2 시점(t2)에 제1 입력 메시지(711)에 관한 제1 응답 메시지(721)를 출력한다. 제1 기본 세션 시간(731)은 제1 응답 메시지(721)가 출력된 제2 시점(t2)으로부터 기 결정된 시간만큼 제공된다. 기본 세션 시간을 결정하는 구체적인 방법에 대해서는 도 5a 내지 5c, 및 도 6에서 설명하였으므로, 중복되는 설명은 생략한다. 사용자는 제1 기본 세션 시간(731)이 경과하기 전인 제3 시점(t3)에 제2 입력 메시지(712)를 입력할 수 있고, 이 경우 세션 시간이 갱신된다.
제1 세션 사용 시간(741)은 사용자가 제1 응답 메시지(721)를 제공받은 시점(t2) 이후 제1 응답 메시지(721)에 의한 요청, 답변, 또는 정보 제공에 따라 특정 동작을 수행하거나, 추가 질의 또는 추가 요청을 위해 제2 입력 메시지(712)를 입력하는 시점(t3) 전까지 사용한 시간을 의미한다. 예를 들어, 제1 기본 세션 시간(731)이 5분이고, 제1 세션 사용 시간(741)은 4분일 수 있다. 세션 사용 시간이 기본 세션 시간을 초과하는 경우, 세션은 종료된다.
챗봇은 제4 시점(t4)에 제2 입력 메시지(712)에 관한 제2 응답 메시지(722)를 출력한다. 제1 기본 세션 시간(731)과 마찬가지로, 제2 기본 세션 시간(732)은 제2 응답 메시지(722)가 출력된 제4 시점(t4)으로부터 기 결정된 시간만큼 제공된다. 사용자는 제2 기본 세션 시간(732)이 경과하기 전인 제5 시점(t5)에 제3 입력 메시지(713)를 입력할 수 있고, 이 경우 세션 시간이 갱신된다.
제2 세션 사용 시간(742)은 사용자가 제2 응답 메시지(722)를 제공받은 시점(t4) 이후 제2 응답 메시지(722)에 의한 요청, 답변, 또는 정보 제공에 따라 특정 동작을 수행하거나, 추가 질의 또는 추가 요청을 위해 제3 입력 메시지(713)를 입력하는 시점(t5) 전까지 사용한 시간을 의미한다. 예를 들어, 제2 기본 세션 시간(732)이 10분이고, 제2 세션 사용 시간(742)은 6분일 수 있다.
'시나리오'는 사용자의 입력 메시지에 대하여 챗봇에 의해 제공되는 응답 메시지를 통한 요청, 질문, 답변 또는 정보 제공 등 문제 해결 단계(또는 과정)을 의미한다. 일 실시예에서, 시나리오는 응답 메시지가 제공된 시점 이후로부터 사용자의 추가 입력 메시지가 입력되는 시점 전까지로 정의될 수 있다. 도 7에 도시된 실시예에서, 제1 시나리오는 제1 응답 메시지(721)가 출력된 제2 시점(t2)으로부터 제2 입력 메시지(712)가 입력되는 제3 시점(t3)까지의 시간 간격을 의미하고, 제2 시나리오는 제2 응답 메시지(722)가 출력되는 제4 시점(t4)으로부터 제3 입력 메시지(713)가 입력되는 제5 시점(t5)까지의 시간 간격을 의미할 수 있다.
전자 장치(1000)는 현재 출력된 응답 메시지 이전에 기 출력된 응답 메시지의 수 및 기 출력된 응답 메시지에 의해 수행된 시나리오에서 사용된 세션 사용 시간 중 적어도 하나에 관한 정보에 기초하여 추가 세션 시간을 결정할 수 있다. 일 실시예에서, 전자 장치(1000)는 기 출력된 응답 메시지의 수가 1개 이상인 경우, 추가 세션 시간의 제공을 결정할 수 있다. 추가 세션 시간은 시나리오 별 세션 사용 시간의 총합에 관한 기설정된 비율로 결정될 수 있다. 전자 장치(1000)가 추가 세션 시간을 결정하는 구체적인 실시예에 대해서는 도 8 내지 도 10에서 상세하게 설명하기로 한다.
도 8은 본 개시의 일 실시예에 따른 전자 장치가 추가 세션 시간의 제공을 결정하는 방법을 도시한 흐름도이다.
도 8을 참조하면, 단계 S810 내지 S830은 도 4에 도시된 단계 S430을 구체화한 단계들이다. 단계 S810은 도 4에 도시된 단계 S420이 수행된 이후에 수행될 수 있다. 단계 S820 및 S830이 수행된 이후에는 도 4에 도시된 단계 S440이 수행된다.
단계 S810에서, 전자 장치(1000)는 응답 메시지 이전에 기 출력된 응답 메시지가 있었는지 여부를 확인한다.
기 출력된 응답 메시지가 있는 것으로 확인된 경우(단계 820), 전자 장치(1000)는 기 출력된 응답 메시지에 따른 시나리오 별 세션 사용 시간의 총합의 일정 비율을 추가 세션 시간으로 결정한다. 도 7을 함께 참조하면, 현재 출력된 응답 메시지가 제3 응답 메시지(723, 도 7 참조)인 경우, 제3 응답 메시지(723)가 출력되기 전의 시점에 제1 응답 메시지(721, 도 7 참조)와 제2 응답 메시지(722, 도 7 참조)를 포함하는 2개의 응답 메시지가 출력되었으므로, 전자 장치(1000)는 추가 세션 시간의 제공을 결정할 수 있다. 또한, 제1 시나리오와 제2 시나리오 각각에서 제1 세션 사용 시간(741, 도 7 참조) 및 제2 세션 사용 시간(742, 도 7 참조)이 사용되었는바, 전자 장치(1000)는 제1 세션 사용 시간(741)과 제2 세션 사용 시간(742)의 총합의 일정 비율, 예를 들어 20%를 추가 세션 시간으로 결정할 수 있다. 예를 들어, 제1 세션 사용 시간(741)이 4분이고, 제2 세션 사용 시간(742)이 6분인 경우, 전자 장치(1000)는 제1 세션 사용 시간(741)과 제2 세션 사용 시간(742)의 총합인 10분의 20%에 해당되는 2분을 제3 응답 메시지(723, 도 7 참조)에 관한 추가 세션 시간으로 결정할 수 있다.
기 출력된 응답 메시지가 없는 것으로 확인된 경우, 즉 현재 출력된 응답 메시지가 처음으로 출력된 응답 메시지인 경우(단계 830), 전자 장치(1000)는 추가 세션 시간을 제공하지 않기로 결정한다.
도 9는 본 개시의 일 실시예에 따른 전자 장치가 추가 세션 시간의 제공을 결정하는 방법을 도시한 흐름도이다.
도 9를 참조하면, 단계 S910 내지 S940은 도 4에 도시된 단계 S430을 구체화한 단계들이다. 단계 S910은 도 4에 도시된 단계 S420이 수행된 이후에 수행될 수 있다. 단계 S930 및 S940이 수행된 이후에는 도 4에 도시된 단계 S440이 수행된다.
단계 S910에서, 전자 장치(1000)는 시나리오 별 세션 시간 사용률을 산출한다. 일 실시예에서, 전자 장치(1000)는 세션 사용 시간을 기본 세션 시간으로 나누는 연산을 수행함으로써, 세션 시간 사용률을 산출할 수 있다. 예를 들어, 기본 세션 시간이 10분이고, 세션 사용 시간이 6분인 경우, 세션 시간 사용률은 60%일 수 있다.
일 실시예에서, 전자 장치(1000)는 기 출력된 응답 메시지에 따른 시나리오 별로 세션 시간 사용률을 산출할 수 있다. 도 7을 함께 참조하면, 현재 출력된 응답 메시지가 제3 응답 메시지(723, 도 7 참조)인 경우, 전자 장치(1000)는 제1 시나리오에서의 제1 세션 시간 사용률과 제2 시나리오에서의 제2 세션 시간 사용률을 산출할 수 있다. 예를 들어, 제1 시나리오에서 제1 기본 세션 시간(731, 도 7 참조)이 5분이고, 제1 세션 사용 시간(741, 도 7 참조)이 4분인 경우, 제1 세션 시간 사용률은 80%이고, 제2 시나리오에서 제2 기본 세션 시간(732, 도 7 참조)이 10분이고, 제2 세션 사용 시간(742, 도 7 참조)이 6분인 경우, 제2 세션 시간 사용률은 60%일 수 있다.
단계 S920에서, 전자 장치(1000)는 세션 시간 사용률을 기 설정된 임계치(α)와 비교한다. 전자 장치(1000)는 세션 시간 사용률이 임계치(α)를 초과하는지 여부를 판단할 수 있다.
세션 시간 사용률이 기 설정된 임계치(α)를 초과하는 경우(단계 S930), 전자 장치(1000)는 추가 세션 시간의 제공을 결정한다. 예를 들어, 기 설정된 임계치(α)가 50%인 경우, 제1 세션 시간 사용률이 80%이고, 제2 세션 시간 사용률이 60%이므로 전자 장치(1000)는 세션 시간 사용률이 기 설정된 임계치(α)를 초과한 것으로 판단하고, 추가 세션 시간의 제공을 결정할 수 있다.
추가 세션 시간은 시나리오 별 세션 사용 시간의 총합의 일정 비율로 결정될 수 있다. 예를 들어, 제1 세션 사용 시간이 4분이고, 제2 세션 사용 시간이 6분인 경우, 추가 세션 시간은 제1 세션 사용 시간과 제2 세션 사용 시간의 총합의 20%인 2분으로 결정될 수 있다.
세션 시간 사용률이 기 설정된 임계치(α) 이하인 경우(단계 S940), 전자 장치(1000)는 추가 세션 시간을 제공하지 않기로 결정한다.
도 10은 본 개시의 일 실시예에 따른 전자 장치가 추가 세션 시간의 제공을 결정하는 방법을 도시한 흐름도이다.
도 10을 참조하면, 단계 S1010 내지 S1040은 도 4에 도시된 단계 S430을 구체화한 단계들이다. 단계 S1010은 도 4에 도시된 단계 S420이 수행된 이후에 수행될 수 있다. 단계 S1030 및 S1040이 수행된 이후에는 도 4에 도시된 단계 S440이 수행된다.
단계 S1010에서, 전자 장치(1000)는 응답 메시지가 출력되기 전의 세션 사용 시간의 평균값을 산출한다. 도 7을 함께 참조하면, 현재 출력된 응답 메시지가 제3 응답 메시지(723, 도 7 참조)인 경우, 전자 장치(1000)는 제1 시나리오에서의 세션 사용 시간과 제2 시나리오에서의 세션 사용 시간의 평균값을 산출할 수 있다. 예를 들어, 제1 시나리오에서 사용된 제1 세션 사용 시간(741, 도 7 참조)이 4분이고, 제2 시나리오에서 사용된 제2 세션 사용 시간(742, 도 7 참조)이 6분인 경우, 평균값은 5분으로 산출될 수 있다.
단계 S1020에서, 전자 장치(1000)는 산출된 평균값을 기 설정된 임계치(tth)와 비교함으로써, 평균값이 임계치(tth)를 초과하는지 여부를 판단한다.
평균값이 기 설정된 임계치(tth)를 초과하는 경우(단계 S1030), 전자 장치(1000)는 추가 세션 시간의 제공을 결정할 수 있다. 예를 들어, 기 설정된 임계치(tth)가 3분인 경우, 단계 S1010에서 산출된 평균값은 5분이므로 전자 장치(1000)는 추가 세션 시간의 제공을 결정할 수 있다.
추가 세션 시간은 시나리오 별 세션 사용 시간의 총합의 일정 비율로 결정될 수 있다. 예를 들어, 제1 세션 사용 시간이 4분이고, 제2 세션 사용 시간이 6분인 경우, 추가 세션 시간은 제1 세션 사용 시간과 제2 세션 사용 시간의 총합의 20%인 2분으로 결정될 수 있다.
평균값이 기 설정된 임계치(tth) 이하인 경우(단계 S1040), 전자 장치(1000)는 추가 세션 시간을 제공하지 않기로 결정한다.
현재 출력된 응답 메시지(723, 도 7 참조) 이전에 기 출력된 응답 메시지가 많을수록 세션 종료에 대한 사용자의 부담은 커질 수 있다. 현재 응답 메시지(723)에 따른 사용자의 동작(예를 들어, 고장 여부 확인, 디바이스 상태 확인, 또는 이와 같은 동작)으로 인하여 시간이 소요되거나, 또는 실수로 추가 메시지의 입력을 누락한 경우, 기본 세션 시간이 경과되고, 따라서 세션이 종료될 수 있다. 이 경우, 사용자는 동일한 응답 메시지(723)에 도달하기 위해서 동일한 입력 메시지를 반복적으로 입력해야 되는바, 번거롭고 사용자 편의성이 떨어진다.
도 8 내지 도 10에 도시된 실시예에 따른 전자 장치(1000)는 현재 출력된 응답 메시지(723) 이전에 기 출력된 응답 메시지(721, 722, 도 7 참조)의 수 및 기 출력된 응답 메시지(721, 722)에 따른 시나리오 별 세션 사용 시간 중 적어도 하나의 정보에 기초하여 추가 세션 시간을 제공하는바, 기본 세션 시간이 경과하여 의도치 않게 세션이 종료되는 문제를 해결할 수 있다. 또한, 현재 응답 메시지(723)에 도달하기까지 사용자에 의해 사용된 세션 사용 시간을 고려함으로써, 사용자에 따라 최적화된 추가 세션 시간을 제공할 수 있고, 따라서 사용자 편의성을 향상시킬 수 있다.
도 11은 본 개시의 일 실시예에 따른 전자 장치가 세션 종료 알림을 출력하는 방법을 도시한 흐름도이다.
도 11을 참조하면, 단계 S1110 내지 S1150은 도 4에 도시된 단계 S450을 구체화한 단계들이다. 단계 S1110은 도 4에 도시된 단계 S440이 수행된 이후에 수행된다.
단계 S1110에서, 전자 장치(1000)는 세션 유지 시간의 경과 여부를 확인한다. 일 실시예에서, 세션 유지 시간은 기본 세션 시간과 추가 세션 시간의 합으로 결정될 수 있다. 전자 장치(1000)는 응답 메시지가 출력된 시점으로부터 세션 유지 시간 동안 사용자의 추가 메시지가 입력되는지를 확인할 수 있다.
단계 S1120에서, 전자 장치(1000)는 세션 종료 알림을 출력한다. 일 실시예에서, 전자 장치(1000)는 자연어 생성 모델(Natural Language Generation)을 이용하여 응답 메시지와 관련된 인텐트 및 개체명을 이용하여 사용자에게 세션 유지 시간이 종료되었음을 알리는 메시지를 생성하고, 생성된 메시지를 출력할 수 있다. 세션 종료 알림 메시지는 예를 들어, "냉장고에 관한 문제 해결이 되었나요? 채팅을 종료합니다."일 수 있다.
단계 S1130에서, 전자 장치(1000)는 종료 알림에 대한 사용자의 답변 메시지가 입력되었는지 여부를 확인한다. 사용자의 답변 메시지는 예를 들어, "예", "아니오"와 같이 문제 해결 여부를 Y/N으로 알리는 메시지일 수 있으나, 이에 한정되지 않는다. 답변 메시지는 추가 질의 또는 추가 요청과 관련된 메시지일 수도 있다.
사용자의 답변 메시지의 입력이 확인된 경우(단계 S1140), 전자 장치(1000)는 세션 유지 시간을 갱신한다.
사용자의 답변 메시지가 입력되지 않음이 확인된 경우(단계 S1150), 전자 장치(1000)는 세션 종료를 결정한다. 일 실시예에서, 답변 메시지가 입력되었더라도, 답변 메시지가 문제가 해결되었음을 알리는 메시지인 경우(예를 들어, "냉장고에 관한 문제 해결이 되었나요? 채팅을 종료합니다."에 관하여 "예"라고 답변하는 메시지), 전자 장치(1000)는 세션 종료를 결정할 수 있다.
도 11에 도시된 실시예에서, 전자 장치(1000)는 세션 유지 시간이 경과된 경우 바로 세션을 종료하지 않고, 세션 종료 알림 메시지를 출력함으로써, 사용자에게 세션 종료 여부를 알리고, 필요한 경우 사용자가 추가 메시지를 입력할 수 있도록 할 수 있다. 따라서, 본 개시의 전자 장치(1000)는 의도치 않게 세션이 종료되는 문제를 방지하고, 사용자 편의성을 향상시킬 수 있다.
도 12는 본 개시의 일 실시예에 따른 전자 장치가 기본 세션 시간을 조정하는 방법을 도시한 흐름도이다.
도 12를 참조하면, 단계 S1210에서, 전자 장치(1000)는 복수의 사용자의 세션 사용 이력 정보에 관한 통계 데이터를 저장한다. 일 실시예에서, 세션 사용 이력 정보는 세션 연장 요청 횟수, 응답 메시지가 출력되기 전에 수행된 시나리오의 수, 및 세션 사용 시간 중 적어도 하나에 관한 복수의 사용자의 통계 데이터일 수 있다. 일 실시예에서, 전자 장치(1000)는 세션 사용 이력 정보를 응답 메시지 별로 분류하여 저장할 수 있다.
단계 S1220에서, 전자 장치(1000)는 세션 사용 이력 정보에 기초하여 기본 세션 시간을 조정한다. 전자 장치(1000)는 현재 출력된 응답 메시지에 관한 복수의 사용자의 세션 사용 이력 정보에 기초하여, 기본 세션 시간을 연장하거나 또는 단축할 수 있다. 전자 장치(1000)가 기본 세션 시간을 연장하거나 단축하는 구체적인 실시예에 대해서는 도 13에서 설명하기로 한다.
도 13은 본 개시의 일 실시예에 따른 전자 장치가 기본 세션 시간을 연장 또는 단축하는 방법을 도시한 흐름도이다.
도 13을 참조하면, 단계 S1310에서, 전자 장치(1000)는 이전 세션에서 세션 연장 요청이 있었는지 여부를 확인한다. 일 실시예에서, 전자 장치(1000)는 세션 이력 통계 DB(1320, 도 3 참조)에 저장된 복수의 사용자의 세션 사용 이력 정보로부터 현재 출력된 응답 메시지와 관련된 세션 사용 이력 정보에 관한 통계 데이터를 검색할 수 있다. 세션 사용 이력 통계 DB(1320)는 복수의 사용자의 세션 사용 이력에 관한 통계 데이터를 저장하는 데이터베이스이다. 전자 장치(1000)는 세션 사용 이력 통계 DB(1320)의 검색 결과에 따라 응답 메시지가 출력되기 전의 세션에서 복수의 사용자에 의해 세션 연장 요청이 있었는지에 관한 정보를 획득할 수 있다.
세션 연장 요청이 있었음이 확인된 경우(단계 S1320), 전자 장치(1000)는 세션 연장 횟수를 1 증가시킨다.
단계 S1330에서, 전자 장치(1000)는 세션 연장 횟수가 총 세션 수의 α%를 초과하는지 여부를 판단한다.
세션 연장 횟수가 총 세션 수의 α%를 초과하는 것으로 확인된 경우(단계 S1340), 전자 장치(1000)는 응답 메시지에 관한 기본 세션 시간을 연장한다.
세션 연장 횟수가 총 세션 수의 α% 이하로 확인된 경우(단계 S1350), 전자 장치(1000)는 세션 시간을 갱신한다.
이전 세션에서 세션 연장 요청이 없는 것으로 확인된 경우(단계 S1360), 전자 장치(1000)는 응답 메시지에 대한 세션 사용 시간의 최대값이 기본 세션 시간의 β% 미만인지 여부를 판단한다. 일 실시예에서, 전자 장치(1000)는 세션 사용 이력 통계 DB(1320)로부터 현재 출력된 응답 메시지에 대한 복수의 사용자에 의한 세션 사용 시간에 관한 정보를 획득할 수 있다. 전자 장치(1000)는 세션 사용 이력 통계 DB(1320)로부터 획득한 복수의 사용자에 의해 사용된 세션 사용 시간 에 관한 정보로부터 세션 사용 시간의 최대값을 확인하고, 최대값이 기본 세션 시간의 β% (예를 들어, 50%) 미만인지 여부를 판단할 수 있다.
세션 사용 시간의 최대값이 β% 미만인 경우(단계 S1370), 전자 장치(1000)는 응답 메시지에 관한 기본 세션 시간을 단축한다. 전자 장치(1000)는 예를 들어, 기본 세션 시간을 25% 만큼 단축할 수 있다.
도 12 및 도 13에 도시된 실시예에 따른 전자 장치(1000)는 응답 메시지에 관하여 다른 사용자들의 세션 사용 이력 정보를 저장하고, 저장된 복수의 사용자의 세션 사용 이력 정보를 이용하여 기본 세션 시간을 연장 또는 단축하는바, 다수의 사용자 경험을 반영하여 적응적으로(adaptively) 기본 세션 시간을 조정할 수 있는 기술적 효과가 있다.
본 명세서에서 설명된 전자 장치(1000)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 명세서에 개시된 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예를 들어, 구글 플레이 스토어, 앱 스토어, 또는 이와 같은 전자 마켓)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제3의 디바이스(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3의 디바이스의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제3 디바이스로 전송되거나, 제3 디바이스로부터 디바이스로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 디바이스 및 제3 디바이스 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제3 디바이스 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제3 디바이스가 컴퓨터 프로그램 제품을 실행하여, 제3 디바이스와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다.
제3 디바이스가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 디바이스는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 디바이스는 프리로드된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
본 개시가 다양한 실시예를 참조하여 제공되고, 설명되었으나, 첨부된 청구항 및 그 균등 범위에 의해 정의된 본 개시의 사상(spirit) 및 범위(scope)를 벗어나지 않고, 형태 및 세부 사항의 다양한 변경이 이루어질 수 있다는 점은 해당 기술분야에서 통상의 지식을 가진 자에게 이해될 것이다.
Claims (15)
- 챗봇(chatbot)의 세션을 유지하는 시간을 결정하는 방법에 있어서,사용자의 입력 메시지에 대한 응답 메시지를 출력하는 단계;상기 출력된 응답 메시지의 난이도에 기초하여, 세션(session)이 유지되는 기본 세션 시간을 결정하는 단계;상기 응답 메시지의 출력 이전의 상기 챗봇을 통한 대화 이력 정보에 기초하여 추가 세션 시간을 결정하는 단계;상기 기본 세션 시간과 상기 추가 세션 시간을 합한 세션 유지 시간 동안 사용자의 추가 메시지 입력을 대기하는 단계; 및상기 추가 메시지의 입력 여부에 기초하여 세션 종료를 결정하는 단계;를 포함하는, 방법.
- 제1 항에 있어서,상기 기본 세션 시간을 결정하는 단계는,심층 신경망 모델(deep neural network)에 상기 응답 메시지를 입력으로 적용함으로써 출력된 난이도에 관한 라벨값을 획득하는 단계; 및상기 획득된 라벨값에 대응되도록 매핑된 세션 시간을 상기 기본 세션 시간으로 결정하는 단계;를 포함하는, 방법.
- 제2 항에 있어서,상기 심층 신경망 모델은,복수의 학습용 메시지를 입력으로 적용하고, 난이도에 관한 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된, 방법.
- 제1 항에 있어서,상기 대화 이력 정보는,상기 응답 메시지가 출력되기 이전의 대화에서 기 출력된 응답 메시지의 수 및 상기 기 출력된 응답 메시지에 따라 수행된 시나리오에서의 세션 사용 시간 중 적어도 하나에 관한 정보를 포함하는, 방법.
- 제4 항에 있어서,상기 추가 세션 시간은,상기 시나리오 별 세션 사용 시간의 총합에 대한 기설정된 비율로 결정되는, 방법.
- 제1 항에 있어서,상기 출력된 응답 메시지에 대한 복수의 사용자의 세션 사용 이력 정보를 저장하는 단계;상기 저장된 복수의 사용자의 세션 사용 이력 정보에 기초하여 상기 기본 세션 시간을 조정(adjust)하는 단계;를 더 포함하는, 방법.
- 제6 항에 있어서,상기 세션 사용 이력 정보는,상기 응답 메시지가 출력되기 이전 시점에서의 세션 연장 요청 횟수, 상기 응답 메시지 이전에 수행된 시나리오의 수, 및 상기 응답 메시지에 대하여 사용된 세션 사용 시간 중 적어도 하나에 관한 상기 복수의 사용자의 통계 데이터를 포함하는, 방법.
- 챗봇의 세션 유지 시간을 결정하는 전자 장치에 있어서,타 디바이스와의 데이터 송수신을 수행하는 통신 인터페이스;메모리;하나 이상의 명령어들(instructions)을 실행하는 프로세서;를 포함하고,상기 프로세서는,상기 통신 인터페이스를 통해 사용자에 의해 입력된 입력 메시지를 획득하고,상기 입력 메시지에 대한 응답 메시지를 출력하고,상기 출력된 응답 메시지의 난이도에 기초하여, 세션(session)이 유지되는 기본 세션 시간을 결정하고,상기 응답 메시지의 출력 이전의 상기 챗봇을 통한 대화 이력 정보에 기초하여 추가 세션 시간을 결정하고,상기 기본 세션 시간과 상기 추가 세션 시간을 합한 세션 유지 시간 동안 사용자의 추가 메시지 입력을 대기하고,상기 추가 메시지의 입력 여부에 기초하여 세션 종료를 결정하는, 전자 장치.
- 제8 항에 있어서,상기 프로세서는,심층 신경망 모델(pre-trained deep neural network)에 상기 응답 메시지를 입력으로 적용함으로써 출력된 난이도에 관한 라벨값을 획득하고,상기 획득된 라벨값에 대응되도록 매핑된 세션 시간을 상기 기본 세션 시간으로 결정하는, 전자 장치.
- 제9 항에 있어서,상기 심층 신경망 모델은,복수의 학습용 메시지를 입력으로 적용하고, 난이도에 관한 라벨값을 출력 정답값(groundtruth)으로 적용하는 지도 학습(supervised learning)을 통해 트레이닝된, 전자 장치.
- 제8 항에 있어서,상기 대화 이력 정보는,상기 응답 메시지가 출력되기 이전의 대화에서 기 출력된 응답 메시지의 수 및 상기 기 출력된 응답 메시지에 따라 수행된 시나리오에서의 세션 사용 시간 중 적어도 하나에 관한 정보를 포함하는, 전자 장치.
- 제11 항에 있어서,상기 프로세서는,상기 시나리오 별 세션 사용 시간의 총합에 대한 기설정된 비율로 상기 추가 세션 시간을 결정하는, 전자 장치.
- 제8 항에 있어서,상기 프로세서는,상기 출력된 응답 메시지에 대한 복수의 사용자의 세션 사용 이력 정보를 상기 메모리의 데이터베이스에 저장하고,상기 저장된 복수의 사용자의 세션 사용 이력 정보에 기초하여 상기 기본 세션 시간을 조정(adjust)하는, 전자 장치.
- 제13 항에 있어서,상기 세션 사용 이력 정보는,상기 응답 메시지가 출력되기 이전 시점에서의 세션 연장 요청 횟수, 상기 응답 메시지 이전에 수행된 시나리오의 수, 및 상기 응답 메시지에 대하여 사용된 세션 사용 시간 중 적어도 하나에 관한 상기 복수의 사용자의 통계 데이터를 포함하는, 전자 장치.
- 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 적어도 하나의 비일시적인 컴퓨터 프로그램 제품(at least one non-transitory Computer Program Product)에 있어서,상기 저장 매체는,사용자의 입력 메시지에 대한 응답 메시지를 출력하는 단계;상기 출력된 응답 메시지의 난이도에 기초하여, 세션(session)이 유지되는 기본 세션 시간을 결정하는 단계;상기 응답 메시지의 출력 이전의 상기 챗봇을 통한 대화 이력 정보에 기초하여 추가 세션 시간을 결정하는 단계;상기 기본 세션 시간과 상기 추가 세션 시간을 합한 세션 유지 시간 동안 사용자의 추가 메시지 입력을 대기하는 단계; 및상기 추가 메시지의 입력 여부에 기초하여 세션 종료를 결정하는 단계;를 포함하는, 디바이스가 수행하는 명령어들(instructions)을 포함하는 컴퓨터 프로그램 제품.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202280007673.2A CN116508016B (zh) | 2021-01-29 | 2022-01-21 | 确定聊天机器人保持会话的时间的电子设备及其操作方法 |
| EP22746158.9A EP4207712A4 (en) | 2021-01-29 | 2022-01-21 | ELECTRONIC DEVICE FOR DETERMINING THE TIME DURING THE CHATBOT KEEPING THE SESSION AND OPERATING METHOD THEREOF |
| US17/584,967 US11700311B2 (en) | 2021-01-29 | 2022-01-26 | Electronic apparatus and operating method thereof for determining session duration time of chatbot |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2021-0013472 | 2021-01-29 | ||
| KR1020210013472A KR20220109895A (ko) | 2021-01-29 | 2021-01-29 | 챗봇의 세션을 유지하는 시간을 결정하는 전자 장치 및 그 동작 방법 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/584,967 Continuation US11700311B2 (en) | 2021-01-29 | 2022-01-26 | Electronic apparatus and operating method thereof for determining session duration time of chatbot |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022164131A1 true WO2022164131A1 (ko) | 2022-08-04 |
Family
ID=82654056
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2022/001093 Ceased WO2022164131A1 (ko) | 2021-01-29 | 2022-01-21 | 챗봇의 세션을 유지하는 시간을 결정하는 전자 장치 및 그 동작 방법 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20220109895A (ko) |
| WO (1) | WO2022164131A1 (ko) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20250109393A (ko) * | 2024-01-10 | 2025-07-17 | 울산과학기술원 | 연대기적 역학 기반의 멀티 세션 대화 모델을 이용하여 챗봇 서비스를 제공하는 전자 장치 및 방법 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190104119A (ko) * | 2019-08-28 | 2019-09-06 | 주식회사 카카오 | 챗봇과 상담원을 이용한 반자동 대화제공방법 및 서버 |
| KR101999780B1 (ko) * | 2017-12-11 | 2019-09-27 | 주식회사 카카오 | 가상 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법 |
| JP2019175464A (ja) * | 2019-04-04 | 2019-10-10 | Nttテクノクロス株式会社 | 情報処理装置、情報処理方法及びプログラム |
| KR20200108000A (ko) * | 2017-12-29 | 2020-09-16 | 엑스브레인, 인크. | 대화 등급평가 및 증강된 에이전트들을 이용한 세션 처리 |
| US20200334615A1 (en) * | 2019-04-22 | 2020-10-22 | Google Llc | Predicting Business-Agnostic Contact Center Expected Wait Times With Deep Neural Networks |
-
2021
- 2021-01-29 KR KR1020210013472A patent/KR20220109895A/ko active Pending
-
2022
- 2022-01-21 WO PCT/KR2022/001093 patent/WO2022164131A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101999780B1 (ko) * | 2017-12-11 | 2019-09-27 | 주식회사 카카오 | 가상 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법 |
| KR20200108000A (ko) * | 2017-12-29 | 2020-09-16 | 엑스브레인, 인크. | 대화 등급평가 및 증강된 에이전트들을 이용한 세션 처리 |
| JP2019175464A (ja) * | 2019-04-04 | 2019-10-10 | Nttテクノクロス株式会社 | 情報処理装置、情報処理方法及びプログラム |
| US20200334615A1 (en) * | 2019-04-22 | 2020-10-22 | Google Llc | Predicting Business-Agnostic Contact Center Expected Wait Times With Deep Neural Networks |
| KR20190104119A (ko) * | 2019-08-28 | 2019-09-06 | 주식회사 카카오 | 챗봇과 상담원을 이용한 반자동 대화제공방법 및 서버 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220109895A (ko) | 2022-08-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020017898A1 (en) | Electronic apparatus and control method thereof | |
| WO2020091350A1 (en) | Electronic device and control method thereof | |
| WO2018124620A1 (en) | Method and device for transmitting and receiving audio data | |
| WO2020080834A1 (en) | Electronic device and method for controlling the electronic device | |
| WO2019143227A1 (en) | Electronic device providing text-related image and method for operating the same | |
| WO2020213996A1 (en) | Method and apparatus for interrupt detection | |
| WO2020116818A1 (en) | Electronic device and method of controlling thereof | |
| WO2020130447A1 (ko) | 페르소나에 기반하여 문장을 제공하는 방법 및 이를 지원하는 전자 장치 | |
| WO2021206413A1 (en) | Device, method, and computer program for performing actions on iot devices | |
| WO2020032655A1 (en) | Method for executing function based on voice and electronic device supporting the same | |
| WO2022164131A1 (ko) | 챗봇의 세션을 유지하는 시간을 결정하는 전자 장치 및 그 동작 방법 | |
| WO2019090981A1 (zh) | 保险应用系统的监控方法及装置 | |
| WO2018203620A1 (ko) | 사용자 발화를 처리하는 전자 | |
| WO2025116179A1 (ko) | 블록체인 기반의 챗봇 평가 방법 및 시스템 | |
| EP3545519A1 (en) | Method and device for transmitting and receiving audio data | |
| WO2020076086A1 (en) | System for processing user utterance and operating method thereof | |
| WO2020141643A1 (ko) | 음성 합성 서버 및 단말기 | |
| WO2023140508A1 (en) | System and method for simultaneously identifying intent and slots in voice assistant commands | |
| WO2021010578A1 (en) | Electronic apparatus and method for recognizing speech thereof | |
| WO2022139097A1 (ko) | 전자 장치, 시스템 및 그 제어 방법 | |
| WO2020213885A1 (en) | Server and control method thereof | |
| WO2023113502A1 (ko) | 전자 장치 및 전자 장치의 음성 명령어 추천 방법 | |
| WO2023113548A1 (ko) | 전자 장치 및 그 제어 방법 | |
| WO2023038292A1 (ko) | 전자 장치 및 전자 장치의 음성 처리 방법 | |
| WO2021049844A1 (ko) | 통신 라인 암호화 시스템 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22746158 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2022746158 Country of ref document: EP Effective date: 20230328 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280007673.2 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |