# US 11,308,450 B2 · Generating personalized smart responses

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,450 B2
- Document ID: US11308450B2
- Status: Granted
- Kind: B2
- Application number: 15/964,585
- Filed: 2018-04-27
- Published: 2019-10-31
- Granted: 2022-04-19
- Earliest claimed: 2018-04-27
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Bing Zhao; Bo Long
- Web page: https://patentgrep.com/patent/US11308450B2

## CPC

- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- G06F 16/335: Filtering based on additional data, e.g. user or group profiles (filtering in web context G06F16/9535, G06F16/9536)
- G06F 16/435: Filtering based on additional data, e.g. user or group profiles
- H04L 51/02: using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
- H04L 51/56: Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
- H04L 51/04: Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L 51/52: for supporting social networking services
- 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
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Disclosed are systems, methods, and non-transitory computer-readable media for generating personalized smart responses. A messaging system receives a message transmitted as part of a communication session between a first user and a second user and determines a set of candidate responses for replying to the message. The messaging system filters the set of candidate responses based on a personalized vocabulary for the first user, yielding a set of personalized candidate responses. The personalized vocabulary for the first user is determined based on member profile data associated with the first user. The messaging system determines, based on a set of personalized candidate selection rules, a subset of the candidate responses, yielding a set of recommended responses to the message, and causes the set of recommended responses to be presented on the second client device.

## Claims

### Claim 1

A method comprising:
receiving, from a first client device, a first message transmitted as part of a communication session between a first user associated with the first client device and a second user associated with a second client device, the first user and the second user being members of an online service that facilitates the communication session, the second user being an intended recipient of the first message and the first user being a sender of the first message;
determining, using the first message as input in a statistical model, a set of candidate responses for the second user to reply to the first message in a second message in which the second user is the sender of the second message and the first user is the intended recipient of the second message, the statistical model having been generated based on historical message data transmitted as part of previous communication sessions between a plurality of members of the online service, and the set of candidate responses being a subset of a set of available candidate responses;
filtering the set of candidate responses based on a personalized vocabulary for the second user, yielding a set of personalized candidate responses, the personalized vocabulary for the second user having been determined based on member profile data associated with the second user, wherein filtering the set of candidate responses based on a personalized vocabulary for the second user comprises:
determining a demographic category of the first user; and
filtering the set of candidate responses based on a subset of the personalized vocabulary for the second user that includes keywords commonly used by the second user when communicating with users in the demographic category of the first user;
determining, based on a set of personalized candidate selection rules, a subset of the set of personalized candidate responses, yielding a set of recommended responses to the first message; and
causing the set of recommended responses to be presented in a user interface on a display of the second client device, the set of recommended responses presented along with the first message, the user interface configured to allow for selection of the set of recommended responses to transmit the second message to the first user.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, from the second client device, a user selection of a first recommended response from the set of recommended responses; and
transmitting the first recommended response to the first client device as part of the communication session between the first user and the second user.

### Claim 3 (depends on 1)

The method of claim 1, wherein the personalized vocabulary for the second user is generated by:
analyzing a set of text that was authored by the second user and a set of text that was read by the second user to identify keywords that are commonly used by the second user.

### Claim 4 (depends on 1)

The method of claim 1, wherein the personalized vocabulary for the second user is generated by:
analyzing messages authored by the second user to recipients in a first demographic category to identify keywords that are commonly used by the second user when messaging users in the first demographic category.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
gathering the historical message data transmitted as part of the previous communication sessions;
identifying, from the historical message data, a set of previous messages; and
for each previous message in the set of previous messages, normalizing the respective previous message to replace predetermined terms with placeholders, yielding a set of normalized previous messages.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
identifying a set of unique normalized previous messages from the set of normalized previous messages; and
determining a subset of the unique normalized previous messages that occur in the set of normalized previous messages at least a threshold number of times, yielding the set of available candidate responses.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
for each instance of an available candidate response in the historical message data, identifying a previous message that preceded the respective instance of the available candidate response, yielding a set of preceding previous messages; and
generating the statistical model based on the set of preceding previous messages.

### Claim 8 (depends on 6)

The method of claim 6, further comprising:
for each available candidate response from the set of available candidate responses, assigning the respective available candidate response to one of a plurality of candidate groups based on a meaning of the respective available candidate response.

### Claim 9 (depends on 8)

The method of claim 8, wherein the set of personalized candidate selection rules dictates a maximum number of candidate responses that can be selected from each candidate group.

### Claim 10

