Generate diverse intelligent replies using synonyms

The synonym pedigree graph and diversity rules address the resource and space challenges in generating intelligent replies, optimizing electronic resource usage and display space on mobile devices.

CN112368693BActive Publication Date: 2024-12-10MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201980042573.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-06-27
Filing Date
2019-05-16
Publication Date
2024-12-10
Estimated Expiration
2039-05-16

AI Technical Summary

Technical Problem

Generating diverse intelligent replies consumes significant electronic resources and wastes display space, particularly on mobile devices, due to the need for evaluating numerous parameters and displaying redundant suggestions.

Method used

A synonym pedigree graph data structure and diversity rules are used to select and display a limited set of intelligent replies, ensuring diversity by limiting common parent nodes, thereby optimizing resource usage and screen space.

Benefits of technology

Reduces electronic resource consumption and optimizes display space by providing diverse intelligent replies efficiently, while maintaining relevance and usability on mobile devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112368693B_ABST
    Figure CN112368693B_ABST
Patent Text Reader

Abstract

This article discloses a technology for generating diversified smart replies using a synonym genealogy. A computer system can detect that one or more messages of a first group having a first content have been sent from a first computing device of a first user to a second computing device of a second user, determine multiple candidate replies based on the first content of the one or more messages of the first group, and then select multiple smart replies from the multiple candidate replies using a genealogy graph data structure and at least one diversity rule. The selection of the multiple smart replies includes: based on the at least one diversity rule, omitting at least one candidate reply from the multiple candidate replies when selecting, which limits the number of the multiple smart replies with a common parent node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Generally speaking, the present application is directed to systems, methods, and computer program products for reducing consumption of electronic resources when using synonym genealogy graphs to generate diverse intelligent replies for users. Background Art

[0002] Generating suggested replies to messages may impose a large computational cost on the computer system generating the suggested replies and consume electronic resources. In attempting to provide the most relevant and useful suggested replies to the user, the computer system must evaluate a large number of parameters of the model, and a large amount of training data may be required for each user. In addition, the available space on the display screen may be limited, especially on the display screen of a mobile device. By displaying too many redundant smart replies, the computer system may waste this important space on the display screen. Other technical problems may also occur. BRIEF DESCRIPTION OF THE DRAWINGS

[0003] The accompanying drawings, in which like reference numerals refer to similar elements, depict certain embodiments of the present disclosure by way of example only and not limitation.

[0004] Figure 1 is a block diagram illustrating a client-server system according to an example embodiment.

[0005] Figure 2 is a block diagram illustrating functional components of a social networking service within a network system, according to an example embodiment.

[0006] Figure 3 According to an example embodiment, displaying the generated smart replies as selectable options for replying to a message within a graphical user interface (GUI) on a display screen of a mobile device is shown.

[0007] Figure 4 According to an example embodiment, a result of selecting one of the generated smart replies is shown.

[0008] Figure 5 According to an example embodiment, another result of selecting one of the generated smart replies is shown.

[0009] Figure 6 is a block diagram illustrating a communication system according to an example embodiment.

[0010] Figure 7 According to an example embodiment, a pedigree diagram of synonym replies is shown.

[0011] Figure 8 According to an example embodiment, displaying generated smart reply categories as selectable options for replying to a message within a GUI on a display screen of a mobile device is shown.

[0012] Fig. 9 According to an example embodiment, a result of selecting one of the generated smart reply categories is shown.

[0013] Fig.10 is a flow chart illustrating a method of generating a smart reply according to an example embodiment.

[0014] Fig.11 is a flow chart illustrating a method of generating intelligent follow-up content according to an example embodiment.

[0015] Fig.12 is a block diagram illustrating a mobile device according to some example embodiments.

[0016] Fig.13 is a block diagram of an example computer system on which the methods described herein may be performed, according to an example embodiment. DETAILED DESCRIPTION

[0017] An example method and system for generating diversified intelligent replies for users using a synonym pedigree graph is disclosed. In the following description, for ease of explanation, many specific details are set forth to provide a thorough understanding of the example embodiments. However, it is apparent to one of ordinary skill in the art that the proposed embodiments can be practiced without using these specific details.

[0018] Some or all of the above problems can be solved by one or more example embodiments disclosed herein. Some technical effects of the system and method of the present disclosure are to reduce the consumption of electronic resources when generating diversified intelligent replies for users. In addition, other technical effects will also be apparent from the present disclosure.

[0019] In some exemplary embodiments, operations are performed by a computer system (or other machine) having a memory and at least one hardware processor, and the operations include: detecting that one or more messages of a first group having a first content have been sent from a first computing device of a first user to a second computing device of a second user; determining a plurality of candidate replies based on the first content of the one or more messages of the first group; selecting a plurality of smart replies from the plurality of candidate replies using a pedigree graph data structure and at least one diversity rule, the pedigree graph data structure comprising a conceptual tree from a root node to a plurality of leaf nodes, wherein there is at least one intermediate node between the root node and each of the plurality of leaf nodes, each of the plurality of smart replies being represented by a corresponding leaf node of the plurality of leaf nodes in the pedigree graph data structure, the selecting of the plurality of smart replies comprising: omitting at least one of the plurality of candidate replies from being included in the plurality of smart replies when selecting, based on the at least one diversity rule, the at least one diversity rule limiting the number of the plurality of smart replies having a common parent node; and causing each of the plurality of selected smart replies to be displayed as a corresponding optional user interface element on the second computing device of the second user.

[0020] In some exemplary embodiments, the operations also include: receiving a user selection of one of the multiple smart replies from the second computing device; and in response to the receipt of the user selection, sending a second message to the first computing device that includes the selected smart reply from the multiple smart replies.

[0021] In some exemplary embodiments, these operations also include: in response to sending the second message including the selected smart reply from the multiple smart replies to the first computing device, selecting multiple smart follow-up contents from multiple candidate follow-up contents, wherein the selection of the multiple smart follow-up contents is based on at least one of the following: the selected smart reply from the multiple smart replies and the first content of one or more messages of the first group; causing each of the selected multiple smart follow-up contents to be displayed on the second computing device of the second user as a corresponding optional user interface element.

[0022] In some exemplary embodiments, the selection of the multiple smart follow-up contents includes: determining the multiple candidate follow-up contents based on at least one of the following: the selected smart reply among the multiple smart replies and the first content of one or more messages of the first group; selecting the multiple smart follow-up contents from the multiple candidate follow-up contents using the genealogical graph data structure and the at least one diversity rule, wherein each of the multiple smart follow-up contents is represented by a corresponding leaf node among the multiple leaf nodes in the genealogical graph data structure, and the selection of the multiple smart follow-up contents includes: based on the at least one diversity rule, omitting at least one of the multiple candidate follow-up contents from being included in the multiple smart follow-up contents when selecting, and the at least one diversity rule limits the number of common parent nodes in the multiple smart follow-up contents.

[0023] In some exemplary embodiments, the operations further include: receiving another user selection of one of the multiple smart follow-up contents from the second computing device; and in response to the reception of the another user selection, sending a third message including the selected smart follow-up content from the multiple smart follow-up contents to the first computing device.

[0024] In some exemplary embodiments, the first content of the one or more messages of the first group includes text. In some exemplary embodiments, each of the plurality of smart replies includes text.

[0025] In some exemplary embodiments, the computer system comprises a remote server. In some exemplary embodiments, the computer system comprises the second computing device.

[0026] The methods or embodiments disclosed herein may be implemented as a computer system having one or more modules (e.g., hardware modules or software modules). These modules may be executed by one or more processors of the computer system. The methods or embodiments disclosed herein may be embodied as instructions stored on a machine-readable medium, which, when executed by one or more processors, cause the one or more processors to execute these instructions.

