Personalized conversational recommendations by assistant systems
In one embodiment, a method includes receiving a user request from a client system associated with a user, generating a response to the user request which references one or more entities, generating a personalized recommendation based on the user request and the response, wherein the personalized recommendation references one or more of the entities of the response, and sending instructions for presenting the response and the personalized recommendation to the client system.
1. A method comprising, by one or more computing systems:
receiving, from a client system associated with a user during a first dialog session, a first user request associated with a first domain;
generating a first response to the first user request, wherein the first response references one or more entities associated with the first domain;
sending, to the client system, instructions for presenting the first response during the first dialog session;
generating, by a recommendation module grounding on a memory graph of user memory associated with the first user, a first personalized recommendation based on the first user request and the first response, wherein the first personalized recommendation references one or more of the entities of the first response, and wherein the referenced one or more of the entities are associated with the first domain; and
sending, to the client system, instructions for presenting the first personalized recommendation during the first dialog session.
2. The method of claim 1 , further comprising:
determining, based on a natural-language understanding (NLU) module, one or more intents and one or more slots associated with the first user request.
3. The method of claim 2 , further comprising:
determining, based on the one or more intents and the one or more slots, that the first user request comprises a request for a recommendation associated with one or more of the one or more entities of the first response.
4. The method of claim 1 , further comprising:
determining, based on a proactive dialog policy, that a recommendation can be provided to the user based on one or more of contextual information associated with the first user request or a user preference associated with the user.
5. The method of claim 4 , wherein generating the first personalized recommendation comprises:
determining, based on the proactive dialog policy, an action for requesting the recommendation from the recommendation module;
sending the action to the recommendation module; and
receiving the first personalized recommendation from the recommendation module.
6. The method of claim 1 , wherein the user memory comprises episodic memory and general memory of the user, wherein the episodic memory is based on historical events associated with the user, and wherein the general memory is based on aggregated user preferences from historical interactions between the user and the one or more computing systems.
7. The method of claim 1 , wherein the memory graph comprises a plurality of nodes, wherein the plurality of nodes comprise a node corresponding to the user and one or more nodes corresponding to one or more entities, wherein the node corresponding to the user and each of the one or more nodes corresponding to the one or more entities are connected by an edge indicating a relationship between the user and the respective entity, and wherein each of the one or more nodes corresponding to the one or more entities is further connected to one or more slots by one or more edges, respectively.
8. The method of claim 1 , wherein generating the first personalized recommendation is further based on one or more of a knowledge graph, a user preference, or a sentiment signal associated with the first user request.
9. The method of claim 1 , further comprising:
calculating a confidence score for the first personalized recommendation.
10. The method of claim 9 , wherein the confidence score is lower than a threshold score, and wherein the first personalized recommendation is associated with an explanation for the recommendation.
11. The method of claim 10 , wherein the explanation is generated based in part on the user memory associated with the user.
12. The method of claim 1 , wherein the first personalized recommendation is associated with a follow-up query.
13. The method of claim 12 , wherein the follow-up query comprises one or more of:
a request for a confirmation of one or more entities associated with the first personalized recommendation from the user; or
a request for additional information from the user.
14. The method of claim 1 , further comprising:
receiving, from the client system, a second user request responsive to the first personalized recommendation.
15. The method of claim 14 , further comprising:
generating a second personalized recommendation based on the second user request, wherein the second personalized recommendation references one or more entities associated with the second user request.
16. The method of claim 15 , wherein the second user request is associated with a sentiment signal, and wherein generating the second personalized recommendation is further based on the sentiment signal.
17. The method of claim 14 , wherein the second personalized recommendation is associated with a second domain that is different from the first domain.
18. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
receive, from a client system associated with a user during a first dialog session, a first user request associated with a first domain;
generate a first response to the first user request, wherein the first response references one or more entities associated with the first domain;
send, to the client system, instructions for presenting the first response during the first dialog session;
generate, by a recommendation module grounding on a memory graph of user memory associated with the first user, a first personalized recommendation based on the first user request and the first response, wherein the first personalized recommendation references one or more of the entities of the first response, and wherein the referenced one or more of the entities are associated with the first domain; and
send, to the client system, instructions for presenting the first personalized recommendation during the first dialog session.
19. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:
receive, from a client system associated with a user during a first dialog session, a first user request associated with a first domain;
generate a first response to the first user request, wherein the first response references one or more entities associated with the first domain;
send, to the client system, instructions for presenting the first response during the first dialog session;
generate, by a recommendation module grounding on a memory graph of user memory associated with the first user, a first personalized recommendation based on the first user request and the first response, wherein the first personalized recommendation references one or more of the entities of the first response, and wherein the referenced one or more of the entities are associated with the first domain; and
send, to the client system, instructions for presenting the first personalized recommendation during the first dialog session.