B. Rex: a dialogue agent for book recommendations

We present B. Rex, a dialogue agent for book recommendations. B. Rex aims to exploit the cognitive ease of natural dialogue and the excitement of a whimsical persona in order to engage users who might not enjoy using more common interfaces for finding new books. B. Rex succeeds in making book recommendations with good quality based on only information revealed by the user in the dialogue.


Introduction
There are many ways to discover a book. Goodreads and Amazon, two popular websites, have user interfaces that are packed full of book recommendations and reviews. Although this mode of presentation serves many users well, younger users like children might benefit more from an interface that is less dense, and that attempts to extrinsically motivate users to engage with the book recommendation task. To investigate these issues, we created a book recommendation dialogue agent, B. Rex.
There are two aspects of B. Rex's design that make it more suitable for younger users. First, because B. Rex is a dialogue agent, there is less opportunity for users to experience the decision fatigue that can come with a traditional book recommendation interface. Second, B. Rex motivates users to engage with the task by using the persona of an intelligent dinosaur who spends his time reading novels in a secret lab. These two features-the use of recommendation in a text medium, and a whimsical persona-are intended to ultimately make younger users more successful at succeeding at the book recommendation task.

Related Work
Book recommendation is comparable to other traditional recommendation domains which have already been explored in the dialogue systems literature, such as hotel or restaurant recommendations, e.g. Ultes et al. (2017).
Within information retrieval, Bogers and Koolen (2018) approach book recommendation with Narrative-Driven Recommendation (NDR), using user narratives from the online book discussion forums as natural language book recommendation requests. Kang et al. (2017) studies user queries for movie recommendations, highlighting not only the range of linguistic variation in such a recommendation task, but also how Wit.ai 1 can effectively tackle NLU in a recommendation task: their slots were retrieved from user input reliably. (B. Rex also uses Wit.ai.) We are aware of two dialogue-based book recommendation systems. Pan Macmillan Publishing has developed a book recommendation chatbot for Facebook Messenger 2 , where users are presented with different questions to narrow down a set of book recommendations. In this system-driven interaction, users are presented with a set of fixed categories to choose from, leaving little room for self-expression. Author Bot, created by BAM Mobile 3 , offers a personalized book exploration experience by acting like an author or a character in a book that can discuss the plot, characters, and backstory. While this system does not recommend books, it shares a similar persona element implemented in B. Rex.
B. Rex utilizes the best results from these systems. As far as book recommendation dialogue agents go, B. Rex is novel in that it does not constrain user input and also completely allows userinitiated dialogue flow. This is important because systems that do not allow the user any initiative may be efficient in bringing the task to a conclusion, but they are not as engaging or enjoyable for the user as they could be.
3 System Overview B. Rex 4 was implemented in Python. Users interact with B. Rex through a web browser. Natural language understanding was handled using Wit.ai, and we relied on Goodreads 5 for information about books. Handwritten Python string templates were used for natural language generation. Figure 2 provides an overview of the B. Rex system architecture. Freetext user input was processed with Wit.ai. Based on the value of the intent slot returned by Wit.ai, the dialogue manager selects an intent handler, a module that is specifically written to handle that intent. For instance, the greet intent handler is selected when the value of intent is greet, i.e. when Wit.ai detects that the user is saying hello to B. Rex. Then, output is planned, generated, and presented to the user. 4 Source code for B. Rex is accessible at https://github.com/georgetown-dialogue-systems-2018/brex, demo at https://youtu.be/3Z1fBu5PMzc 5 https://goodreads.com

Wit.ai
Wit.ai is a platform that provides a pre-trained, general-purpose natural language understanding (NLU) system and lets developers tailor it to their domain. Because the system is pre-trained, only a very small amount (on the order of hundreds of labeled inputs) of training data is needed to get a domain-specific model. Further, Wit.ai is able to accommodate slots that are unbounded, which is a necessity in the book recommendation domain, since exhaustively listing all authors or books is not feasible 6 . Beyond slot-filling, Wit.ai also supports classification of entire utterances, which B. Rex uses to determine what a user's intent is for a given message. This feature was useful, since intent is harder to capture with slots alone.