[0027] Figure 1 1 is a block diagram illustrating a client-server system 100 according to an example embodiment. A network system 102 provides server-side functionality to one or more clients via a network 104 (e.g., the Internet or a wide area network (WAN)). For example, Figure 1 A web client 106 (eg, a browser) and a programmatic client 108 are shown executing on respective client machines 110 and 112 .

[0028] Application program interface (API) server 114 and web server 116 are coupled to and provide programming and web interfaces, respectively, to one or more application servers 118. Application servers 118 host one or more applications 120. In turn, application servers 118 are shown coupled to one or more database servers 124, which facilitate access to one or more databases 126. Figure 1 The application 120 is shown in as forming part of the network system 102, but it should be understood that in alternative embodiments, the application 120 may form part of a service that is separate and distinct from the network system 102.

[0029] In addition, although Figure 1 The illustrated system 100 employs a client-server architecture, but the present disclosure is certainly not limited to such an architecture and may equally well find application in, for example, distributed or peer-to-peer architecture systems. The various applications 120 may also be implemented as standalone software programs that do not necessarily have networking capabilities.

[0030] Web clients 106 access various applications 120 via a web interface supported by web server 116. Similarly, programmatic clients 108 access various services and functions provided by applications 120 via a programmatic interface provided by API server 114.

[0031] Figure 1 Also shown is a third-party application 128 executing on a third-party server machine 130 having programmatic access to the network system 102 through a programming interface provided by the API server 114. For example, the third-party application 128 can support one or more features or functions on a website hosted by a third party using information retrieved from the network system 102. For example, the third-party website can provide one or more functions supported by an associated application of the network system 102.

[0032] In some embodiments, any website referred to herein may include online content that can be presented on a variety of devices, including but not limited to desktop personal computers, laptop computers, and mobile devices (e.g., tablet computers, smart phones). In this regard, a user can use any of these devices to use the features of the present disclosure. In some embodiments, a user can use a mobile application on a mobile device (any of machines 110, 112, and 130 can be a mobile device) to access and browse online content (e.g., any of the online content disclosed herein). A mobile server (e.g., API server 114) can communicate with the mobile application and application server 118 to make the features of the present disclosure available on the mobile device.

[0033] In some embodiments, network system 102 may include functional components of a social networking service. Figure 2 is a block diagram illustrating functional components of a social networking system 210, including a data processing module referred to herein as a communication system 216 used in the social networking system 210, according to some embodiments of the present disclosure. In some embodiments, the communication system 216 is located at Figure 1 However, it is contemplated that other configurations are within the scope of the present disclosure.

[0034] like Figure 2 As shown in , the front end may include a user interface module (e.g., a network server) 212 that receives requests from various client computing devices and transmits appropriate responses to the requesting client devices. For example, the user interface module 212 may receive a hypertext transfer protocol (HTTP) request or other network-based application programming interface (API) request. In addition, a member interaction detection module 213 may be provided to detect various interactions of members with different applications, services, and content presented. Figure 2 As shown in , when the member interaction detection module 213 detects a specific interaction, it records the interaction in the member activity and behavior database 222, which includes the type of interaction and any metadata related to the interaction.

[0035] The application logic layer may include one or more various application server modules 214 that, in conjunction with the user interface module 212, generate various user interfaces (e.g., web pages) with data retrieved from various data sources in the data layer. In some embodiments, the various application server modules 214 are used to implement functions associated with various applications and / or services provided by the social networking service. In some exemplary embodiments, the application logic layer includes a communication system 216.

[0036] like Figure 2As shown in , the data layer may include some databases, such as database 218 for storing profile data, which includes member profile data and profile data of various organizations (e.g., companies, schools, etc.). According to some embodiments, when a person initially registers to become a member of a social networking service, the person will be prompted to provide some personal information, such as his or her name, age (e.g., date of birth), gender, interests, contact information, hometown, address, name of spouse and / or family members, educational background (e.g., school, major, enrollment and / or graduation date, etc.), work experience, skills, professional organizations, etc. For example, this information is stored in database 218. Similarly, when a representative of an organization initially registers the organization with a social networking service, the representative may be prompted to provide certain information about the organization. For example, this information may be stored in database 218 or another database (not shown). In some exemplary embodiments, the profile data may be processed (e.g., in the background or offline) to generate various derived profile data. For example, if a member provides information about the various positions the member has held, either in the same company or in different companies, and how long they have been employed, this information can be used to infer or derive member profile attributes that indicate the member's overall level of seniority, or level of seniority within a particular company. In some exemplary embodiments, member and organization profile data can be enhanced by importing or accessing data from one or more externally hosted data sources. For example, particularly for companies, financial data can be imported from one or more external data sources and made part of the company profile. In addition, one or more profile images (e.g., photos of members) can be stored in database 218.

[0037] Once registered, members may invite other members, or be invited by other members, to connect through the social networking service. "Connecting" may require or indicate a bilateral agreement between members so that both members acknowledge the establishment of the connection. Similarly, in some embodiments, a member may choose to "follow" another member. Compared to establishing a connection, the concept of "following" another member is generally a unilateral operation, and at least in some embodiments, does not require confirmation or approval from the member being followed. When a member follows another member, the member being followed may receive status updates (e.g., in an activity or content stream) or other messages posted by the member being followed, or messages related to various activities performed by the member being followed. Similarly, when a member follows an organization, the member is eligible to receive messages or status updates posted on behalf of the organization. For example, messages or status updates posted on behalf of an organization that the member follows will appear in the member's personalized data feed, which is generally referred to as an activity stream or content stream. In any case, the various associations and relationships that members establish with other members or with other entities and objects are stored and maintained in the social graph, where the social graph is stored and maintained in the social graph. Figure 2 The social graph is displayed in conjunction with database 220.

[0038] As members interact with the various applications, services, and content provided via social networking system 210, members' interactions and actions (e.g., content viewed, links or buttons selected, messages responded to, etc.) may be tracked, and information about members' activities and actions may be recorded or stored, such as Figure 2 The recorded behavior information can then be used by the communication system 216. The pre-fetch system 400 located on the client device (e.g., within the browser of the client device) can also track, store and use the member's interactions and behaviors, as will be discussed in further detail below.

[0039] In some embodiments, databases 218, 220, and 222 may be combined into Figure 1 However, other configurations also fall within the scope of the present disclosure.

[0040] Although not shown, in some embodiments, the social networking system 210 provides an application programming interface (API) module through which applications and services can access various data and services provided or maintained by the social networking service. For example, using the API, an application can request and / or receive one or more navigation suggestions. Such applications can be browser-based applications, or can be operating system-specific. Specifically, some applications can reside on one or more mobile devices (e.g., phones or tablet computing devices) with a mobile operating system and execute (at least in part) on these mobile devices. In addition, although in many cases, the applications or services that utilize the API can be applications and services developed and maintained by the entity that operates the social networking service, there is nothing to prevent the API from being provided to the public or certain third parties under certain special arrangements, thereby making navigation suggestions available to third-party applications and services, except for data privacy issues.

[0041] Although the communication system 216 is referred to herein as being used in the context of a social networking service, it is contemplated that it may also be used in the context of any website or online service. Additionally, features of the present disclosure may be used or presented in the context of a web page or any other user interface view, including but not limited to a user interface on a mobile device or desktop software.

[0042] In some exemplary embodiments, the communication system 216 is configured to generate a diverse set of smart replies for a user using a synonym family tree and at least one diversity rule that limits the number of smart replies that have a common parent node or some other common relationship with a particular node. A smart reply is a suggested reply automatically generated and presented to a user by the communication system 216 in response to or based on a message sent to a user by another user (e.g., a text message sent from a first user's first device to a second user's second device).

