WO2018161306A1 - Application recommendation - Google Patents
Application recommendation Download PDFInfo
- Publication number
- WO2018161306A1 WO2018161306A1 PCT/CN2017/076133 CN2017076133W WO2018161306A1 WO 2018161306 A1 WO2018161306 A1 WO 2018161306A1 CN 2017076133 W CN2017076133 W CN 2017076133W WO 2018161306 A1 WO2018161306 A1 WO 2018161306A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- user
- query
- data
- clusters
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000011161 development Methods 0.000 claims abstract description 4
- 230000004044 response Effects 0.000 claims description 77
- 230000003213 activating effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 26
- 238000010801 machine learning Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010411 cooking Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 102100034761 Cilia- and flagella-associated protein 418 Human genes 0.000 description 1
- 101100439214 Homo sapiens CFAP418 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 235000021152 breakfast Nutrition 0.000 description 1
- 235000021438 curry Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0282—Rating or review of business operators or products
Definitions
- AI conversational chat programs are becoming more and more popular. These conversational chat programs, also referred to as “chatbots” , allow users to carry on conversations with a virtual entity.
- an application such as a game application, a topic-related application, or the like may be activated during the conversation between a user and a chatbot. As more and more applications are released in the circumstance of the intelligent automated chatting, there may be a large number of applications appended to a chatbot.
- Embodiments of the present disclosure provide a method for application recommendation through intelligent automated chatting.
- a query is received in a conversation. Matching rates between the query and applications are scored.
- the query is identified as being matched with a first application of the applications based on the matching rates.
- the first application is recommended in the conversation.
- Embodiments of the present disclosure provide a method for collecting information.
- a plurality of user clusters are generated based on user data associated with a service, wherein a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions.
- the plurality of user clusters are stored in a database.
- Figure 1 illustrates an exemplary environment where the described techniques can be implemented according to an embodiment.
- Figure 2 illustrates an exemplary system applying a chatbot according to an embodiment.
- Figure 3 illustrates an exemplary user interface (UI) according to an embodiment.
- Figure 4 illustrates an exemplary conversation between a chatbot and a user according to an embodiment.
- Figure 5 illustrates a flowchart of an exemplary process for application recommendation according to an embodiment.
- Figure 6 illustrates an exemplary user-application usage database according to an embodiment.
- Figure 8 illustrates an exemplary collection of information from web data according to an embodiment.
- Figure 9 illustrates an exemplary link of user data and web data according to an embodiment.
- Figure 11 illustrates a flowchart of an exemplary process for updating key words of an application according to an embodiment.
- Figure 15 illustrates an exemplary apparatus for information collection according to an embodiment.
- Figure 1 illustrates an exemplary environment where the described techniques can be implemented according to an embodiment.
- the network 110 may be any type of networks capable of interconnecting network entities.
- the network 110 may be a single network or a combination of various networks.
- the network 110 may be a Local Area Network (LAN) , a Wide Area Network (WAN) , etc.
- the network 110 may be a wireline network, a wireless network, etc.
- the network 110 may be a circuit switching network, a packet switching network, etc.
- the terminal device 120 may be any type of computing device capable of connecting to the network 110, assessing servers or websites over the network 110, processing data or signals, etc.
- the terminal device 120 may be a desktop computer, a laptop, a tablet, a smart phone, etc. Although only one terminal device 120 is shown in Figure 1, it should be appreciated that a different number of terminal devices may connect to the network 110.
- the terminal device 120 may include a chatbot client 122 which may provide a chat service for a user.
- the chatbot client 122 at the terminal device 120 may be an independent client application corresponding to the chatbot service provided by the chatbot server 140.
- the chatbot client 122 at the terminal device 120 may be implemented in a third party application such as a third party instant messaging (IM) application. Examples of the third party IM message comprise MSN TM , ICQ TM , SKYPE TM , QQ TM , WeChat TM and so on.
- IM instant messaging
- the chatbot client 122 communicates with the chatbot server 140.
- the chatbot client 122 may transmit messages inputted by a user to the chatbot server 140, and receive responses associated with the messages from the chatbot server 140.
- the chatbot client 122 and the chatbot server 140 may be collectively referred to as a chatbot.
- the chatbot client 122 and the chatbot server 140 may be collectively referred to as a chatbot.
- the chatbot client 122 and the chatbot server 140 may be collectively referred to as a chatbot.
- queries the messages inputted by the user
- responses outputted by the chatbot
- the query-response pairs may be recorded as user log data.
- the chatbot client 122 may also locally generate responses to queries inputted by the player.
- the application 124 may be implemented at an application server 130, which may be a third part application server. For example, while the application 124 is active during the conversation, a query from a user is sent to the application server 130 via the chatbot, and a response from the application server 130 is sent to the user via the chatbot.
- the application 124 may be implemented at the chatbot server 140, and in this case an application module 142 may be implemented at the chatbot server 140.
- Applications provided by the chatbot service provider and/or applications provided by third party application providers may be implemented at the application module 142.
- the chatbot may call an application at the application module 142 in order to activate the application during the conversation.
- Figure 2 illustrates an exemplary chatbot system according to an embodiment.
- the system 200 may comprise a user interface (UI) 210.
- the UI 210 may be implemented at the chatbot client 122, and provide a chat window for interacting between a user and the chatbot.
- FIG. 3 illustrates an example of the UI 210.
- a chat window 320 is displayed on a computing device 300.
- the chat window 320 comprises a presentation area 322, a control area 324 and an input area 326.
- the presentation area 322 presents queries and responses in a conversation between a user and a chatbot, which is represented by the icon 310.
- the control area 324 includes a plurality of virtual buttons for the user to perform message input settings. For example, the user may make a voice input, attach image file, select emoji symbols, and make a short-cut of current screen, and so on through the control area 324.
- the input area 326 is used for the user to input messages. For example, the user may type text through the input area 326.
- the control area 324 and the input area 326 may be collectively referred to as input unit. The user may also make a voice call or video conversation with the AI chatbot though the input unit.
- Rinna is the name of the AI chatbot, which may also be referred to as AI chat system.
- the queries from the user are transferred to the query queue 232, which temporarily stores users’ queries.
- the users’ queries may be in various forms including text, sound, image, video, and so on.
- the core processing module 220 may take the messages or queries in the query queue 232 as its input. In some implements, queries in the queue 232 may be served or responded in first-in-first-out manner.
- the core processing module 220 may invoke processing units in an application program interface (API) module 250 for processing various forms of messages.
- the API module 250 may comprise a text processing unit 252, a speech processing unit 254, an image processing unit 256, etc.
- the text processing unit 252 may perform text understanding on the text message, and the core processing module 220 may further determine a text response.
- the speech processing unit 254 may perform a speech-to-text conversion on the speech message to obtain text, the text processing unit 252 may perform text understanding on the obtained text, and the core processing module 220 may further determine a text response. If it is determined to provide a response in speech, the speech processing unit 254 may perform a text-to-speech conversion on the text response to generate a corresponding speech response.
- the API module 250 may comprise any other processing units.
- the API module 250 may comprise a video processing unit for cooperating with the core processing module 220 to process a video message and determine a response.
- the API module 250 may comprise a location-based processing unit for supporting location-based services.
- An application recommendation module 280 in the system 200 may determine whether or not to recommend an application to a user in response to a query from the user. Taking the query “Rinna, how old are you” as an example, the application recommendation module 280 may determine that the user does not have an intention to activate an application, and only wants to have a small talk with the chatbot.
- the core processing module 220 may determine a response through an index database 260.
- the index database 260 may comprise a plurality of index items that can be retrieved by the core processing module 220 as responses.
- the index items in the index database 260 may be classified into a question-answer pair index set 262 and a pure chat index set 264.
- Index items in the question-answer pair index set 262 are in a form of question-answer pairs, and the question-answer pair index set 262 may comprise question-answer pairs associated with an application such as application 124.
- Index items in the pure chat index set 264 are prepared for free chatting between the user and the chatbot, and may or may not be in a form of question-answer pairs.
- question-answer pair may also be referred to as query-response pair or any other suitable terms.
- the core processing module 220 may determine a response “second year of primary high school” through the pure chat index set.
- the responses determined by the core processing module 220 may be provided to a response queue or response cache 234.
- the responses in the response queue or response cache 234 may be further transferred to the user interface 210 such that the responses can be presented to the user in an proper order.
- a user database 270 in the system 200 is used to record user data occurred in conversations between users and the chatbot.
- the user database 270 may comprise a user log database 272 and a user-application usage database 274.
- the user log database 272 may be used to record messages occurred in conversations between users and the chatbot.
- the user log database 272 may be used to record user log data of pure chat.
- the user log database 272 may be used to record not only the user log data of pure chat but also user log data occurred while an application is active.
- the user log data may be in a query-response pair form, or may be in any other suitable form.
- Figure 4 illustrates an exemplary chatting flow between a user and a chatbot according to an embodiment.
- a query “Shiritori” is received by the chatbot from a user.
- the chatbot specifically the application recommendation module 280, identifies that the query is matched with an application, and additionally identifies that there is no active application in the conversation currently.
- the Shiritori application is activated, and the chatbot outputs a response to ask the user to choose a normal mode or hard mode for the Shiritori application.
- the chatbot may output a message asking whether the user wants to activate the Shiritori application even when there is no current active application in the conversation. Either the direct activating of the application or the outputting of the asking message is an example of recommending the application performed by the chatbot.
- the application recommendation module 280 sends the query to the current active Shiritori application and the conversation proceeds.
- the user and the chatbot/Shiritori application input “like” , “keep” , “episode” , “decoder” , “error” , “orange” in turn during the shiritori game.
- a query “I meet a lot with the girl living nearby” is received by the chatbot from the user.
- the chatbot specifically the application recommendation module 280, identifies that the query is matched with an application, and identifies that there is an active application in the conversation currently.
- the chatbot outputs a response for recommending the matched application, that is, “Oh, do you want to do “love diagnosis” ? ” .
- the chatbot switches the current active application “Shiritori” to the recommended application “love diagnosis” .
- a sentiment analysis module may be used to make a positive, negative or neutral judgement of user’s query based on user’s natural language style inputs.
- the chatbot ends the current active application, that is, “We played 3 rounds of Shiritori. See you next time! ” , and activates the matched application, as shown in the Figure 4.
- the chatbot may suspend the current active application while the newly matched application is active, and may resume the suspended application when the newly matched application is ended.
- Figure 5 illustrates an exemplary process for recommending an application according to an embodiment.
- the process 500 starts from 502, at which a chatbot receives a query from a user.
- the query may also be received from an entity such as an intelligent system or an intelligent bot.
- the query may be “Shiritori” or any message inputted from the user such as “normal” , “like” , “I meet a lot with the girl living nearby” , or the like, as shown in Figure 4.
- the application recommendation module 280 is implemented as a machine learning module, which is trained by using user queries, trigger data of applications, user usage data of the applications, and optionally other suitable data.
- each application has a set of keywords which are examples of trigger data.
- the application recommendation module 280 computes the similarity scores based on the query, the trigger data of the applications and the user-application usage data stored in the user-application usage database 274.
- the application recommendation module 280 identifies whether the query is matched with one of the applications based on the scores.
- a threshold may be set for an application, and a matching decision may be made when the similarity score of the application is above the threshold. On the other hand, a not-matching decision may be made when the similarity score of the application is under the threshold.
- the application recommendation module 280 may choose the application having the highest score to recommend.
- the threshold of an application may be updated dynamically. Initially, the threshold may be set to be a relatively small value to obtain a better trigger rate of an application. During the usage of the application recommendation, the threshold may be improved to balance the precision and the trigger rate of application recommendation.
- An exemplary process of updating a threshold of an application is shown as the following:
- i. threshold threshold + alpha (e.g., alpha is set to be a float in the range of (0, 0.1))
- threshold threshold –beta (e.g., beta is set to be a float in the range of (0, 0.1)) .
- the expected precision value and the expected trigger rate value may be a predefined threshold. It should be appreciated the updating algorithm is for sake of illustration without any intention to limit the scope of the disclosure.
- the process goes to 516 at which a recommendation for the matched application is outputted.
- the recommendation may be presented as a question to ask whether the user wants to switch to the matched application.
- the process goes to 520 at which the matched application is activated to become the current active application.
- the user’s usage data of the current active application is recorded in the active data 620 of the user-application data base.
- the active data 620 may be stored as the history data 610.
- the schema of the history data and the active data are identical as shown in 630 and 640, the difference is that some information in the active data is in updating since the active application is still working. For example, the timestamp end information in the active data unit is not available until the current active application is ended.
- the exemplary schema includes user ID, application ID, timestamp start, timestamp end, user query list, application statistics, application session data, is third-party application, application owner. It should be appreciated that more or less information elements may be applicable, and the disclosure is not limited to the specific schema 630.
- the timestamp start and timestamp end indicate the start time and end time of the application (identified by application ID) used by the user (identified by user ID) .
- the user query list includes the user’s inputted queries for this usage of the application. For example, for a cooking application, the user queries may be “how to cook spring roll” , “I want to make sushi” and so on inputted in this usage of the cooking application.
- the application statistics include statistical information about this usage of the application, such as the number of rounds that the user played with “Shirotori” application.
- Examples of the application session data include how many times this application was ended in a normal way, how many times this application was ended in an interrupted way (for example, the application is interrupted by another application) .
- the application session data may be computed with respect to a single user and a single application in some implementations, and may also be computed with respect to a single application and all users in some other implementations.
- the application session data may be updated periodically.
- the element of is third part application indicates whether the application identified by the application ID is provided by a third party application provider.
- the application owner indicates the application provider’s information, such as the third-party developer’s name or ID.
- Maximum usage time (e.g., in seconds) of one application for current user or all users.
- Averaged query length of user s queries for one application. For example, the longer the query is, the more the user is engaged in the current application.
- the application a third-party application or not.
- the weight of a third-party application may be enhanced if the third-party application developer pays money for that.
- the third-party application developer may bid for special trigger words to help triggering their applications.
- the similarity computing model may be implemented with machine learning algorithm.
- An example of the machine learning algorithm may be a gradient boosting decision tree algorithm used to compute the similarity scores.
- the statistical information of all the existing users may be used as features for computing the similarity scores for application recommendation.
- the most popular applications which are used by most users or have relatively long usage time are likely to be recommended to the current user.
- Each keyword in each cluster is appended with a list of one or more events.
- An exemplary keyword “My Neighbor Totoro” in cluster 1 is shown at 710, the keyword “My Neighbor Totoro” is appended with two exemplary events “Rinna, I want to see the movie of “My Neighbor Totoro” ” and “Rinna, can you find the movie “My Neighbor Totoro” for me” shown at 712 and 714. It should be appreciated that there may be more or less events appended to a keyword.
- user queries from the user data 702, which match a keyword of a cluster may be appended to the keyword of the cluster as the events, and users that sent the queries may be linked to the cluster.
- a query “Rinna, I want to see the movie of My Neighbor Totoro” contains the keyword “My Neighbor Totoro”
- the query is appended to the keyword as the event and accordingly the query as well as users that sent the query is linked with the cluster 1.
- All the users that send queries containing the keyword of “My Neighbor Totoro” may be included in the cluster 1.
- all the users that send queries containing the keyword of “One Piece” may be included in the cluster 1.
- all the users that send queries containing any keyword of cluster 1 may be included in the cluster 1.
- the user clustering model is designed to better understand the frequently used words and frequently attended events by large-scale users. And the information collected by the user clustering is helpful for application developers to develop new applications that fit for the habits of each group of users, so as to improve the engagement rate of the new developed applications.
- Figure 8 illustrates an exemplary collection of information from web data according to an embodiment.
- a LDA clustering model may be used at 804 to automatically cluster web data 802 into a plurality of clusters such as cluster 1 806, cluster 2 808 and so on.
- the web data 802 may be from various web resources, examples of which may include social networks, knowledge-related website and so on.
- Each cluster include a list of keywords, such as Star War, My Neighbor Totoro, ..., shown at 806 and Spring roll, sushi, ..., shown at 808. It should be appreciated that although two clusters are shown in the Figure, there may be a certain number of clusters, as discussed above.
- Each keyword in each cluster is appended with a list of one or more events.
- An exemplary keyword “My Neighbor Totoro” in cluster 1 is shown at 810, the keyword “My Neighbor Totoro” is appended with two exemplary events “ “My Neighbor Totoro” is a long animation movie produced by Studio Ghibli. ” and “ “My Neighbor Totoro” is directed by Hayao Miyazaki. ” shown at 812 and 814.
- sentence level descriptions (such as sentences 812, 814 or sentences 818, 820) from the web data 802, which match a keyword of a cluster, may be appended to the keyword of the cluster as the events. As illustrated, the sentences 812 and 814 are appended to the keyword 810 in the cluster 1, and the sentences 818 and 820 are appended to the keyword 816 in the cluster 2.
- Figure 9 illustrates an exemplary link of user clusters and web cluster according to an embodiment.
- the same label numbers shown in Figures 7-9 denote same elements.
- Similar clusters in these two lists of clusters may be unified. For example, as shown in Figure 9, if a keyword (e.g., “My Neighbor Totoro” 710) is shared by a cluster in the user cluster list (e.g., cluster 1 in the user cluster list) and a cluster in the web cluster list (e.g., cluster 1 in the web cluster list) , then the events (e.g., events 812, 814) appended to the keyword in the web cluster may be linked to the events appended to the keyword in the user cluster.
- a keyword e.g., “My Neighbor Totoro” 710
- the events e.g., events 812, 814
- the disclosure builds new query-answer pairs by making use of the link of the user data and web data, where a query is from users and an answer is from the web.
- a query-answer similarity score computing model is used to find high confidence answers from web data for queries from user data.
- An exemplary algorithm of the model is as follows.
- sim max (Qu, Sw) sim (Qu, Sw) ;
- the sim (Qu, Sw) denotes the similarity score between Qu and Sw
- sim max (Qu, Sw) denotes the maximum similarity score
- a machine learning module for example, a gradient boosting decision tree, may be trained for computing the similarity score sim (Qu, Sw) , which indicates how good the answer sentence responds to a query.
- the query Qu is an event in the user cluster Cu
- the sentence Sw is an event in the web cluster Cw.
- the threshold is a predefined value, an example of the threshold may be 0.5, where the sim (Qu, Sw) ranges from 0 to 1.
- one best sentence Sw from the web cluster may be found for one query from the user cluster by using the above algorithm, however as a variation of the algorithm, the maximum similarity score sim max (Qu, Sw) is not considered, and all sentences from the web cluster having scores larger than the threshold may be taken as candidate answers for the query, therefore it’s possible that multiple sentences may be found from the web cluster as candidate answers for one query from the user cluster. It should be appreciated that the finding of candidate query-answer pairs may be performed periodically based on user data and web data.
- the number of clusters may be in hundreds level, thousands level, tens of thousands level, or even millions level, therefore rich candidate query-answer candidate pairs may be found through the above process by using the link of the user data and web data.
- the candidate query-answer pairs may be used to update applications.
- Figure 10 illustrates an exemplary process for updating an application according to an embodiment.
- the chatbot identifies a user query is matched with an application, similarly as the YES decision made at 506 of Figure 5.
- the chatbot identifies whether there are sufficient available responses for the application.
- a decision of insufficient available responses may be made if the number of the available responses for the application is smaller than a threshold. For example, for a movie topic related application, it may identify that the available responses are insufficient when the number of the available responses is smaller than the threshold, and it may further determine that the application may be updated by complementing movie data from web.
- the query may be linked to a web cluster.
- the link of the query and the web cluster may be implemented based on the keywords or events of the clusters. Taking the query “Rinna, can you find the movie “My Neighbor Totoro” for me” as an example, this query may be used to trigger a movie-related application at 1020, and may be linked to a web cluster related to movie topics.
- the data obtained from the web cluster are appended to the application.
- the user clusters and web clusters may also be used to drive idea collection about applications.
- the web cluster list may be used to collect novel ideas for constructing new applications for the chatbot. For example, for one web cluster, there are quite a few keywords appearing in users’ log data and/or there is not a corresponding cluster from user cluster list, then the event sentences from the web may be used as materials or data resources for preparing new applications.
- the type of an application may comprise a time-sensitive application, game-style application, functional application such as weather report application, image-based application, and other suitable types of application.
- Figure 11 illustrate an exemplary process for updating key words of an application according to an embodiment.
- the chatbot identifies a user query is matched with an application.
- the chatbot recommends the application to the user.
- the recommendation may be implemented as the process at 516 of Figure 5 when there is a current active application.
- the recommendation may also be performed whenever the matching decision at 1110 is made, irrespective whether there is a current active application or not.
- the chatbot receives user’s feedback in response to the recommendation of the application.
- the chatbot may identify whether the user’s feedback is positive or negative, for example, by using a sentiment analysis module.
- the chatbot may identify whether the application is ended normally.
- the application is identified to be ended normally when the application is finished without interruption and/or the usage time of the application is above average usage time.
- the average usage time may be average usage time of the application among multiple users, and may also be average usage time of the application by the current user.
- the user query is added to the keyword list of the application as a new keyword of the application. Accordingly the keywords of the application may self-grow along with the usage of the application.
- keywords of an application are not limited to a word-level keyword, actually the keywords of an application may be phase-level keywords, sentence-level keywords, or pattern-level keywords, which may be collectively referred to as trigger data of the application.
- the user query may be added to the keyword list of the application at 1170 when determining a positive feedback to the recommendation is received at 1150, without considering whether the application is ended normally at 1160.
- Figure 12 illustrates an exemplary process for application recommendation through intelligent automated chatting according to an embodiment.
- a query is received in a conversation.
- matching rates between the query and applications are scored.
- the query is identified to be matched with a first application of the applications based on the scores.
- the first application is recommended in the conversation.
- the query may be added into trigger data of the first application in response to a positive answer to the recommendation. In some other implementations, the query may be added into the trigger data of the first application if the first application is finished without interruption and/or the usage time of the first application is above an average usage time.
- the recommending the first application may be implemented by outputting a question about whether to activate the first application. In some implementations, the recommending the first application may be implemented by activating the first application.
- the recommending the first application may be implemented by outputting a question about whether to switch from the second application to the first application.
- a switch from the second application to the first application may be performed in response to a positive answer to the question.
- the second application may be continued in response to a negative answer to the question.
- usage data of the first application and/or the second application associated with the user may be recorded in a user-application usage database.
- a second query is received while the first application is active.
- a second response to the second query may be obtained from web data and presented to the user.
- the second query and the second response may be appended to the first application, so as to update the first application’s query-response pairs.
- it identifies that available query-response pairs for the first application are insufficient.
- Candidate query-response pairs are appended to the first application, so as to update the first application’s query-response pairs. Queries of the candidate query-response pairs are from user data and responses of the pairs are from a web data.
- the query is determined to be matched with the first application based on a matching rate between the query and the first application and a threshold of the first application.
- the threshold of the first application may be updated based on the number of successful usages of the first application and the number of unsuccessful usages of the first application.
- the matching rates between the query and the applications are scored based on the query, trigger data of the applications, and at least one of user-application usage data of the applications, user profile, monetary bid information of the applications, types of the applications, latent semantic scores between the query and the trigger data.
- the user profile comprises user cluster information indicating which of a plurality of clusters the user belongs to, wherein each cluster includes a list of users and a list of keywords.
- the user data may be clustered into a plurality of user clusters. For a key word in a user cluster, one or more sentence-level descriptions from one or more users in the user data are appended to the key word of the user cluster, and the one or more users are included in the user cluster.
- the sentence-level descriptions of the key word of the web cluster are appended to the key word of the user cluster.
- query-response pairs are obtained based on the plurality of user clusters and the plurality of web clusters. Queries of the pairs are from the user clusters and responses of the pairs are from the web clusters. Applications associated with the service may be updated by using the query-response pairs.
- the user data may comprise at least one of user chatting log data and user-application usage data.
- Information indicating recommendation of application development may be generated based on at least one of the user data (i.e., the historical user chatting log data and user-application usage data) and web data. For example, one or more web clusters which contain a number of keywords appearing in the user clusters are identified. One or more web clusters which do not correspond to any of the user clusters are identified. Therefore the information collection from at least one of the user data and the web data facilitates the application recommendation in one aspect and provides information for application development in another aspect.
- Figure 14 illustrates an exemplary apparatus for application recommendation through intelligent automated chatting according to an embodiment.
- the recommending module 1420 may recommend the first application by outputting a question about whether to activate the first application. In some implementations, the recommending module 1420 may recommend the first application by activating the first application.
- the recommending module 1420 may identify a second application is active after identifying the query is matched with the first application.
- the recommending module 1420 may recommend the first application by outputting a question about whether to switch from the second application to the first application.
- the recommending module1420 may switch from the second application to the first application in response to a positive answer to the recommendation.
- the recommending module 1420 may continue the second application in response to a negative answer to the recommendation.
- the recommending module 1420 may perform any operations related to application recommendation according to the various embodiments as mentioned above in connection with Figures 1-13. It should be appreciated that the apparatus 1400 may also comprise any other modules configured for performing any operations of the methods for application recommendation according to the various embodiments as mentioned above in connection with Figures 1-13.
- the apparatus 1500 comprises a generating module 1510 and a storing module 1520.
- the generating module 1510 may generating a plurality of user clusters based on user data associated with a service.
- a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions.
- the storing module 1520 may store the plurality of user clusters in a database.
- the system 1600 may comprise one or more processors 1610.
- the system 1600 may further comprise a memory 1620 that is connected with the one or more processors 1610.
- the memory 1620 may store computer-executable instructions that, when executed, cause the one or more processors 1610 to receive a query in a conversation, score matching rates between the query and applications, identify that the query is matched with a first application of the applications based on the matching rates, and recommend the first application in the conversation.
- the memory 1620 may store computer-executable instructions that, when executed, cause the one or more processors 1610 to generate a plurality of user clusters based on user data associated with a service and store the plurality of user clusters in a database, wherein a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions.
- the embodiments of the present disclosure may be embodied in a non-transitory computer-readable medium.
- the non-transitory computer-readable medium may comprise instructions that, when executed, cause one or more processors to perform any operations of the processes according to the embodiments as mentioned above.
- modules in the apparatuses described above may be implemented in various approaches. These modules may be implemented as hardware, software, or a combination thereof. Moreover, any of these modules may be further functionally divided into sub-modules or combined together.
- processors have been described in connection with various apparatuses and methods. These processors may be implemented using electronic hardware, computer software, or any combination thereof. Whether such processors are implemented as hardware or software will depend upon the particular application and overall design constraints imposed on the system.
- a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with a microprocessor, microcontroller, digital signal processor (DSP) , a field-programmable gate array (FPGA) , a programmable logic device (PLD) , a state machine, gated logic, discrete hardware circuits, and other suitable processing components configured to perform the various functions described throughout the disclosure.
- DSP digital signal processor
- FPGA field-programmable gate array
- PLD programmable logic device
- a state machine gated logic, discrete hardware circuits, and other suitable processing components configured to perform the various functions described throughout the disclosure.
- the functionality of a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with
- a computer-readable medium may include, by way of example, memory such as a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk, a smart card, a flash memory device, random access memory (RAM) , read only memory (ROM) , programmable ROM (PROM) , erasable PROM (EPROM) , electrically erasable PROM (EEPROM) , a register, or a removable disk.
- RAM random access memory
- ROM read only memory
- PROM programmable ROM
- EPROM erasable PROM
- EEPROM electrically erasable PROM
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Mathematical Physics (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Artificial Intelligence (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A method is provided for application recommendation based on matching rates between a query and applications associated with a chatbot. And a method is also provided for information collection from web data and user data including user chatting log data and user-application usage data. The information collection facilitates the application recommendation in one aspect and provides information for application development in another aspect.
Description
Artificial intelligence (AI) conversational chat programs are becoming more and more popular. These conversational chat programs, also referred to as “chatbots” , allow users to carry on conversations with a virtual entity. In some instances, an application such as a game application, a topic-related application, or the like may be activated during the conversation between a user and a chatbot. As more and more applications are released in the circumstance of the intelligent automated chatting, there may be a large number of applications appended to a chatbot.
SUMMARY
This Summary is provided to introduce a selection of concepts that are further described below in the Detailed Description. It is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Embodiments of the present disclosure provide a method for application recommendation through intelligent automated chatting. A query is received in a conversation. Matching rates between the query and applications are scored. The query is identified as being matched with a first application of the applications based on the matching rates. The first application is recommended in the conversation.
Embodiments of the present disclosure provide a method for collecting information. A plurality of user clusters are generated based on user data associated with a service, wherein a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions. The plurality of user clusters are stored in a database.
It should be appreciated that the above one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the drawings set forth in detail certain illustrative features of the one or more aspects. These features are only indicative of the various ways in which the principles of various aspects may be employed, and this disclosure is intended to include all such aspects and their equivalents.
The disclosed aspects will hereinafter be described in connection with the appended drawings that are provided to illustrate and not to limit the disclosed aspects.
Figure 1 illustrates an exemplary environment where the described techniques can be implemented according to an embodiment.
Figure 2 illustrates an exemplary system applying a chatbot according to an embodiment.
Figure 3 illustrates an exemplary user interface (UI) according to an embodiment.
Figure 4 illustrates an exemplary conversation between a chatbot and a user according to an embodiment.
Figure 5 illustrates a flowchart of an exemplary process for application recommendation according to an embodiment.
Figure 6 illustrates an exemplary user-application usage database according to an embodiment.
Figure 7 illustrates an exemplary collection of information from user data according to an embodiment.
Figure 8 illustrates an exemplary collection of information from web data according to an embodiment.
Figure 9 illustrates an exemplary link of user data and web data according to an embodiment.
Figure 10 illustrates a flowchart of an exemplary process for updating an application according to an embodiment.
Figure 11 illustrates a flowchart of an exemplary process for updating key words of an application according to an embodiment.
Figure 12 illustrates a flowchart of an exemplary process for application recommendation according to an embodiment.
Figure 13 illustrates a flowchart of an exemplary process for information collection according to an embodiment.
Figure 14 illustrates an exemplary apparatus for application recommendation according to an embodiment.
Figure 15 illustrates an exemplary apparatus for information collection according to an embodiment.
Figure 16 illustrates an exemplary computing system according to an embodiment.
The present disclosure will now be discussed with reference to several exemplary implementations. It is to be understood that these implementations are discussed only for enabling those skilled in the art to better understand and thus implement the embodiments of the present disclosure, rather than suggesting any limitations on the scope of the present disclosure.
Figure 1 illustrates an exemplary environment where the described techniques can be implemented according to an embodiment.
In the exemplary environment 100, a network 110 is applied for interconnecting among a terminal device 120, an application server 130 and a chatbot server 140.
The network 110 may be any type of networks capable of interconnecting network entities. The network 110 may be a single network or a combination of various networks. In terms of coverage range, the network 110 may be a Local Area Network (LAN) , a Wide Area Network (WAN) , etc. In terms of carrying medium, the network 110 may be a wireline network, a wireless network, etc. In terms of data switching techniques, the network 110 may be a circuit switching network, a packet switching network, etc.
The terminal device 120 may be any type of computing device capable of connecting to the network 110, assessing servers or websites over the network 110, processing data or signals, etc. For example, the terminal device 120 may be a desktop computer, a laptop, a tablet, a smart phone, etc. Although only one terminal device 120 is shown in Figure 1, it should be appreciated that a different number of terminal devices may connect to the network 110.
The terminal device 120 may include a chatbot client 122 which may provide a chat service for a user. In some implementations, the chatbot client 122 at the terminal device 120 may be an independent client application corresponding to the chatbot service provided by the chatbot server 140. In some other implementations, the chatbot client 122 at the terminal device 120 may be implemented in a third party application such as a third party instant messaging (IM) application. Examples of the
third party IM message comprise MSNTM, ICQTM, SKYPETM, QQTM, WeChatTM and so on.
The chatbot client 122 communicates with the chatbot server 140. For example, the chatbot client 122 may transmit messages inputted by a user to the chatbot server 140, and receive responses associated with the messages from the chatbot server 140. The chatbot client 122 and the chatbot server 140 may be collectively referred to as a chatbot. As the conversation between the user and the chatbot is performed typically in a query-response manner, the messages inputted by the user are commonly referred to as queries, and the answers outputted by the chatbot are commonly referred to as responses. The query-response pairs may be recorded as user log data. It should be appreciated that, in some implementations, instead of interacting with the chatbot server 140, the chatbot client 122 may also locally generate responses to queries inputted by the player.
An application 124 may be activated during a conversation between the chatbot and a user. For example, the application 124 may be associated with a trigger word. The user may input the trigger word when the user wants to start the application 124 during the conversation. After receiving the trigger word, the chatbot may activate the application during the conversation.
In some implementations, the application 124 may be implemented at an application server 130, which may be a third part application server. For example, while the application 124 is active during the conversation, a query from a user is sent to the application server 130 via the chatbot, and a response from the application server 130 is sent to the user via the chatbot. In some other implementations, the application 124 may be implemented at the chatbot server 140, and in this case an application module 142 may be implemented at the chatbot server 140. Applications provided by the chatbot service provider and/or applications provided by third party application providers may be implemented at the application module 142. The chatbot may call an application at the application module 142 in order to activate the application during the conversation.
It should be appreciated that the application 124 associated with the chatbot service may also be referred to as a feature, a function, an applet, or the like, which is used to satisfy a relatively independent requirement of a user during a machine conversation with the user.
It should be appreciated that all the network entities shown in Figure 1 are exemplary, and depending on specific application requirements, any other network entities may be involved in the environment 100.
Figure 2 illustrates an exemplary chatbot system according to an embodiment.
The system 200 may comprise a user interface (UI) 210. The UI 210 may be implemented at the chatbot client 122, and provide a chat window for interacting between a user and the chatbot.
Figure 3 illustrates an example of the UI 210. A chat window 320 is displayed on a computing device 300. The chat window 320 comprises a presentation area 322, a control area 324 and an input area 326. The presentation area 322 presents queries and responses in a conversation between a user and a chatbot, which is represented by the icon 310. The control area 324 includes a plurality of virtual buttons for the user to perform message input settings. For example, the user may make a voice input, attach image file, select emoji symbols, and make a short-cut of current screen, and so on through the control area 324. The input area 326 is used for the user to input messages. For example, the user may type text through the input area 326. The control area 324 and the input area 326 may be collectively referred to as input unit. The user may also make a voice call or video conversation with the AI chatbot though the input unit.
For example, in the UI as shown in Figure 3, the user inputs a message “Rinna, how old are you” as a query, and a message “second year of primary high school” may be output by the chatbot as a response. Similarly, the user inputs a message “do you have breakfast” as a query, and a message “Yes, How about you” may be outputted by the chatbot as a response. Here, Rinna is the name of the AI chatbot, which may also be referred to as AI chat system.
The queries from the user are transferred to the query queue 232, which temporarily stores users’ queries. The users’ queries may be in various forms including text, sound, image, video, and so on.
The core processing module 220 may take the messages or queries in the query queue 232 as its input. In some implements, queries in the queue 232 may be served or responded in first-in-first-out manner.
The core processing module 220 may invoke processing units in an
application program interface (API) module 250 for processing various forms of messages. The API module 250 may comprise a text processing unit 252, a speech processing unit 254, an image processing unit 256, etc.
For a text message, the text processing unit 252 may perform text understanding on the text message, and the core processing module 220 may further determine a text response.
For a speech message, the speech processing unit 254 may perform a speech-to-text conversion on the speech message to obtain text, the text processing unit 252 may perform text understanding on the obtained text, and the core processing module 220 may further determine a text response. If it is determined to provide a response in speech, the speech processing unit 254 may perform a text-to-speech conversion on the text response to generate a corresponding speech response.
For an image message, the image processing unit 256 may perform image recognition on the image message to generate corresponding text, and the core processing module 220 may further determine a text response. For example, when receiving a dog image from the user, the AI chat system may determine the type and color of the dog and further gives a number of comments, such as “So cute German shepherd! You must love it very much” . In some cases, the image processing unit 256 may also be used for obtaining an image response based on the text response.
Moreover, although not shown in Figure 2, the API module 250 may comprise any other processing units. For example, the API module 250 may comprise a video processing unit for cooperating with the core processing module 220 to process a video message and determine a response. For another example, the API module 250 may comprise a location-based processing unit for supporting location-based services.
An application recommendation module 280 in the system 200 may determine whether or not to recommend an application to a user in response to a query from the user. Taking the query “Rinna, how old are you” as an example, the application recommendation module 280 may determine that the user does not have an intention to activate an application, and only wants to have a small talk with the chatbot.
Then, the core processing module 220 may determine a response through an index database 260. The index database 260 may comprise a plurality of index
items that can be retrieved by the core processing module 220 as responses. The index items in the index database 260 may be classified into a question-answer pair index set 262 and a pure chat index set 264. Index items in the question-answer pair index set 262 are in a form of question-answer pairs, and the question-answer pair index set 262 may comprise question-answer pairs associated with an application such as application 124. Index items in the pure chat index set 264 are prepared for free chatting between the user and the chatbot, and may or may not be in a form of question-answer pairs. It should be appreciated that the term question-answer pair may also be referred to as query-response pair or any other suitable terms. Taking the query “Rinna, how old are you” as an example, the core processing module 220 may determine a response “second year of primary high school” through the pure chat index set.
The responses determined by the core processing module 220 may be provided to a response queue or response cache 234. The responses in the response queue or response cache 234 may be further transferred to the user interface 210 such that the responses can be presented to the user in an proper order.
A user database 270 in the system 200 is used to record user data occurred in conversations between users and the chatbot. The user database 270 may comprise a user log database 272 and a user-application usage database 274.
The user log database 272 may be used to record messages occurred in conversations between users and the chatbot. For example, the user log database 272 may be used to record user log data of pure chat. For another example, the user log database 272 may be used to record not only the user log data of pure chat but also user log data occurred while an application is active. The user log data may be in a query-response pair form, or may be in any other suitable form.
The user-application usage database 274 may be used to store every user’s usage information of applications associated with the chatbot or the AI chat service. The user-application usage data in the database 274 may provide information for the application recommendation module 280 to determine how to respond to a user’s query and whether or not to recommend an application in response to a user’s query.
Figure 4 illustrates an exemplary chatting flow between a user and a chatbot according to an embodiment.
In the chatting flow or conversation, a query “Shiritori” is received by the
chatbot from a user. The chatbot, specifically the application recommendation module 280, identifies that the query is matched with an application, and additionally identifies that there is no active application in the conversation currently. Then the Shiritori application is activated, and the chatbot outputs a response to ask the user to choose a normal mode or hard mode for the Shiritori application. It should be appreciated that reasonable modifications may be applicable to this process. For example, instead of directly activate the Shiritori application, the chatbot may output a message asking whether the user wants to activate the Shiritori application even when there is no current active application in the conversation. Either the direct activating of the application or the outputting of the asking message is an example of recommending the application performed by the chatbot.
When the user inputs a query “Normal” , the application recommendation module 280 sends the query to the current active Shiritori application and the conversation proceeds. The user and the chatbot/Shiritori application input “like” , “keep” , “episode” , “decoder” , “error” , “orange” in turn during the shiritori game.
A query “I meet a lot with the girl living nearby” is received by the chatbot from the user. The chatbot, specifically the application recommendation module 280, identifies that the query is matched with an application, and identifies that there is an active application in the conversation currently. The chatbot outputs a response for recommending the matched application, that is, “Oh, do you want to do “love diagnosis” ? ” .
When a positive answer is received, the chatbot switches the current active application “Shiritori” to the recommended application “love diagnosis” . A sentiment analysis module may be used to make a positive, negative or neutral judgement of user’s query based on user’s natural language style inputs. In some implementations, the chatbot ends the current active application, that is, “We played 3 rounds of Shiritori. See you next time! ” , and activates the matched application, as shown in the Figure 4. In some other implementations, the chatbot may suspend the current active application while the newly matched application is active, and may resume the suspended application when the newly matched application is ended.
Figure 5 illustrates an exemplary process for recommending an application according to an embodiment.
The process 500 starts from 502, at which a chatbot receives a query from
a user. The query may also be received from an entity such as an intelligent system or an intelligent bot. From example, the query may be “Shiritori” or any message inputted from the user such as “normal” , “like” , “I meet a lot with the girl living nearby” , or the like, as shown in Figure 4.
At 504, the chatbot, specifically the application recommendation module 280, scores the matching rates between the query and applications associated with the chatbot. The matching rates between the query and applications may also be referred to as similarities between the query and applications. The two terms matching rate and similarity are interchangeably used herein.
In some implementations, the application recommendation module 280 is implemented as a machine learning module, which is trained by using user queries, trigger data of applications, user usage data of the applications, and optionally other suitable data.
For a set of applications 524 associated with the chatbot, each application has a set of keywords which are examples of trigger data. In some implementations, as shown by the arrows from blocks 524 and 522, the application recommendation module 280 computes the similarity scores based on the query, the trigger data of the applications and the user-application usage data stored in the user-application usage database 274.
At 506, the application recommendation module 280 identifies whether the query is matched with one of the applications based on the scores.
In some implementations, a threshold may be set for an application, and a matching decision may be made when the similarity score of the application is above the threshold. On the other hand, a not-matching decision may be made when the similarity score of the application is under the threshold.
In some implementations, if more than one matching application is identified, the application recommendation module 280 may choose the application having the highest score to recommend.
In some implementations, the threshold of an application may be updated dynamically. Initially, the threshold may be set to be a relatively small value to obtain a better trigger rate of an application. During the usage of the application recommendation, the threshold may be improved to balance the precision and the trigger rate of application recommendation. An exemplary process of updating a
threshold of an application is shown as the following:
1. Initialize the threshold of the application;
2. Set success usage number of the application S to be 0, and failed usage number of the application F to be 0;
3. If the similarity score of the application is larger than the threshold:
a. Recommend the application;
b. If the application is finished without interruption and the usage time of the application is above the average usage time of the application, set S = S + 1;
c. Otherwise, set F = F + 1
4. Update the threshold periodically (such as per week)
a. precision = S/ (S+F) , trigger rate = S/number of queries during the period
b. if precision < expected precision value:
i. threshold = threshold + alpha (e.g., alpha is set to be a float in the range of (0, 0.1))
c. otherwise if trigger rate < expected trigger rate value:
i. threshold = threshold –beta (e.g., beta is set to be a float in the range of (0, 0.1)) .
The expected precision value and the expected trigger rate value may be a predefined threshold. It should be appreciated the updating algorithm is for sake of illustration without any intention to limit the scope of the disclosure.
When a not-matching decision is made at 506, the process goes to 508, at which it is determined whether a current application is active during the conversation between the chatbot and the user.
In some implementations, in order to detect whether or not an application is already active, the user-feature usage database is used to store every user’s usage information of the set of applications. By checking the user-feature usage database as shown in Figure 6, it is identified that there is no active application currently if the active data 620 is empty, and it is identified that there is an active application currently if the active data 620 is not empty.
When it is identified that there is no active application currently at 508, the
process goes to 510 at which a pure chat mode is started.
When it is identified that there is an active application currently at 508, the process goes to 512 and the current active application continues.
When a matching decision is made at 506, the process goes to 514, at which it is identified whether a current application is active during the conversation between the chatbot and the user.
When it is identified that there is no active application currently at 514, the process goes to 520 at which the matched application is activated to become the current active application.
When it is identified that there is an active application currently at 514, the process goes to 516 at which a recommendation for the matched application is outputted. The recommendation may be presented as a question to ask whether the user wants to switch to the matched application.
If a negative answer to the recommendation is received from the user at 518, the process goes to 512 and the current active application continues.
If a positive answer to the recommendation is received from the user at 518, the process goes to 520 at which the matched application is activated to become the current active application.
At 522, the user’s usage data of the current active application is recorded in the active data 620 of the user-application data base. When the current active application is ended the active data 620 may be stored as the history data 610.
Figure 6 illustrates an exemplary user-application usage database 600. There are two types of data in the database, one is log-style data called history data 610 that stores the history usage of all applications of all users, the other is active-style data called active data 620 which records the current active application’s statistical information for a specific user, which is identified by a user ID. When the current active application is ended, either by the user or by a timeout exception, the active data 620 may be stored in the history data unit 610.
The schema of the history data and the active data are identical as shown in 630 and 640, the difference is that some information in the active data is in updating since the active application is still working. For example, the timestamp end information in the active data unit is not available until the current active application is ended.
An exemplary schema of the user-application usage data is illustrated in 630. The exemplary schema includes user ID, application ID, timestamp start, timestamp end, user query list, application statistics, application session data, is third-party application, application owner. It should be appreciated that more or less information elements may be applicable, and the disclosure is not limited to the specific schema 630. The timestamp start and timestamp end indicate the start time and end time of the application (identified by application ID) used by the user (identified by user ID) . The user query list includes the user’s inputted queries for this usage of the application. For example, for a cooking application, the user queries may be “how to cook spring roll” , “I want to make sushi” and so on inputted in this usage of the cooking application. The application statistics include statistical information about this usage of the application, such as the number of rounds that the user played with “Shirotori” application. Examples of the application session data include how many times this application was ended in a normal way, how many times this application was ended in an interrupted way (for example, the application is interrupted by another application) . The application session data may be computed with respect to a single user and a single application in some implementations, and may also be computed with respect to a single application and all users in some other implementations. The application session data may be updated periodically. The element of is third part application indicates whether the application identified by the application ID is provided by a third party application provider. The application owner indicates the application provider’s information, such as the third-party developer’s name or ID.
Based on the user-application usage data in this database, machine learning features may be obtained for training a similarity computing model to compute similarity scores between queries and applications. The similarity computing model, as a machine learning model, is implemented in the application recommendation module 280 or is the application recommendation module 280. The exemplary machine learning features obtained based on the user-application usage data are as the following:
1. The accumulated usage frequency of one application with respect to all applications for current user or all users.
2. The accumulated number of interruptions of one application for current
user or all users.
3. The rank of the usage of one application among all applications for current user or all users.
4. The rank of the interruptions of one application among all applications for current user or all users.
5. Averaged usage time (e.g., in seconds) of one application for current user or all users.
6. Maximum usage time (e.g., in seconds) of one application for current user or all users.
7. Accumulated usage time (e.g., in seconds) of one application for current user or all users.
8. Average time point that one application is triggered by current user. For example, the time point is mainly in the morning for a weather report application, is near 12 am or 6 pm for a food recommendation application.
9. Averaged query length of user’s queries for one application. For example, the longer the query is, the more the user is engaged in the current application.
10. Sentiment tendencies of user’s queries for one application. For example, the more positive the query is, the more the user is engaged in the current application.
11. Is image uploaded during the usage of one application. In this case, it is likely to link an application with the image.
12. The number of users that current application is used by.
13. Is the application a third-party application or not. For example, the weight of a third-party application may be enhanced if the third-party application developer pays money for that. In some implementations, the third-party application developer may bid for special trigger words to help triggering their applications.
By using the features that may be abstracted from the user-application usage database, the similarity computing model may be implemented with machine learning algorithm. An example of the machine learning algorithm may be a gradient boosting decision tree algorithm used to compute the similarity scores.
In some implementations, when current user’s application usage data is quite limited or even empty, the statistical information of all the existing users may be used as features for computing the similarity scores for application recommendation. In this case, the most popular applications which are used by most users or have relatively long usage time are likely to be recommended to the current user.
Figure 7 illustrates an exemplary collection of information from user data according to an embodiment. A user clustering model may be used to automatically cluster users into a number of groups and further link each group with a list of keywords which further is connected with events. The word “event” is to express a group of sentences or sentence-level descriptions that share a common topic key word.
A Latent Dirichlet allocation (LDA) clustering algorithm may be used at 704 to automatically cluster user data 702 into a plurality of clusters such as cluster 1 706, cluster 2 708 and so on. The user data 702 may be user’s log data stored in the user log database 272 and/or user-application usage data stored in the user-application usage database 274. In some implementations, all users’ log data (e.g., in the form of query-response pairs) and user’s queries stored in the user-application stage database are collected as the user data 702.
In order to make the user data time-sensitive, a discounted weight may be assigned to older user data by a value of λ/n, where λ takes a value of (0, 1] and n is the time distance (e.g., number of months) of the user data till the time of clustering. For example, λ may be 0.8 and then for last month’s logs of user data, the weight is 0.8 and for logs of user data two months ago, the weight is 0.8/2 = 0.4. Through this way, ideas collected from the user clustering process may be “fresh” .
Each cluster include a list of keywords, such as My Neighbor Totoro, One Piece, ..., shown at 706 and Spring roll, Curry, …, shown at 708. It should be appreciated that although two clusters are shown in the Figure 7, there may be a certain number of clusters, for example the number of clusters may be in hundreds level, thousands level, tens of thousands level, or even millions level. A label may be explicitly defined for each cluster in some implementations. The clusters may just be annotated by integer numbers in some other implementations. Therefore the clustering algorithm may be carried on by only predefining the number of clusters without other configurations.
Each keyword in each cluster is appended with a list of one or more events.
An exemplary keyword “My Neighbor Totoro” in cluster 1 is shown at 710, the keyword “My Neighbor Totoro” is appended with two exemplary events “Rinna, I want to see the movie of “My Neighbor Totoro” ” and “Rinna, can you find the movie “My Neighbor Totoro” for me” shown at 712 and 714. It should be appreciated that there may be more or less events appended to a keyword. In some implementations, user queries from the user data 702, which match a keyword of a cluster, may be appended to the keyword of the cluster as the events, and users that sent the queries may be linked to the cluster. Taking the keyword “My Neighbor Totoro” in cluster 1 as an example, a query “Rinna, I want to see the movie of My Neighbor Totoro” contains the keyword “My Neighbor Totoro” , then the query is appended to the keyword as the event and accordingly the query as well as users that sent the query is linked with the cluster 1. All the users that send queries containing the keyword of “My Neighbor Totoro” may be included in the cluster 1. Similarly, all the users that send queries containing the keyword of “One Piece” may be included in the cluster 1. Finally all the users that send queries containing any keyword of cluster 1 may be included in the cluster 1.
The user clustering model is designed to better understand the frequently used words and frequently attended events by large-scale users. And the information collected by the user clustering is helpful for application developers to develop new applications that fit for the habits of each group of users, so as to improve the engagement rate of the new developed applications.
Figure 8 illustrates an exemplary collection of information from web data according to an embodiment.
A LDA clustering model may be used at 804 to automatically cluster web data 802 into a plurality of clusters such as cluster 1 806, cluster 2 808 and so on. The web data 802 may be from various web resources, examples of which may include social networks, knowledge-related website and so on.
Each cluster include a list of keywords, such as Star War, My Neighbor Totoro, ..., shown at 806 and Spring roll, sushi, …, shown at 808. It should be appreciated that although two clusters are shown in the Figure, there may be a certain number of clusters, as discussed above.
Each keyword in each cluster is appended with a list of one or more events. An exemplary keyword “My Neighbor Totoro” in cluster 1 is shown at 810, the
keyword “My Neighbor Totoro” is appended with two exemplary events “ “My Neighbor Totoro” is a long animation movie produced by Studio Ghibli. ” and “ “My Neighbor Totoro” is directed by Hayao Miyazaki. ” shown at 812 and 814. It should be appreciated that there may be more or less events appended to a keyword. In some implementations, sentence level descriptions (such as sentences 812, 814 or sentences 818, 820) from the web data 802, which match a keyword of a cluster, may be appended to the keyword of the cluster as the events. As illustrated, the sentences 812 and 814 are appended to the keyword 810 in the cluster 1, and the sentences 818 and 820 are appended to the keyword 816 in the cluster 2.
Figure 9 illustrates an exemplary link of user clusters and web cluster according to an embodiment. The same label numbers shown in Figures 7-9 denote same elements.
After generating a list of user clusters from user data as shown in Figure 7 and a list of web clusters from web data as show in Figure 8, similar clusters in these two lists of clusters may be unified. For example, as shown in Figure 9, if a keyword (e.g., “My Neighbor Totoro” 710) is shared by a cluster in the user cluster list (e.g., cluster 1 in the user cluster list) and a cluster in the web cluster list (e.g., cluster 1 in the web cluster list) , then the events (e.g., events 812, 814) appended to the keyword in the web cluster may be linked to the events appended to the keyword in the user cluster. This linking is meaningful, since user’s intention of requirement is mostly included in the events from the user and the events from the web may supply materials for preparing user’s special intentions, which is identified by the keywords. Accordingly, the disclosure builds new query-answer pairs by making use of the link of the user data and web data, where a query is from users and an answer is from the web.
In some implements, a query-answer similarity score computing model is used to find high confidence answers from web data for queries from user data. An exemplary algorithm of the model is as follows.
For each user cluster Cu in user cluster list:
Find web cluster Cw in web cluster list so that Cw shares the maximum number of words with Cu;
For each query Qu that is connected with Cu:
simmax (Qu, Sw) = 0;
For each sentence Sw that is connected with Cw:
Compute the similarity score sim (Qu, Sw) and record the Sw if sim (Qu, Sw) > simmax (Qu, Sw) ;
simmax (Qu, Sw) = sim (Qu, Sw) ;
If simmax (Qu, Sw) >= threshold
Take (Qu, Sw) as a <query, answer> candidate pair.
The sim (Qu, Sw) denotes the similarity score between Qu and Sw, simmax (Qu, Sw) denotes the maximum similarity score. A machine learning module, for example, a gradient boosting decision tree, may be trained for computing the similarity score sim (Qu, Sw) , which indicates how good the answer sentence responds to a query. The query Qu is an event in the user cluster Cu, and the sentence Sw is an event in the web cluster Cw. The threshold is a predefined value, an example of the threshold may be 0.5, where the sim (Qu, Sw) ranges from 0 to 1.
It should be appreciated that the above algorithm is illustrative without limitation to the scope of the disclosure and suitable modification may be made to the algorithm. For example, one best sentence Sw from the web cluster may be found for one query from the user cluster by using the above algorithm, however as a variation of the algorithm, the maximum similarity score simmax (Qu, Sw) is not considered, and all sentences from the web cluster having scores larger than the threshold may be taken as candidate answers for the query, therefore it’s possible that multiple sentences may be found from the web cluster as candidate answers for one query from the user cluster. It should be appreciated that the finding of candidate query-answer pairs may be performed periodically based on user data and web data.
As discussed above, the number of clusters may be in hundreds level, thousands level, tens of thousands level, or even millions level, therefore rich candidate query-answer candidate pairs may be found through the above process by using the link of the user data and web data. In some implementations, the candidate query-answer pairs may be used to update applications.
Figure 10 illustrates an exemplary process for updating an application according to an embodiment.
At 1010, the chatbot identifies a user query is matched with an application, similarly as the YES decision made at 506 of Figure 5.
At 1020, the matched application is activated, similarly as the process at 520 of Figure 5.
At 1030, the chatbot identifies whether there are sufficient available responses for the application. In some implementations, a decision of insufficient available responses may be made if the number of the available responses for the application is smaller than a threshold. For example, for a movie topic related application, it may identify that the available responses are insufficient when the number of the available responses is smaller than the threshold, and it may further determine that the application may be updated by complementing movie data from web.
At 1040, the query may be linked to a web cluster. The link of the query and the web cluster may be implemented based on the keywords or events of the clusters. Taking the query “Rinna, can you find the movie “My Neighbor Totoro” for me” as an example, this query may be used to trigger a movie-related application at 1020, and may be linked to a web cluster related to movie topics.
At 1050, data may be obtained from the web cluster to update the application such as the movie-related application. In some implementations, the candidate query-answer pairs discussed above corresponding to the sentences of the web cluster may be obtained. As discussed above, since user’s intention of requirement is mostly included in the events from the user and the events from the web may supply materials for preparing user’s special intentions, the candidate query-answer pairs obtained for the application may be used to prepare user’s various intentions with web materials. In some other implementations, the sentences in the web cluster which are not included in the available responses of the application may be obtained. Taking the movie-related application as an example, data about new movies from the web may be obtained to update the application.
At 1060, the data obtained from the web cluster are appended to the application.
Although the updating of an application is performed as needed after the application is triggered as illustrated in Figure 10, it may be possible that the updating of an application may be performed periodically based on the candidate query-answer
pairs, which are also updated periodically.
It should be appreciated that reasonable modification may be made to the process of updating an application. For example, after the matched application is activated at 1020, if a second user query is received but a response cannot be obtained from the application’s data, it may determine that the available responses is insufficient at 1030, then a response for the second user query may be obtained from web data or web cluster, and meanwhile the application may be updated by collecting data from the web data, as discussed at 1040 to 1060.
In addition to the update of existing application by using the user clusters and the web clusters which are obtained from user data and web data, the user clusters and web clusters may also be used to drive idea collection about applications. Specifically, since web data is updating in a fast speed and the chatbot is not guaranteed to include the novel events or hot keywords such as new named entities, new games, new movies and so on, the web cluster list may be used to collect novel ideas for constructing new applications for the chatbot. For example, for one web cluster, there are quite a few keywords appearing in users’ log data and/or there is not a corresponding cluster from user cluster list, then the event sentences from the web may be used as materials or data resources for preparing new applications.
In addition, the user clustering may also be used to improve the application recommendation performed by the application recommendation module 280 since the user clustering is helpful for better understanding the frequently used words and frequently attended events by large-scale users. In addition to the above mentioned features obtained from the user-application usage database, one or more of the following features may be used in the machine learning module implemented at the application recommendation module 280 for computing similarity scores between a query and trigger data of applications:
1. The clusters that current user belongs to.
2. The type of an application. Examples of the application type may comprise a time-sensitive application, game-style application, functional application such as weather report application, image-based application, and other suitable types of application.
3. The edit distance in word level between a query and the trigger word list.
4. The edit distance in character level between a query and a trigger word;
5. The word2vec similarity score between a query and a trigger word.
6. BM25 score between a query and a trigger word.
Figure 11 illustrate an exemplary process for updating key words of an application according to an embodiment.
At 1110, the chatbot identifies a user query is matched with an application.
At 1120, the chatbot recommends the application to the user. The recommendation may be implemented as the process at 516 of Figure 5 when there is a current active application. The recommendation may also be performed whenever the matching decision at 1110 is made, irrespective whether there is a current active application or not.
At 1130, the chatbot receives user’s feedback in response to the recommendation of the application.
At 1140, the chatbot may identify whether the user’s feedback is positive or negative, for example, by using a sentiment analysis module.
At 1150, the matched application is activated in response to a positive feedback.
At 1160, the chatbot may identify whether the application is ended normally. In some implementations, the application is identified to be ended normally when the application is finished without interruption and/or the usage time of the application is above average usage time. The average usage time may be average usage time of the application among multiple users, and may also be average usage time of the application by the current user.
At 1170, the user query is added to the keyword list of the application as a new keyword of the application. Accordingly the keywords of the application may self-grow along with the usage of the application.
It should be appreciated that although the term keyword is used in the description, the keywords of an application are not limited to a word-level keyword, actually the keywords of an application may be phase-level keywords, sentence-level keywords, or pattern-level keywords, which may be collectively referred to as trigger data of the application.
It should be appreciated that reasonable modification may be made to the process of updating key words. For example, the user query may be added to the
keyword list of the application at 1170 when determining a positive feedback to the recommendation is received at 1150, without considering whether the application is ended normally at 1160.
Figure 12 illustrates an exemplary process for application recommendation through intelligent automated chatting according to an embodiment.
At 1210, a query is received in a conversation. At 1220, matching rates between the query and applications are scored. At 1230, the query is identified to be matched with a first application of the applications based on the scores. At 1240, the first application is recommended in the conversation.
In some implementations, the query may be added into trigger data of the first application in response to a positive answer to the recommendation. In some other implementations, the query may be added into the trigger data of the first application if the first application is finished without interruption and/or the usage time of the first application is above an average usage time.
In some implementations, the recommending the first application may be implemented by outputting a question about whether to activate the first application. In some implementations, the recommending the first application may be implemented by activating the first application.
In some implementations, it may identify that a second application is active after identifying the query is matched with the first application. The recommending the first application may be implemented by outputting a question about whether to switch from the second application to the first application. A switch from the second application to the first application may be performed in response to a positive answer to the question. The second application may be continued in response to a negative answer to the question.
In some implementations, usage data of the first application and/or the second application associated with the user may be recorded in a user-application usage database.
In some implementations, a second query is received while the first application is active. A second response to the second query may be obtained from web data and presented to the user. The second query and the second response may be appended to the first application, so as to update the first application’s query-response pairs.
In some implementations, it identifies that available query-response pairs for the first application are insufficient. Candidate query-response pairs are appended to the first application, so as to update the first application’s query-response pairs. Queries of the candidate query-response pairs are from user data and responses of the pairs are from a web data.
In some implementations, the query is determined to be matched with the first application based on a matching rate between the query and the first application and a threshold of the first application. The threshold of the first application may be updated based on the number of successful usages of the first application and the number of unsuccessful usages of the first application.
In some implementations, the matching rates between the query and the applications are scored based on the query, trigger data of the applications, and at least one of user-application usage data of the applications, user profile, monetary bid information of the applications, types of the applications, latent semantic scores between the query and the trigger data. The user profile comprises user cluster information indicating which of a plurality of clusters the user belongs to, wherein each cluster includes a list of users and a list of keywords.
Figure 13 illustrates an exemplary process for information collection according to an embodiment.
At 1310, a plurality of user clusters are generated based on user data associated with a service, wherein a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions. At 1320, the plurality of user clusters are stored in a database.
An example of the service may be a chatbot service or AI chatting service as discussed above. It may be appreciated that the information collection process may be applicable to chatting service such IM service, through which users chat with each other rather than chat with a chatbot. The user clusters obtained from the user data of such chatting service may also be used to reflect users’ intention of requirement.
In some implementations, the user data may be clustered into a plurality of user clusters. For a key word in a user cluster, one or more sentence-level descriptions from one or more users in the user data are appended to the key word of the user cluster, and the one or more users are included in the user cluster.
In some implementations, a plurality of web clusters are generated based
on web data. A web cluster includes a list of key words, and a key word in the web cluster is appended with one or more sentence-level descriptions.
In some implementations, the web data may be clustered into a plurality of web clusters. For a key word in a web cluster, one or more sentence-level descriptions from one or more users in the web data are appended to the key word of the web cluster.
In some implementations, for a key word which is included in both a user cluster and a web cluster, the sentence-level descriptions of the key word of the web cluster are appended to the key word of the user cluster.
In some implementations, query-response pairs are obtained based on the plurality of user clusters and the plurality of web clusters. Queries of the pairs are from the user clusters and responses of the pairs are from the web clusters. Applications associated with the service may be updated by using the query-response pairs.
In some implementations, the user data may comprise at least one of user chatting log data and user-application usage data. Information indicating recommendation of application development may be generated based on at least one of the user data (i.e., the historical user chatting log data and user-application usage data) and web data. For example, one or more web clusters which contain a number of keywords appearing in the user clusters are identified. One or more web clusters which do not correspond to any of the user clusters are identified. Therefore the information collection from at least one of the user data and the web data facilitates the application recommendation in one aspect and provides information for application development in another aspect.
Figure 14 illustrates an exemplary apparatus for application recommendation through intelligent automated chatting according to an embodiment.
The apparatus 1400 comprises an obtaining module 1410 and a recommending module 1420. The obtaining module 1410 may obtain a query in a conversation. The recommending module 1420 may score matching rates between the query and applications, identify that the query is matched with a first application of the applications based on the matching rates, and recommend the first application in the conversation.
In some implementations, the recommending module 1420 may
recommend the first application by outputting a question about whether to activate the first application. In some implementations, the recommending module 1420 may recommend the first application by activating the first application.
In some implementations, the recommending module 1420 may identify a second application is active after identifying the query is matched with the first application. The recommending module 1420 may recommend the first application by outputting a question about whether to switch from the second application to the first application. The recommending module1420 may switch from the second application to the first application in response to a positive answer to the recommendation. The recommending module 1420 may continue the second application in response to a negative answer to the recommendation.
It should be appreciated that the recommending module 1420 may perform any operations related to application recommendation according to the various embodiments as mentioned above in connection with Figures 1-13. It should be appreciated that the apparatus 1400 may also comprise any other modules configured for performing any operations of the methods for application recommendation according to the various embodiments as mentioned above in connection with Figures 1-13.
Figure 15 illustrates an exemplary apparatus for information collection according to an embodiment.
The apparatus 1500 comprises a generating module 1510 and a storing module 1520. The generating module 1510 may generating a plurality of user clusters based on user data associated with a service. A user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions. The storing module 1520 may store the plurality of user clusters in a database.
It should be appreciated that the generating module 1510 may perform any operations related to information collection according to the various embodiments as mentioned above in connection with Figures 1-13. It should be appreciated that the apparatus 1500 may also comprise any other modules configured for performing any operations of the methods for information collection according to the various embodiments as mentioned above in connection with Figures 1-13.
Figure 16 illustrates an exemplary computing system according to an
embodiment.
The system 1600 may comprise one or more processors 1610. The system 1600 may further comprise a memory 1620 that is connected with the one or more processors 1610.
The memory 1620 may store computer-executable instructions that, when executed, cause the one or more processors 1610 to receive a query in a conversation, score matching rates between the query and applications, identify that the query is matched with a first application of the applications based on the matching rates, and recommend the first application in the conversation.
The memory 1620 may store computer-executable instructions that, when executed, cause the one or more processors 1610 to generate a plurality of user clusters based on user data associated with a service and store the plurality of user clusters in a database, wherein a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions.
It should be appreciated that the computer-executable instructions, when executed, cause the one or more processors 1610 to perform any operations of the processes according to the embodiments as mentioned above in connection with Figures 1-13.
The embodiments of the present disclosure may be embodied in a non-transitory computer-readable medium. The non-transitory computer-readable medium may comprise instructions that, when executed, cause one or more processors to perform any operations of the processes according to the embodiments as mentioned above.
It should be appreciated that all the operations in the processes described above are merely exemplary, and the present disclosure is not limited to any operations in the processes or sequence orders of these operations, and should cover all other equivalents under the same or similar concepts.
It should also be appreciated that all the modules in the apparatuses described above may be implemented in various approaches. These modules may be implemented as hardware, software, or a combination thereof. Moreover, any of these modules may be further functionally divided into sub-modules or combined together.
Processors have been described in connection with various apparatuses
and methods. These processors may be implemented using electronic hardware, computer software, or any combination thereof. Whether such processors are implemented as hardware or software will depend upon the particular application and overall design constraints imposed on the system. By way of example, a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with a microprocessor, microcontroller, digital signal processor (DSP) , a field-programmable gate array (FPGA) , a programmable logic device (PLD) , a state machine, gated logic, discrete hardware circuits, and other suitable processing components configured to perform the various functions described throughout the disclosure. The functionality of a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with software being executed by a microprocessor, microcontroller, DSP, or other suitable platform.
Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, threads of execution, procedures, functions, etc. The software may reside on a computer-readable medium. A computer-readable medium may include, by way of example, memory such as a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk, a smart card, a flash memory device, random access memory (RAM) , read only memory (ROM) , programmable ROM (PROM) , erasable PROM (EPROM) , electrically erasable PROM (EEPROM) , a register, or a removable disk. Although memory is shown separate from the processors in the various aspects presented throughout the present disclosure, the memory may be internal to the processors (e.g., cache or register) .
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein. All structural and functional equivalents to the elements of the various aspects described throughout the present disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims.
Claims (20)
- A method for application recommendation through intelligent automated chatting, comprising:receiving a query in a conversation;scoring matching rates between the query and applications;identifying that the query is matched with a first application of the applications based on the matching rates; andrecommending the first application in the conversation.
- The method of claim 1, the recommending the first application further comprises performing one of the following:outputting a question about whether to activate the first application; oractivating the first application.
- The method of claim 1, further comprising:identifying a second application is active after identifying the query is matched with the first application;the recommending the first application further comprises outputting a question about whether to switch from the second application to the first application; andthe method further comprises performing one of the following:switching from the second application to the first application in response to a positive answer to the question, orcontinuing the second application in response to a negative answer to the question.
- The method of claim 3, further comprising:recording usage data of the first application and/or the second application associated with the user in a user-application usage database.
- The method of claim 3, further comprising:receiving a second query while the first application is active;obtaining a second response to the second query from web data;outputting the second response; andappending the second query and the second response to the first application.
- The method of claim 1, further comprising performing one of the following:adding the query into trigger data of the first application in response to a positive answer to the recommendation; oradding the query into the trigger data of the first application if the first application is finished without interruption and/or the usage time of the first application is above an average usage time.
- The method of claim 1, further comprising:identifying that available query-response pairs for the first application are insufficient; andappending candidate query-response pairs to the first application, where queries of the candidate query-response pairs are from user data and responses of the pairs are from a web data.
- The method of claim 1, the identifying the query is matched with the first application further comprises:identifying the query is matched with the first application based on a matching rate between the query and the first application and a threshold of the first application.
- The method of claim 8, wherein the threshold of the first application is updated based on the number of successful usages of the first application and the number of unsuccessful usages of the first application.
- The method of claim 1, wherein the scoring further comprises:scoring the matching rates based on the query, trigger data of the applications, and at least one of user-application usage data of the applications, user profile, monetary bid information of the applications, types of the applications, latent semantic scores between the query and the trigger data.
- The method of claim 10, wherein the user profile comprises user cluster information indicating which of a plurality of clusters the user belongs to.
- A method for collecting information, comprising:generating a plurality of user clusters based on user data associated with a service, wherein a user cluster comprises a set of users and a set of key words, and a key word in the user cluster is appended with one or more sentence-level descriptions; andstoring the plurality of user clusters in a database.
- The method of claim 12, further comprising:generating a plurality of web clusters based on web data, wherein a web cluster includes a list of key words, and a key word in the web cluster is appended with one or more sentence-level descriptions.
- The method of claim 13, further comprisingobtaining query-response pairs based on the plurality of user clusters and the plurality of web clusters, wherein queries of the pairs are from the user clusters and responses of the pairs are from the web clusters.
- The method of claim 14, further comprisingupdating applications associated with the service by using the query-response pairs.
- The method of claim 13, wherein the user data comprises user chatting log data and user-application usage data, and the method further comprises:generating information indicating recommendation of application development based on at least one of the user clusters and the web clusters.
- The method of claim 16, wherein the generating information further comprises:identifying one or more web clusters which contains a number of keywords appearing in the user clusters; and/oridentifying one or more web clusters which do not correspond to any of the user clusters.
- An apparatus for application recommendation through intelligent automated chatting, comprising:an obtaining module for obtaining a query in a conversation; anda recommending module for scoring matching rates between the query and applications, identifying that the query is matched with a first application of the applications based on the matching rates, and recommending the first application in the conversation.
- The apparatus of claim 18, wherein recommending module is further for recommending the first application by performing one of the following:outputting a question about whether to activate the first application; oractivating the first application.
- The apparatus of claim 18, wherein recommending module is further for:identifying a second application is active after identifying the query is matched with the first application;recommending the first application by outputting a question about whether to switch from the second application to the first application; andperforming one of the following:switching from the second application to the first application in response to a positive answer to the question, orcontinuing the second application in response to a negative answer to the question.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/076133 WO2018161306A1 (en) | 2017-03-09 | 2017-03-09 | Application recommendation |
CN201780031432.0A CN109313638B (en) | 2017-03-09 | 2017-03-09 | Application recommendation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/076133 WO2018161306A1 (en) | 2017-03-09 | 2017-03-09 | Application recommendation |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018161306A1 true WO2018161306A1 (en) | 2018-09-13 |
Family
ID=63447070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/076133 WO2018161306A1 (en) | 2017-03-09 | 2017-03-09 | Application recommendation |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109313638B (en) |
WO (1) | WO2018161306A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3916733A1 (en) * | 2020-05-28 | 2021-12-01 | Stichting IMEC Nederland | Method, system, and computer program product for matching stress-management application software to the needs of a user |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114374660B (en) * | 2020-10-15 | 2023-09-19 | 中国移动通信集团浙江有限公司 | Recommended methods, devices, equipment and storage media for 5G messaging chatbots |
WO2024235001A1 (en) * | 2023-05-15 | 2024-11-21 | 广东美的厨房电器制造有限公司 | Session information processing method and apparatus, electronic device, and readable storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140278343A1 (en) * | 2013-03-15 | 2014-09-18 | Bao Tran | Assistive agent |
CN104836720A (en) * | 2014-02-12 | 2015-08-12 | 北京三星通信技术研究有限公司 | Method for performing information recommendation in interactive communication, and device |
US20150286709A1 (en) * | 2014-04-02 | 2015-10-08 | Samsung Electronics Co., Ltd. | Method and system for retrieving information from knowledge-based assistive network to assist users intent |
CN105446994A (en) * | 2014-07-11 | 2016-03-30 | 华为技术有限公司 | Service recommendation method and device with intelligent assistant |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9821969D0 (en) * | 1998-10-08 | 1998-12-02 | Canon Kk | Apparatus and method for processing natural language |
EP1109119A3 (en) * | 1999-12-08 | 2005-09-28 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for query answering |
CN100530185C (en) * | 2006-10-27 | 2009-08-19 | 北京搜神网络技术有限责任公司 | Network behavior based personalized recommendation method and system |
CN101320375B (en) * | 2008-07-04 | 2010-09-22 | 浙江大学 | Digital Book Search Method Based on User Click Behavior |
CN102083245A (en) * | 2009-11-30 | 2011-06-01 | 中国移动通信集团四川有限公司 | Intelligent terminal as well as collaboration service method and system aiming at same |
US8812033B2 (en) * | 2010-04-28 | 2014-08-19 | Cellco Partnership | Systems and method for recommending an application from a mobile station |
CN102760128A (en) * | 2011-04-26 | 2012-10-31 | 华东师范大学 | Telecommunication field package recommending method based on intelligent customer service robot interaction |
CN102421062B (en) * | 2011-12-01 | 2014-05-07 | 中国联合网络通信集团有限公司 | Method and system for pushing application information |
JPWO2015016094A1 (en) * | 2013-07-31 | 2017-03-02 | ソニー株式会社 | Information processing apparatus, information processing method, and program |
CN103412757B (en) * | 2013-08-19 | 2017-08-01 | 南京大学 | Implementation method of mobile application personalization integration framework |
CN103914548B (en) * | 2014-04-10 | 2018-01-09 | 北京百度网讯科技有限公司 | Information search method and device |
KR20160089152A (en) * | 2015-01-19 | 2016-07-27 | 주식회사 엔씨소프트 | Method and computer system of analyzing communication situation based on dialogue act information |
CN104951570A (en) * | 2015-07-27 | 2015-09-30 | 广州九尾信息科技有限公司 | Intelligent part-time job recommendation system based on data mining and LBS |
CN105631590A (en) * | 2015-12-25 | 2016-06-01 | 苏州贝多环保技术有限公司 | Applying system based on intelligent terminal |
CN105677822A (en) * | 2016-01-05 | 2016-06-15 | 首都师范大学 | Enrollment automatic question-answering method and system based on conversation robot |
CN105701182A (en) * | 2016-01-07 | 2016-06-22 | 百度在线网络技术(北京)有限公司 | Information pushing method and apparatus |
CN106294618A (en) * | 2016-08-01 | 2017-01-04 | 北京百度网讯科技有限公司 | Searching method and device |
-
2017
- 2017-03-09 WO PCT/CN2017/076133 patent/WO2018161306A1/en active Application Filing
- 2017-03-09 CN CN201780031432.0A patent/CN109313638B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140278343A1 (en) * | 2013-03-15 | 2014-09-18 | Bao Tran | Assistive agent |
CN104836720A (en) * | 2014-02-12 | 2015-08-12 | 北京三星通信技术研究有限公司 | Method for performing information recommendation in interactive communication, and device |
US20150286709A1 (en) * | 2014-04-02 | 2015-10-08 | Samsung Electronics Co., Ltd. | Method and system for retrieving information from knowledge-based assistive network to assist users intent |
CN105446994A (en) * | 2014-07-11 | 2016-03-30 | 华为技术有限公司 | Service recommendation method and device with intelligent assistant |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3916733A1 (en) * | 2020-05-28 | 2021-12-01 | Stichting IMEC Nederland | Method, system, and computer program product for matching stress-management application software to the needs of a user |
Also Published As
Publication number | Publication date |
---|---|
CN109313638B (en) | 2023-09-01 |
CN109313638A (en) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11418471B2 (en) | Automatic suggestions for message exchange threads | |
CN114503115B (en) | Generating rich action items | |
US11599729B2 (en) | Method and apparatus for intelligent automated chatting | |
US11792141B2 (en) | Automated messaging reply-to | |
CA2886421C (en) | Computer-implemented system and method for detecting events for use in an automated call center environment | |
CN110869969A (en) | Virtual assistant for generating personalized responses within a communication session | |
CN110892395A (en) | Virtual assistant providing enhanced communication session services | |
US20160307131A1 (en) | Method, apparatus, and system for controlling delivery task in social networking platform | |
CN112463104A (en) | Automatic assistant with conference function | |
US11341174B2 (en) | Voice-based knowledge sharing application for chatbots | |
WO2019006146A1 (en) | Proactive provision of new content to group chat participants | |
US20120185544A1 (en) | Method and Apparatus for Analyzing and Applying Data Related to Customer Interactions with Social Media | |
US12118576B2 (en) | Distributing electronic surveys through a messenger platform | |
US9854098B2 (en) | Electronic communication routing based data accuracy | |
WO2013177280A1 (en) | A system for and method of analyzing and responding to user generated content | |
US11374894B2 (en) | Confusion reduction in an online social network | |
JP6530573B1 (en) | Message exchange thread extension | |
JP2016015162A (en) | Recommendation device, recommendation method, and recommendation program | |
WO2018161306A1 (en) | Application recommendation | |
CN112769673A (en) | Communication record generation, recommendation and display method and device | |
Williams | Modeling crowd feedback in the mobile app market | |
US10671618B2 (en) | Curriculum creation using cognitive computing | |
CN113987374A (en) | Word cloud showing methods, devices, electronic equipment, media and products | |
Moon | Scanning the Science-Society Horizon |
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: 17899653 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17899653 Country of ref document: EP Kind code of ref document: A1 |