Intent Handlers
B. Rex has seven intent handlers to respond to user intents. The dialogue manager selects the intent handler that corresponds to the value of intent. Once the dialogue manager has selected the intent handler, it hands execution off to it.
The intent handler then plans and generates a text response using this information as well as data retrieved from Goodreads on an as-needed basis. B. Rex uses the Goodreads API 7 to retrieve information about authors, genres, books, and reviews on Goodreads. To get information about a book, user reviews are put through a text summarizer 8 to ensure they are no larger than a screenful.
After all data needed for building a response has been retrieved, the NLG component for each intent handler uses string templates to generate the system's text. Different templates are written for each intent handler, and around 100 templates were used in total. The text response is passed through the manager to the user interface.

Extrinsic Motivation: B. Rex's Persona
A major motivation for the present work is the supposition that our target demographic, younger users, would be engaged by extrinsic motivators, i.e., reasons to engage with the system that don't have to do with the task itself. We provide this extrinsic motivation at the level of the interface with B. Rex. This primarily comes in the form of a whimsical persona: B. Rex, by hinting at fantastic and interesting bits about his life, drives users to ask questions, building engagement with the system and getting them closer to completing the task.
Before preparing NLG template strings, we created a brief biosketch of B. Rex's life, personality, and preferences. Template strings referred to the biosketch to showcase B. Rex's persona, and so that our exposition of his persona would be internally consistent and detailed enough to be lucid and believable. B. Rex sprinkles in bits about his 8 :sumy https://pypi.org/project/sumy/ life when he is chatting with the user about the task, and he is also capable of talking about his favorite books and his life. We followed the findings of Nasihati Gilani et al. (2016) in having B. Rex respond as if he were really a dinosaur behind a keyboard, instead of a virtual dinosaur created only for the purposes of this system. We maintained a whimsical tone in various ways, which included having a randomized stock of alliterative, dinosaur-themed book reviewer names (e.g., "Roger Rajasaurus") and featuring a cartoonish sketch of B. Rex himself.

Evaluation
Similar to Griol and Callejas (2013), we gave a survey (n = 8) to discover strengths and weaknesses of our system. The results are given in Table 1. These results show that B. Rex was usually successful in recommending a book to users. In practice, some users had difficulties getting a book recommendation from B. Rex, but the main difficulties pertained to Wit.ai not recognizing contextless slots in user input, or certain genres or authors (a database limitation).
As for the quality of B. Rex's recommendations, according to survey responses, it was for most users just slightly worse than a recommendation from a friend. This level of quality seemed somewhat surprising given B. Rex's disadvantages compared to a book recommendation system like Amazon or Goodreads, since B. Rex only knows what the user has said, while Amazon and Goodreads have a better model of users that has been constructed from much richer data sources.
In summary, results suggest that the majority of user dissatisfaction had to do with poor understanding and relatively poor recommendation quality. These are both problems that could be easily solved by a commercial system with more training data and more user data, respectively 9 . As for successes, many of the users expressed their amusement with the B. Rex persona, and specifically mentioned their satisfaction with the alliterative dinosaur-reviewer names. vice. Participants will be introduced to B. Rex and be invited to input any requests or questions to begin the book recommendation task. The demonstration will highlight B. Rex's ability to handle different user questions, the personality of the system, and ability to collaborate with the user in making an efficient and satisfactory recommendation. A real-time display will visualize the dialogue for observers.

Conclusion and Future Work
B. Rex demonstrates the utility of natural language interfaces and fictional dialogue agent personas to make book recommendations more engaging for users who are less well served by the prevailing interfaces. B. Rex succeeded in recommending books with good quality to users using no information about them other than their messages.
We expect that our approach should generalize to other tasks beyond book recommendation, wherever users find existing interfaces overwhelming or unengaging.
There are a few immediate questions that would need to be addressed by extensions to this work. First, there are many other ways users want to discover books. Users want to be able to find books that are similar to a certain book, that are by an author that is similar to a certain author, or that were published within a certain year range. Second, an ideal book recommendation dialogue system must be able to answer high-level questions about a book. Users want to ask interpretive questions about books, like "does it have a happy ending?" or "does it pass the Bechdel test?".
For the former, a database with richer data and more sophisticated querying strategies would do much to solve these problems. The latter problem is more difficult to solve. A fruitful way to tackle these questions might be to aggregate user reviews and use methods from information retrieval and question answering systems to build a response.