[0043] Figure 3 According to an exemplary embodiment, the generated smart reply 330 is shown displayed as a selectable option for replying to the message 310 within the graphical user interface (GUI) on the display screen 305 of the mobile device 300. Figure 3 , a first user represented by an icon 312 (e.g., a personal avatar of the first user) on the display screen 305 has sent a message 310 to a second user represented by an icon 332 (e.g., a personal avatar of the second user) on the display screen 305. Although the example conversations provided herein involve a first user and a second user, in some exemplary embodiments, these conversations involve more than two users, such as a group conversation (wherein three or more users are included in the same conversation thread). The GUI provides a content input field 320, which is configured to receive user input content (e.g., text, image) to be included in a reply message to the first user. The GUI also provides an optional user interface element 325, which is configured to trigger the transmission of input received via the content input field 320 to the first user.

[0044] exist Figure 3 , the communication system 216 has generated smart replies 330A, 330B, and 330C based on the content of one or more messages 310. In some exemplary embodiments, smart replies 330A, 330B, and 330C are each displayed as an optional user interface element, and the second user can choose to include them as part of the reply message to the first user. For example, each of smart replies 330A, 330B, and 330C may include an optional user interface element that is configured to send a reply message including the selected smart reply 330 to the computing device of the first user in response to a user selection of a smart reply 330 via a corresponding optional user interface element. Figure 4 According to an exemplary embodiment, the result of the second user selecting one of the generated smart replies 330 is shown. Figure 4 , the second user has selected (e.g., clicked, entered) Figure 3In response to the user selection of the corresponding selectable user interface element of the smart reply 330B, the communication system 216 sends a reply message including the selected smart reply 330B to the computing device of the first user, as shown by the smart reply 330B, where the smart reply 330B is displayed in the GUI on the display screen 305 as part of the conversation between the first user and the second user.

[0045] In some exemplary embodiments, the communication system 216 generates and displays a plurality of smart follow-up contents 340 in response to selection of one of the smart replies 330, or in response to sending a second message to the first computing device including the selected smart reply 330. The plurality of smart follow-up contents 340 may be determined based on at least one of the following: the selected smart reply 330 and the content of the message 310 from the first computing device.

[0046] exist Figure 4 , the communication system 216 generates smart follow-up content 340A, 340B, and 340C based on any combination of the selected smart reply 330B and one or more of the content of the message 310 from the first computing device. In some exemplary embodiments, the smart follow-up content 340A, 340B, and 340C are displayed as corresponding optional user interface elements, which the second user can select to include as part of the follow-up message of their previous message (including the selected smart reply 330B). For example, each of the smart follow-up content 340A, 340B, and 340C may include an optional user interface element that is configured to: in response to a user selection of the smart follow-up content 340 through the corresponding optional user interface element, send a follow-up message including the selected smart follow-up content 340 to the computing device of the first user.

[0047] In some exemplary embodiments, each optional user interface element corresponding to one of the smart replies 330 is configured to, in response to user selection of a smart reply 330 through the corresponding optional user interface element, insert the selected smart reply 330 into the content input field 320, where the second user can then provide instructions to send a reply message including the selected smart reply 330 and any other user-entered content in the content input field 320 to the first user. Figure 5 According to an exemplary embodiment, another result of one of the generated smart replies 330 is shown. Figure 5 , the second user has selected (e.g., clicked, entered) Figure 3325. In response to this user selection of the corresponding optional user interface element in the smart reply 330B, the communication system 216 has inserted the selected smart reply 330B into the content input field 320, but has not yet sent a reply message including the selected smart reply 330B to the first user. Here, the second user has the opportunity to enter additional content (e.g., text, image) into the content input field 320 to be included in the reply message with the selected smart reply 330B, or to edit the selected smart reply 330B in the content input field 320 (e.g., delete a portion thereof) before sending the reply message. When the second user is ready to send the content in the content input field 320 as a reply message to the first user, the second user selects user interface element 325.

[0048] Figure 6 is a block diagram illustrating a communication system 216 according to an example embodiment. In some example embodiments, the communication system 216 includes any combination of one or more of an interface module 610, a reply module 620, and one or more databases 630. The modules 610 and 620 and the database 630 may be located on a computer system, or another machine having a memory and at least one processor (not shown).

[0049] In some exemplary embodiments, the communication system 216 includes a remote server. For example, in some embodiments, the modules 610 and 620 and the database 630 are incorporated into Figure 1 The application server 118 in the embodiment of the present invention is integrated into the database 630. Figure 1 In the database 126 in, modules 610 and 620 may include Figure 2 In some exemplary embodiments, the communication system 216 includes a client computing device. For example, in some embodiments, any combination of one or more of the modules 610 and 620 and the database 630 is incorporated into the Figure 1 The client machines 110 and 112 or Figure 3 One or more of the mobile devices 300 in the. It is contemplated that other configurations of the modules 610 and 620 and the database 630 also fall within the scope of the present disclosure.

[0050] In some exemplary embodiments, one or more of modules 610 and 620 are configured to provide various user interface functions, such as generating a user interface, interactively presenting a user interface to a user, receiving information from a user (e.g., interacting with a user interface), and the like. Presenting information to a user may include causing information to be presented to a user (e.g., transmitting information to a device using instructions for presenting information to a user). Information may be presented using various means including visually displaying information and using other device outputs (e.g., audio, tactile, and the like). Similarly, information may be received by various means including alphanumeric input or other device input (e.g., one or more touch screens, cameras, tactile sensors, light sensors, infrared sensors, biometric sensors, microphones, gyroscopes, accelerometers, other sensors, and the like). In some exemplary embodiments, one or more of modules 610 and 620 are configured to receive user input. For example, one or more of modules 610 and 620 may present one or more GUI elements (e.g., drop-down menus, selectable buttons, text fields) that a user can use to submit input.

[0051] In some exemplary embodiments, one or more of the modules 610 and 620 are configured to perform various communication functions to facilitate the functionality described herein, for example, by communicating with the social networking system 210 via the network 104 using a wired or wireless connection. Any combination of one or more of the modules 610 and 620 may also provide various network services or functions, such as retrieving information from a third-party server 130 and the social networking system 210. The information retrieved by any of the modules 610 and 620 may include profile data corresponding to users and members of the social networking service of the social networking system 210.

[0052] Additionally, any combination of one or more of modules 610 and 620 may provide various data functions, such as exchanging information with database 630. For example, any of modules 610 and 620 may access profile data, social graph data, Figure 2 member activity and behavior data in databases 218, 220 and 222, and exchanging information with third-party servers 130, client computers 110, 112 and other information sources.

[0053] In some exemplary embodiments, interface module 610 is configured to detect that a set of one or more messages having content is transmitted from a first computing device of a first user to a second computing device of a second user. Figure 3 In the example embodiment, the interface module 610 detects that the message 310A or the message 310B or both the messages 310A and 310B have been sent to the first user.

[0054] In some exemplary embodiments, the reply module 620 is configured to generate one or more smart replies in response to, or based on, detecting a message from a first user to a second user. In some exemplary embodiments, the reply module 620 uses a classification model to predict which replies best match the context in which the suggested reply will be used (e.g., the conversation so far, the interlocutor of the conversation, and other relevant information such as the time of day). However, different users use different usages and wordings to express the same idea. Although such differences between users can be incorporated into a single core classification model as, for example, a unique bias term for each user, this approach adds a large number of parameters to the single-core classification model (e.g., in a linear model, this would be one weight per user, per possible reply), would require a large amount of training data for each user, and is neither transparent nor amenable to product-driven heuristics.