A messaging system comprising:
one or more computer processors; and
one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the messaging system to perform operations comprising:
receiving, from a first client device, a first message transmitted as part of a communication session between a first user associated with the first client device and a second user associated with a second client device, the first user and the second user being members of an online service that facilitates the communication session, the second user being an intended recipient of the first message and the first user being a sender of the first message;
determining, using the first message as input in a statistical model, a set of candidate responses for the second user to reply to the first message in a second message in which the second user is the sender of the second message and the first user is the intended recipient of the second message, the statistical model having been generated based on historical message data transmitted as part of previous communication sessions between a plurality of members of the online service, and the set of candidate responses being a subset of a set of available candidate responses;
filtering the set of candidate responses based on a personalized vocabulary for the second user, yielding a set of personalized candidate responses, the personalized vocabulary for the second user having been determined based on member profile data associated with the second user, wherein filtering the set of candidate responses based on a personalized vocabulary for the second user comprises:
determining a demographic category of the first user; and
filtering the set of candidate responses based on a subset of the personalized vocabulary for the second user that includes keywords commonly used by the second user when communicating with users in the demographic category of the first user;
determining, based on a set of personalized candidate selection rules, a subset of the set of personalized candidate responses, yielding a set of recommended responses to the first message; and
causing the set of recommended responses to be presented in a user interface on a display of the second client device, the set of recommended responses presented along with the first message, the user interface configured to allow for selection of the set of recommended responses to transmit the second message to the first user.

### Claim 11 (depends on 10)

The messaging system of claim 10, the operations further comprising:
receiving, from the second client device, a user selection of a first recommended response from the set of recommended responses; and
transmitting the first recommended response to the first client device as part of the communication session between the first user and the second user.

### Claim 12 (depends on 10)

The messaging system of claim 10, wherein the personalized vocabulary for the second user is generated by:
analyzing a set of text that was authored by the second user and a set of text that was read by the second user to identify keywords that are commonly used by the second user.

### Claim 13 (depends on 10)

The messaging system of claim 10, wherein the personalized vocabulary for the second user is generated by:
analyzing messages authored by the second user to recipients in a first demographic category to identify keywords that are commonly used by the second user when messaging users in the first demographic category.

### Claim 14 (depends on 10)

The messaging system of claim 10, the operations further comprising:
gathering the historical message data transmitted as part of the previous communication sessions;
identifying, from the historical message data, a set of previous messages; and
for each previous message in the set of previous messages, normalizing the respective previous message to replace predetermined terms with placeholders, yielding a set of normalized previous messages.

### Claim 15 (depends on 14)

The messaging system of claim 14, the operations further comprising:
identifying a set of unique normalized previous messages from the set of normalized previous messages; and
determining a subset of the unique normalized previous messages that occur in the set of normalized previous messages at least a threshold number of times, yielding the set of available candidate responses.

### Claim 16 (depends on 15)

The messaging system of claim 15, the operations further comprising:
for each instance of an available candidate response in the historical message data, identifying a previous message that preceded the respective instance of the available candidate response, yielding a set of preceding previous messages; and
generating the statistical model based on the set of preceding previous messages.

### Claim 17 (depends on 15)

The messaging system of claim 15, the operations further comprising:
for each available candidate response from the set of available candidate responses, assigning the respective available candidate response to one of a plurality of candidate groups based on a meaning of the respective available candidate response, wherein the set of personalized candidate selection rules dictates a maximum number of candidate responses that can be selected from each candidate group.

### Claim 18

A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a messaging system, cause the messaging system to perform operations comprising:
receiving, from a first client device, a first message transmitted as part of a communication session between a first user associated with the first client device and a second user associated with a second client device, the first user and the second user being members of an online service that facilitates the communication session, the second user being an intended recipient of the first message and the first user being a sender of the first message;
determining, using the first message as input in a statistical model, a set of candidate responses for the second user to reply to the first message in a second message in which the second user is the sender of the second message and the first user is the intended recipient of the second message, the statistical model having been generated based on historical message data transmitted as part of previous communication sessions between a plurality of members of the online service, and the set of candidate responses being a subset of a set of available candidate responses;
filtering the set of candidate responses based on a personalized vocabulary for the second user, yielding a set of personalized candidate responses, the personalized vocabulary for the second user having been determined based on member profile data associated with the second user, wherein filtering the set of candidate responses based on a personalized vocabulary for the second user comprises:
determining a demographic category of the first user; and
filtering the set of candidate responses based on a subset of the personalized vocabulary for the second user that includes keywords commonly used by the second user when communicating with users in the demographic category of the first user;
determining, based on a set of personalized candidate selection rules, a subset of the set of personalized candidate responses, yielding a set of recommended responses to the first message; and
causing the set of recommended responses to be presented in a user interface on a display of the second client device, the set of recommended responses presented along with the first message, the user interface configured to allow for selection of the set of recommended responses to transmit the second message to the first user.