[0055] In some exemplary embodiments, the reply module 620 uses a personalized model that is separate from the core classification model. For each reply R that is initially selected by the core classification model with probability Pc(R), the reply module 620 looks for different personalized replies R' that may have the same or similar meaning. The reply module 620 selects the final R' by calculating the probabilities or scores P(R') of all possible candidate replies, combining the probability Pc(R) given by the core classification model for the original reply and the conditional probability Pp(R'|R) of the personalized model for the final reply R' (given the original reply). In some exemplary embodiments, the reply module 620 employs the following combination of a core classification model (e.g., a first model) and a personalized model (e.g., a second model):

[0056]

[0057] Where w is a weighted index that determines the relative importance of the personalization model (e.g., higher weights correspond to much more important personalizations), and Z is a normalization term that ensures that the sum of all probabilities for all possible responses is 1. In some exemplary embodiments, the personalization model is configured to rely on or otherwise be based on two sources of information: a synonym spectrum and observations of user-selected responses.

[0058] In some exemplary embodiments, the synonym tree includes a concept tree ranging from the most general root node (e.g., gratitude, yes / no response, conversation opener, etc.) to the most specific leaves, which are the surface forms used as actual smart replies. In some exemplary embodiments, the synonym tree includes a directed acyclic graph, so that, for example, a reply with multiple meanings can have multiple parents.

[0059] Figure 7A hierarchical graph 700 of synonym replies according to an example embodiment is shown. The hierarchical graph 700 includes a root node 710, an intermediate node 720, and a leaf node 730. The root node 710 represents a general meaning of gratitude. This general meaning of gratitude has different generalized expressions, such as "thank you" and "thanks" represented by the intermediate node 720. These generalized expressions can be divided into more specific expression levels, which can then be divided into even more specific expression levels, and so on, until a leaf node 730 is reached, where the leaf node 730 represents a surface form that would be considered a smart reply, such as Figure 7 "Thank you!", "Thank you", "Thank you!", "Thank you", "Thank you" and "Thank you!" in the leaf nodes 730 are synonyms of each other.

[0060] In some exemplary embodiments, the reply module 620 uses the history of the second user's interaction with the smart reply to determine which leaf node to select as the smart reply to present to the second user. In some exemplary embodiments, each time a smart reply 330a is presented to the second user, the interface module 610 records the instance of the presentation and which smart replies 330 (if any) the second user selected to include in the reply message to the first user.

[0061] In some exemplary embodiments, the reply module 620 is configured to determine Pp(R'|R) using the synonym tree in combination with the user's history of interaction with the smart reply. For example, the number of replies that let the user U select the leaves below the node S in the tree is Cu(S) (where S itself can be a leaf, for example, a surface form / reply, in which case its only leaf is itself), and the number of replies that let the user see the leaves below the node S is C. N (S). Then, in some exemplary embodiments, the reply module 620 uses the following personalized model formula:

[0062]

[0063] where Z is a normalization factor to ensure that Pp is distributed, D is a [[0, 1] discount factor that rewards alternative responses R' that are closer to R, LCA(...) returns the height of the least common ancestor of R and R' (measured from the leaves), and LCA(R, R) = 0.

[0064] An example of a synonym hierarchy includes the following path from root to leaf for the reply "Thank you very much": grateful (with level / height = general meaning) → thank you (with level / height = meta-synonym set) → thank you very much (with level / height = synonym) → thank you very much (with level / height = near-duplicate set) → "Thank you very much" (with level / height = surface form / actual reply).

[0065] Using this exemplary synonym pedigree and the example formula for the personalization model above, if R is "Thank you very much" and R' is "Thank you very much", they do not share an ancestor at height 1 (close to the level of duplication), but they do share a "Thank you very much" ancestor at height 2 (the level of the synonym set). Therefore, LCA("Thank you very much", "Thank you very much") = 2. This is an exponent of D, so personalized replies with a higher common ancestor have a lower probability (and therefore a more different meaning) than the original reply. In some exemplary embodiments, n is the total height of the synonym pedigree (i traverses each level of the tree), and Ri' is the i-th parent of the personalized reply R' in the synonym pedigree. For example, R0' = R, and R2' is the synonym set of R'. Li is the additive smoothing constant for each layer of tree i, and Xi is the log-linear weight that determines the relative importance of the i-th layer in the synonym pedigree. In some exemplary embodiments, instead of finding a log-linear weighted average as in the model above, the reply module 620 uses a backoff model: if the impression and click counts are high enough, the user's observed CTR (click-through rate) for R' is used, otherwise the aggregate count of R''s parents in the synonym tree is used (if that aggregate impression count is still insufficient, go back to the next higher level, and so on).

[0066] In some exemplary embodiments, the reply module 620 uses a synonym spectrum to smooth out the likely sparse counts for any given user, similar to n-gram backoff and smoothing in neuro-linguistic programming (NLP), and to encourage exploration (e.g., trying smart replies with low impression counts - this is achieved in the above model by accumulating a smoothing constant Li that provides a fixed number of phantom clicks and impressions to each reply, making low impression count replies less likely).

[0067] In some exemplary embodiments, the reply module 620 is configured to determine a plurality of candidate replies based on the first content of the one or more messages of the first group, and then select a plurality of intelligent replies from the plurality of candidate replies using a pedigree graph data structure and at least one diversity rule. The pedigree graph data structure includes a concept tree ranging from a root node to a plurality of leaf nodes, wherein at least one intermediate node is located between the root node and each of the plurality of leaf nodes, and each of the plurality of candidate replies is represented by a corresponding leaf node in the plurality of leaf nodes in the pedigree graph data structure, as described above with respect to Figure 7 As discussed. Since there is usually limited screen space on computing devices used to display content (particularly for mobile devices such as smartphones and smart watches), a technical problem arises as to how to most efficiently and effectively utilize the limited screen space. The reply module 620 can use diversity rules to ensure that there is a minimum amount of diversity in the smart replies 330 displayed within the GUI on the display screen 305 of the mobile device 300.

[0068] In some exemplary embodiments, each diversity rule is configured to limit the number of displayed smart replies 330 that have a common parent node or some other common relationship with a particular node to within a specified maximum threshold. For example, a diversity rule may require that no more than two displayed smart replies 330 can have the same parent node. Figure 7 , the exemplary diversity rule will prevent more than two leaf nodes 730 having the same intermediate node 720 as its parent node from being used as smart replies 330. For example, if the intermediate node 720 has three leaf nodes 730 as its child nodes, the exemplary diversity rule will cause the reply module 620 to select at most two of the three leaf nodes 730 of the intermediate node 720 as smart replies 330. In addition to restrictions based on child-parent relationships, diversity rules can also restrict other types of relationships between nodes, for example, restrictions on more distant ancestors and descendants (e.g., grandparent-grandchild relationships). In some exemplary embodiments, the reply module 620 is configured to: when selecting, based on the diversity rule, omit at least one candidate reply from the multiple candidate replies so as not to be included in the multiple smart replies 330.

[0069] In some exemplary embodiments, the interface module 610 is configured to cause each of the plurality of smart replies 330 to be displayed as a corresponding selectable user interface element on the second computing device of the second user, as described above with respect to Figure 3In some exemplary embodiments, the reply module 620 is configured to receive a user selection of one of the plurality of smart replies 330 from the second computing device, and then, in response to or based on the receipt of the user selection, send a second message including the selected smart reply from the plurality of smart replies 330 to the first computing device, as described above with respect to Figure 4 In some exemplary embodiments, the reply module 620 is configured to: receive a user selection of one of the plurality of smart replies from the second computing device, and then, in response to or based on receiving the user selection, insert the selected smart reply from the plurality of smart replies into a content input field displayed on the second computer, as described above with respect to Figure 5 discussed.

[0070] In some exemplary embodiments, the communication system 216 is configured to store a user selection record of one of the multiple smart replies in a database (e.g., database 630), and then use one or more machine learning operations to modify the second model based on the user selection record of one of the multiple smart replies. The communication system 216 uses the user selection record of one of the multiple smart replies as training data in one or more machine learning operations to modify the second model.

[0071] In some instances, a cold start problem may be encountered: until the user sees some smart replies and clicks on them, there is no information about the user's preferences for smart replies. To alleviate this problem, the reply module 620 can rely on one or more groups to which the user belongs. In some exemplary embodiments, the reply module 620 accesses the user's profile information and the profile information of other users to determine a group of other users who have profile information that is determined to meet a predetermined similarity threshold. For example, the reply module 620 can analyze the profile information of the user and other users to determine a user group with the same or similar location, the same or similar age, the same gender, the same or similar culture, the same or similar industry, profile information embedded at a certain distance K from the user's profile information, and so on.

[0072] A user may belong to multiple groups. For each group, the reply module 620 can adopt the model Pp(R'|R) as before, but use the user selection data aggregated across all users in the group. In some exemplary embodiments, the model based on the observation of user U is The new model smoothed by group membership is:

[0073]

[0074] Among them, w gis the weight of each group, which controls the relative influence of each group and can be machine-learned from the data. In some alternative exemplary embodiments, the reply module 620 smoothes the user selection data directly over the groups, rather than smoothing the probabilities of each group model. For example, the reply module 620 can use a weighted sum or a backoff on the selection / impression counts (e.g., using a weighted average of the user's own counts and the groups they belong to).

[0075] The reply module 620 can determine whether to use the group-based model discussed above based on the determination of whether there is sufficient user selection data for the second user. In some exemplary embodiments, the reply module 620 is configured to: when generating the multiple smart replies, determine that the number of times the corresponding synonym reply is presented to the second user as an optional option for replying to the message is lower than a predetermined threshold (for example, the predetermined threshold can be an impression instance), and then, based on determining that the number of times the corresponding synonym reply is presented to the second user is lower than the predetermined threshold, determine a group of users that the second user wants to visit (based on the similarity between the profile information of the second user and the profile information of the group of users satisfying a predetermined similarity threshold). The reply module 620 then uses the second model to generate the multiple smart replies based on the multiple synonym replies and the number of times the group of users has selected the corresponding synonym replies for replying to the message.

[0076] Since different computing devices have different display screen sizes, displaying the same number of smart replies on each computing device may cause technical problems. The screen size of a smaller computing device (such as a smartphone or smart watch) may not be sufficient to support the display of the same number of smart replies as on a larger computing device (such as a desktop computer). In order to solve this technical problem, in some exemplary embodiments, the reply module 620 is configured to: when generating multiple smart replies, based on the screen size of the second computing device, limit the number of smart replies in the multiple smart replies to no more than a specific number. For example, the reply module 620 can limit the number of smart replies to be displayed on smartphones and smart watches to no more than three smart replies, and limit the number of smart replies to be displayed on laptops and tablet computers to no more than five smart replies. It is conceivable that other quantities and configurations can be used to limit the number of smart replies to be displayed.

[0077] In some exemplary embodiments, the reply module 620 is configured to: in response to sending a second message including a selected smart reply from the multiple smart replies to the first computing device, select multiple smart follow-up contents from multiple candidate follow-up contents. The selection of the multiple smart follow-up contents is based on at least one of the following: the selected smart reply from the multiple smart replies and the first content of one or more messages of the first group. In some exemplary embodiments, the reply module 620 is configured to generate the multiple smart follow-up contents by using a model that is the same or similar to the model used to generate the smart reply. However, the reply module 620 can input the selected smart reply into the model to generate the multiple smart follow-up contents. In some exemplary embodiments, the reply module 620 does not generate any smart follow-up content in response to the input entered by the second user via the content input field 320, but sets the conditions for the generation and display of the smart follow-up content to be based on the second user selecting a smart reply or selecting a smart follow-up. In this regard, the reply module 620 can only use the selected smart reply or the selected smart follow-up content as a trigger, and as a basis for generating and displaying smart follow-up content or additional smart follow-up content.

[0078] In some exemplary embodiments, the reply module 620 selects the multiple smart follow-up contents in the following manner: determining the multiple candidate follow-up contents based on at least one of the following: the selected smart reply among the multiple smart replies and the first content of one or more messages of the first group, and then selecting multiple smart follow-up contents from the multiple candidate follow-up contents using a pedigree graph data structure and a diversity rule, wherein each of the multiple smart follow-up contents is represented by a corresponding leaf node among multiple leaf nodes in the pedigree graph data structure. In some exemplary embodiments, the reply module 620 is configured to omit at least one of the multiple candidate follow-up contents when selecting, based on a diversity rule, so as not to be included in the multiple smart follow-up contents, wherein the diversity rule limits the number of the multiple smart follow-up contents that have a common parent node or have some other common relationship with a specific node.

[0079] In some exemplary embodiments, the interface module 610 is configured to display each of the plurality of intelligent subsequent contents as a corresponding optional user interface element on the second computing device of the second user, similar to the display of the optional user interface element corresponding to the intelligent reply. In some exemplary embodiments, the interface module 610 is also configured to receive a user selection of one of the plurality of intelligent subsequent contents from the second computing device, and then, in response to receiving another user selection, send a third message including the selected intelligent subsequent content from the plurality of intelligent subsequent contents to the first computing device.

[0080] In some exemplary embodiments, in order to save screen space while still providing the user with a maximum number of smart replies and smart follow-up content options, the interface module 610 is configured to first display multiple intermediate nodes 720 of corresponding category concepts as optional user interface elements. Figure 8 According to an exemplary embodiment, the generated smart reply category 830 is shown as a corresponding selectable option for replying to a message in the GUI on the display screen 305 of the mobile device 300, or displayed together with it. Figure 8 In the figure, two category concepts 830A and 830B of smart replies and corresponding optional user interface elements 835A and 835B are shown. The corresponding optional user interface elements 835A and 835B are respectively configured to: in response to being selected, the smart reply 930 corresponding to the child node of the intermediate node corresponding to the selected user interface element 835 is displayed as an optional smart reply. Fig. 9 According to an exemplary embodiment, the result of selecting one of the selectable user interface elements 835 for the smart reply category 830 is shown. Fig. 9 In the example shown, Figure 8 In the example, the selectable user interface element 835A corresponding to the concept of "thank you" has been selected, resulting in the concept of "thank you" being expanded into three selectable smart replies 930A, 930B, and 930C, which have the same functions as those in the above reference. Figure 3 The optional smart replies 330A, 330B, and 330C have the same functionality as discussed.

[0081] Fig.10 1 is a flow chart showing a method 1000 for generating a smart reply according to an exemplary embodiment. The method 1000 may be performed by processing logic, wherein the processing logic may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processing device), or a combination thereof. In one implementation, the method 1000 is performed by Figure 2 The communication system 216 is implemented as described above.

[0082] At operation 1010, the communication system 216 detects that a first group of one or more messages having a first content has been sent from a first computing device of a first user to a second computing device of a second user. In some exemplary embodiments, the first content of the first group of one or more messages includes text. However, it is contemplated that other types of content also fall within the scope of the present disclosure, including but not limited to image-based content (e.g., emoji, GIF).

[0083] At operation 1020, the communication system 216 determines a plurality of candidate replies based on the first content of the one or more messages of the first group. In some exemplary embodiments, the communication system 216 uses the first content to search a database of candidate replies to determine the plurality of candidate replies. For example, the communication system 216 may use a model to analyze the first content of the one or more messages of the first group to determine that it is a text message indicating "congratulations", and then search the candidate reply database for candidate replies that have been marked as replies to messages indicating "congratulations". However, the communication system 216 may employ other techniques and operations to determine the plurality of candidate replies.

[0084] At operation 1030, the communication system 216 uses a pedigree graph data structure and at least one diversity rule to select multiple smart replies from the multiple candidate replies. In some exemplary embodiments, the pedigree graph data structure includes a conceptual tree from a root node to multiple leaf nodes, wherein there is at least one intermediate node between the root node and each of the multiple leaf nodes, and each of the multiple smart replies is represented by a corresponding leaf node in the multiple leaf nodes in the pedigree graph data structure. In some exemplary embodiments, the selection of the multiple smart replies includes: based on a diversity rule, at least one candidate reply in the multiple candidate replies is omitted from the multiple smart replies when selecting, wherein the diversity rule limits the number of the multiple smart replies that have a common parent node or have some other common relationship with a specific node. In some exemplary embodiments, each of the multiple smart replies includes text. However, it is conceivable that other types of smart replies also fall within the scope of the present disclosure, including but not limited to image-based content (e.g., emoji, GIF).

[0085] At operation 1040, the communication system 216 causes each of the selected multiple smart replies to be displayed as a corresponding selectable user interface element on the second computing device of the second user. For example, the communication system 216 can send the selected multiple smart replies together with instructions to display the selected multiple smart replies to the second computing device, so that the second computing device displays the selected multiple smart replies as corresponding selectable user interface elements.

[0086] At operation 1050, the communication system 216 receives a user selection of one of the plurality of smart replies from the second computing device. For example, the second user may click or tap one of the smart replies, and the communication system 216 may receive an indication of the click or tap as the user selection.

[0087] At operation 1060, in response to or based on receiving the user selection, the communication system 216 sends a second message including the selected smart reply from the plurality of smart replies to the first computing device. For example, receiving the user selection can trigger automatic creation of the second message including the selected smart reply and automatic transmission of the second message to the first computing device.

[0088] At operation 1052, in response to or based on the receipt of the user selection at operation 1050, the communication system 216 stores a record of the user selection of one of the multiple smart replies in the database. At operation 1054, the communication system 216 uses one or more machine learning operations to modify one or more models for generating smart replies based on the user selection record of one of the multiple smart replies. In some exemplary embodiments, the record of the user selection of one of the multiple smart replies is used as training data in the one or more machine learning operations.

[0089] It is contemplated that any other features described in this disclosure may be incorporated into method 1000 .

[0090] Fig.11 1 is a flow chart illustrating a method for generating intelligent follow-up content according to an exemplary embodiment. The method 1100 may be performed by processing logic, wherein the processing logic may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processing device), or a combination thereof. In one implementation, the method 1100 is performed by Figure 2 The communication system 216 is implemented as described above.

[0091] In some exemplary embodiments, in response to or based on Fig.10 At operation 1060 , operation 1110 is performed. At operation 1110 , the communication system 216 detects that a message including the selected smart reply is sent from the second computing device of the second user to the first computing device of the first user.

[0092] At operation 1120, in response to sending a second message including the selected smart reply from the multiple smart replies to the first computing device, the communication system 216 selects multiple smart subsequent contents from multiple candidate subsequent contents. In some exemplary embodiments, the selection of the multiple smart subsequent contents is based on at least one of the following: the selected smart reply from the multiple smart replies and the first content of one or more messages of the first group. In some exemplary embodiments, the selection of the multiple smart subsequent contents includes: determining the multiple candidate subsequent contents based on at least one of the following: the selected smart reply from the multiple smart replies and the first content of one or more messages of the first group, and using the pedigree graph data structure and at least one diversity rule, selecting the multiple smart subsequent contents from the multiple candidate subsequent contents, wherein each of the multiple smart subsequent contents is represented by a corresponding leaf node in the multiple leaf nodes in the pedigree graph data structure. In some exemplary embodiments, the selection of the multiple smart subsequent contents includes: based on the diversity rule, omitting at least one of the multiple candidate subsequent contents from the multiple smart subsequent contents when selecting and not including it in the multiple smart subsequent contents, wherein the diversity rule limits the number of the multiple smart subsequent contents that have a common parent node or have some other common relationship with a specific node.

[0093] At operation 1130, the communication system 216 causes each of the plurality of intelligent subsequent contents to be displayed as a corresponding selectable user interface element on the second computing device of the second user. For example, the communication system 216 may send the plurality of intelligent subsequent contents together with instructions to display the plurality of intelligent subsequent contents to the second computing device, thereby causing the second computing device to display the plurality of intelligent subsequent contents as corresponding selectable user interface elements.

[0094] At operation 1140, the communication system 216 receives a user selection of one of the plurality of smart follow-up contents from the second computing device. For example, the second user may click or tap one of the smart follow-up contents, and the communication system 216 may receive an indication of the click or tap as the user selection.

[0095] At operation 1150, in response to or based on receiving the user selection, the communication system 216 sends another message including the selected smart follow-up content from the plurality of smart follow-up contents to the first computing device. For example, receiving the user selection can trigger automatic creation of another message including the selected smart follow-up content and automatic transmission of the another message to the first computing device.

[0096] At operation 1142, in response to or based on the reception of the user selection at operation 1140, the communication system 216 stores a record of the user selection of one of the multiple smart replies in the database. At operation 1144, the communication system 216 uses one or more machine learning operations to modify one or more models used to generate the multiple smart follow-up contents based on the record of the user selection of one of the multiple smart follow-up contents. In some exemplary embodiments, the record of the user selection of one of the multiple smart follow-up contents is used as training data in the one or more machine learning operations.

[0097] It is contemplated that any other features described in this disclosure may be incorporated into method 1000 .

[0098] Exemplary Mobile Devices

[0099] Fig.12 1 is a block diagram illustrating a mobile device 1200 according to an example embodiment. The mobile device 1200 may include a processor 1202. The processor 1202 may be any of a variety of different types of commercially available processors suitable for the mobile device 1200 (e.g., an XScale architecture microprocessor, a non-interlocked pipeline microprocessor (MIPS) architecture processor, or another type of processor). The processor 1202 may generally access a memory 1204 such as a random access memory (RAM), flash memory, or other type of memory. The memory 1204 may be suitable for storing an operating system (OS) 1206, and applications 1208 (e.g., mobile location-enabled applications that can provide location-based services (LBS) to users). The processor 1202 may be coupled to a display 1210 and one or more input / output (I / O) devices 1212 (e.g., a keypad, a touch panel sensor, a microphone, etc.), either directly or through appropriate intermediate hardware. Similarly, in some embodiments, the processor 1202 may be coupled to a transceiver 1214 that interfaces with an antenna 1216. The transceiver 1214 may be configured to transmit and receive cellular network signals, wireless data signals, or other types of signals via the antenna 1216, depending on the nature of the mobile device 1200. Additionally, in some configurations, the GPS receiver 1218 may also utilize the antenna 1216 to receive GPS signals.

[0100] Modules, components and logic

[0101] Certain embodiments are described herein as including logical or multiple components, modules, or devices. Modules may constitute software modules (e.g., code embodied in (1) a non-transitory machine-readable medium or (2) a transmission signal) or hardware-implemented modules. Hardware-implemented modules are tangible units that are capable of performing certain operations and may be configured or arranged in a certain manner. In an exemplary embodiment, one or more computer systems (e.g., stand-alone computer systems, client computer systems, or server computer systems) or one or more processors may be configured by software (e.g., an application or application portion) as hardware-implemented modules for performing certain operations as described herein.

[0102] In various embodiments, hardware-implemented modules may be implemented mechanically or electronically. For example, a hardware-implemented module may include dedicated circuits or logic that are permanently configured to perform certain operations (e.g., configured as a dedicated processor such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)). A hardware-implemented module may also include programmable logic or circuits (e.g., as included in a general-purpose processor or other programmable processor) that are temporarily configured by software to perform certain operations. It should be understood that the decision to implement a hardware-implemented module mechanically in a dedicated and permanently configured circuit or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations.

[0103] Thus, the term "hardware-implemented module" should be understood to encompass a tangible entity, i.e., an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily or transiently configured (e.g., programmed) to operate in a certain manner and / or perform certain operations described herein. Considering embodiments in which hardware-implemented modules are temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware-implemented module at any one time. For example, when the hardware-implemented modules include a general-purpose processor configured using software, the general-purpose processor can be configured into correspondingly different hardware-implemented modules at different times. The software can configure the processor accordingly, for example, to constitute a particular hardware-implemented module at one time, and to constitute a different hardware-implemented module at a different time.

[0104] The module of hardware implementation can provide information to the module of other hardware implementation and receive information from it. Therefore, the module of described hardware implementation can be regarded as coupled to communication. In the case of multiple such hardware implementation modules at the same time, communication can be realized by the signal transmission (for example, by appropriate circuit and bus) of the module connecting hardware implementation. In the embodiment of the module of multiple hardware implementations configured or instantiated at different times, the communication between the modules of these hardware implementations can be realized, for example, by the storage and retrieval of information in the memory structure accessible to multiple hardware implementation modules. For example, a module of hardware implementation can perform an operation, and the output of the operation is stored in a memory device coupled to it in communication. Then, the module of other hardware implementation can access the memory device later to retrieve and process the stored output. The module of hardware implementation can also initiate communication with input device or output device, and can operate on resources (for example, information collection).

[0105] The various operations of the example methods described herein may be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, these processors may constitute processor-implemented modules for performing one or more operations or functions. In some exemplary embodiments, the modules cited herein include processor-implemented modules.

[0106] Similarly, the method described herein can be implemented at least in part by a processor. For example, at least some operations of a method can be performed by one or more processors or a module implemented by the processor. The execution of some operations can be distributed among one or more processors, not only resident in a single machine, but deployed on multiple machines. In some exemplary embodiments, a processor or a processor cluster can be located in a single geographical location (for example, located in a home environment, an office environment or a server group), and in other embodiments, the processor can be distributed in multiple geographical locations.

[0107] In addition, one or more processors may also operate to support execution of related operations in a "cloud computing environment" or as "software as a service" (SaaS). For example, at least some of the operations may be performed by a group of computers (as an example of a machine including a processor), where the operations may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application programming interface (API)).

[0108] Electronic devices and systems

[0109] The exemplary embodiments may be implemented in digital electronic circuitry, or using computer hardware, firmware, software, or a combination thereof. The exemplary embodiments may be implemented using a computer program product (e.g., a computer program tangibly embodied in an information carrier (e.g., in a machine-readable medium)) to be executed by a data processing apparatus (e.g., a programmable processor, a computer or multiple computers), or to control the operation of a data processing device.

[0110] Computer programs can be written in any form of programming language (including compiled or interpreted languages) and can be deployed in any form, including as stand-alone programs or modules, subroutines, or other units suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site, or distributed across multiple sites and interconnected by a communication network.

[0111] In an exemplary embodiment, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations may also be performed by, and apparatus of exemplary embodiments may be implemented as, special purpose logic circuitry (e.g., a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC)).

[0112] The computing system may include a client and a server. The client and the server are usually far away from each other and usually interact through a communication network. The relationship between the client and the server is generated by a computer program that runs on each computer and has a client-server relationship with each other. In the embodiment of the deployment of the programmable computing system, it should be appreciated that both hardware and software architectures are worthy of consideration. Specifically, it should be appreciated that it may be a design choice to choose to implement certain functions in a combination of permanently configured hardware (e.g., ASIC), temporarily configured hardware (e.g., a combination of software and a programmable processor), or permanently and temporarily configured hardware. In various example embodiments, the hardware (e.g., machine) and software architecture that can be deployed are listed below.

[0113] Exemplary machine architecture and machine-readable medium

[0114] Fig.131300 is a block diagram of an exemplary computer system 1300 on which the methods described herein can be executed according to exemplary embodiments. In alternative embodiments, the machine operates as a stand-alone device, or can be connected to (e.g., networked to) other machines. In a networked deployment, the machine can operate with the capabilities of a server or client machine in a server-client network environment, or operate as a peer machine in a peer (or distributed) network environment. The machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a network device, a network router, a switch or a bridge, or any machine capable of (sequentially or otherwise) executing instructions, wherein these instructions specify the actions to be taken by the machine. In addition, although only a single machine is shown, the term "machine" should also be considered to include a collection of machines, which execute an instruction set (or multiple instruction sets) individually or jointly to perform any one or more of the methods discussed herein.

[0115] The exemplary computer system 1300 includes a processor 1302 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 1304, and a static memory 1306 that communicate with each other via a bus 1308. The computer system 1300 may also include a graphics display unit 1310 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1300 also includes an alphanumeric input device 1312 (e.g., a keyboard or a touch-sensitive display screen), a user interface (UI) navigation device 1314 (e.g., a mouse), a storage unit 1316, a signal generating device 1318 (e.g., a speaker), and a network interface device 1320.

[0116] Machine readable medium

[0117] The storage unit 1316 includes a machine-readable medium 1322 storing one or more sets of instructions and data structures (e.g., instructions 1324) that embody or are used by any one or more of the methodologies or functions described herein. The instructions 1324 may also reside, completely or at least partially, within the main memory 1304 and / or the processor 1302 during execution by the computer system 1300, the main memory 1304 and the processor 1302 also constituting machine-readable media.

[0118] Although the machine-readable medium 1322 is shown as a single medium in the example embodiment, the term "machine-readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) storing one or more instructions 1324 or data structures. The term "machine-readable medium" should also be considered to include any tangible medium that is capable of storing, encoding, or carrying instructions (e.g., instructions 1324) that are executed by a machine and cause the machine to perform any one or more of the methods of the present disclosure, or capable of storing, encoding, or carrying data structures utilized by or associated with such instructions. Thus, the term "machine-readable medium" should be considered to include, but is not limited to, solid-state memory, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, such as semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

[0119] Transmission medium

[0120] The instructions 1324 may further be sent or received over a communication network 1326 using a transmission medium. The instructions 1324 may be sent using a network interface device 1320 and any of a number of well-known transmission protocols (e.g., HTTP). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet, a mobile phone network, a plain old telephone service (POTS) network, and wireless data networks (e.g., WiFi and WiMax networks). The term "transmission medium" shall include any tangible medium that is capable of storing, encoding, or carrying instructions for execution by a machine, and includes digital or analog communication signals or other intangible media that facilitate transmission of such software.

[0121] Although the embodiments have been described with reference to specific exemplary embodiments, it is apparent that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the present disclosure. Therefore, the description and drawings should be considered illustrative rather than restrictive. The drawings forming part of this document show specific embodiments in which the present subject matter can be practiced by way of illustration rather than limitation. The illustrated embodiments are described in sufficient detail to enable a person of ordinary skill in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, so that structural and logical substitutions and changes may be made without departing from the scope of protection of the present disclosure. Therefore, this detailed description should not be construed as restrictive, and the scope of protection of the various embodiments is limited only by the appended claims and the full scope of equivalents to which these claims are entitled.

[0122] Although specific embodiments have been illustrated and described herein, it should be understood that any arrangement designed to achieve the same purpose may replace the specific embodiments shown. The present disclosure is intended to cover any and all modifications or variations of the various embodiments. Combinations of the above embodiments and other embodiments not specifically described herein will be apparent to those of ordinary skill in the art upon reading the above description.

Claims

1. A computer-implemented method, wherein include: Detecting, by a computer system including a memory and at least one hardware processor, that a first group of one or more messages having a first content has been sent from a first computing device of a first user to a second computing device of a second user; determining, by the computer system, a plurality of candidate replies based on the first content of the one or more messages of the first group; The computer system selects a plurality of smart replies from the plurality of candidate replies using a pedigree graph data structure and at least one diversity rule, the pedigree graph data structure comprising a concept tree from a root node to a plurality of leaf nodes, wherein there is at least one intermediate node between the root node and each of the plurality of leaf nodes, each of the plurality of smart replies is represented by a corresponding leaf node in the plurality of leaf nodes in the pedigree graph data structure, the selecting the plurality of smart replies comprising: based on the at least one diversity rule, omitting at least one of the plurality of candidate replies from being included in the plurality of smart replies when selecting, the at least one diversity rule limiting the number of the plurality of smart replies having a common parent node; and The computer system causes each of the selected plurality of smart replies to be displayed as a corresponding selectable user interface element on the second computing device of the second user.

2. The computer-implemented method of claim 1 , further comprising: include: receiving, by the computer system from the second computing device, a user selection of one of the plurality of smart replies; as well as In response to the receiving of the user selection, a second message including the selected smart reply from the plurality of smart replies is sent by the computer system to the first computing device.

3. The computer-implemented method of claim 2, further comprising: include: In response to sending the second message including the selected smart reply from among the plurality of smart replies to the first computing device, the computer system selects, from among a plurality of candidate follow-up contents, a plurality of smart follow-up contents, the selection of the plurality of smart follow-up contents being based on at least one of: the selected smart reply from among the plurality of smart replies and the first content of the one or more messages of the first group; as well as The computer system causes each of the selected plurality of intelligent follow-up contents to be displayed as a corresponding selectable user interface element on the second computing device of the second user.

4. The computer-implemented method of claim 3, in, The selection of the plurality of intelligent subsequent contents includes: The plurality of candidate follow-up contents are determined by the computer system based on at least one of: a selected smart reply from among the plurality of smart replies and the first content of the one or more messages of the first group; and The computer system uses the genealogy graph data structure and the at least one diversity rule to select the multiple intelligent subsequent contents from the multiple candidate subsequent contents, wherein each of the multiple intelligent subsequent contents is represented by a corresponding leaf node among the multiple leaf nodes in the genealogy graph data structure, and the selection of the multiple intelligent subsequent contents includes: based on the at least one diversity rule, omitting at least one of the multiple candidate subsequent contents from being included in the multiple intelligent subsequent contents during selection, and the at least one diversity rule limits the number of common parent nodes in the multiple intelligent subsequent contents.

5. The computer-implemented method of claim 3, further comprising: include: receiving, by the computer system from the second computing device, another user selection of one of the plurality of smart follow-up contents; as well as In response to the receiving of the another user selection, a third message including the selected intelligent follow-up content from the plurality of intelligent follow-up contents is sent by the computer system to the first computing device.

6. The computer-implemented method of claim 1, in, The first content of the first group of one or more messages includes text.

7. The computer-implemented method of claim 1, in, Each of the plurality of smart replies includes text.

8. The computer-implemented method of claim 1, in, The computer system includes a remote server.

9. The computer-implemented method of claim 1, in, The computer system includes the second computing device.

10. A system for generating intelligent replies, include: at least one hardware processor; as well as A non-transitory machine-readable medium containing a set of instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising: detecting that a first group of one or more messages having a first content has been sent from a first computing device of a first user to a second computing device of a second user; determining a plurality of candidate replies based on the first content of the one or more messages of the first group; Selecting a plurality of smart replies from the plurality of candidate replies using a pedigree graph data structure and at least one diversity rule, the pedigree graph data structure comprising a concept tree from a root node to a plurality of leaf nodes, wherein there is at least one intermediate node between the root node and each of the plurality of leaf nodes, each of the plurality of smart replies is represented by a corresponding leaf node in the plurality of leaf nodes in the pedigree graph data structure, the selecting the plurality of smart replies comprising: omitting at least one of the plurality of candidate replies from being included in the plurality of smart replies when selecting based on the at least one diversity rule, the at least one diversity rule limiting the number of the plurality of smart replies having a common parent node; and Each smart reply of the selected plurality of smart replies is caused to be displayed as a corresponding selectable user interface element on the second computing device of the second user.

11. The system according to claim 10, in, The operations also include: receiving, from the second computing device, a user selection of one of the plurality of smart replies; and In response to the receiving of the user selection, a second message including the selected smart reply from the plurality of smart replies is sent to the first computing device.

12. The system according to claim 11, in, The operations also include: In response to sending the second message including the selected smart reply from among the plurality of smart replies to the first computing device, selecting a plurality of smart follow-up contents from a plurality of candidate follow-up contents, wherein the selection of the plurality of smart follow-up contents is based on at least one of: the selected smart reply from among the plurality of smart replies and the first content of one or more messages of the first group; and Each of the selected plurality of intelligent follow-up contents is caused to be displayed as a corresponding selectable user interface element on the second computing device of the second user.

13. The system according to claim 12, in, The selection of the plurality of intelligent subsequent contents includes: Determining the plurality of candidate follow-up contents based on at least one of: a selected smart reply from among the plurality of smart replies and the first content of the one or more messages of the first group; and Using the genealogical graph data structure and the at least one diversity rule, the multiple intelligent subsequent contents are selected from the multiple candidate subsequent contents, wherein each of the multiple intelligent subsequent contents is represented by a corresponding leaf node among the multiple leaf nodes in the genealogical graph data structure, and the selection of the multiple intelligent subsequent contents includes: based on the at least one diversity rule, omitting at least one of the multiple candidate subsequent contents and not including it in the multiple intelligent subsequent contents when selecting, and the at least one diversity rule limits the number of the multiple intelligent subsequent contents having a common parent node.

14. The system according to claim 12, in, The operations also include: receiving from the second computing device another user selection of one of the plurality of smart follow-up contents; and In response to the receiving of the another user selection, a third message including the selected smart follow-up content from the plurality of smart follow-up contents is sent to the first computing device.

15. The system according to claim 10, in, The first content of the first group of one or more messages includes text.

16. The system according to claim 10, in, Each of the plurality of smart replies includes text.

17. The system according to claim 10, in, The at least one hardware processor and the non-transitory machine-readable medium are located on a remote server.

18. The system according to claim 10, in, The at least one hardware processor and the non-transitory machine-readable medium are located on the second computing device.

19. A non-transitory machine-readable medium comprising a set of instructions that, when executed by at least one hardware processor, cause the processor to perform operations, the operations include: detecting that a first group of one or more messages having a first content has been sent from a first computing device of a first user to a second computing device of a second user; determining a plurality of candidate replies based on the first content of the one or more messages of the first group; A plurality of smart replies are selected from the plurality of candidate replies using a pedigree graph data structure and at least one diversity rule, the pedigree graph data structure comprising a concept tree from a root node to a plurality of leaf nodes, wherein there is at least one intermediate node between the root node and each of the plurality of leaf nodes, each of the plurality of smart replies is represented by a corresponding leaf node in the plurality of leaf nodes in the pedigree graph data structure, the selecting the plurality of smart replies comprising: based on the at least one diversity rule, omitting at least one of the plurality of candidate replies from being included in the plurality of smart replies when selecting, the at least one diversity rule limiting the number of common parent nodes in the plurality of smart replies; as well as Each smart reply of the selected plurality of smart replies is caused to be displayed as a corresponding selectable user interface element on the second computing device of the second user.

20. The non-transitory machine-readable medium of claim 19, in, The operations also include: receiving, from the second computing device, a user selection of one of the plurality of smart replies; and In response to the receiving of the user selection, a second message including the selected smart reply from the plurality of smart replies is sent to the first computing device.