Children often skip school for multiple reasons nowadays. We intend to help fill the gaps between their skipped education by encouraging them to learn more in their free time at home, in one of the most fun ways! Alexa’s lucid voice modulation and ease of use allow transferring facts in an interesting yet simple manner. Using the Alexa Voice Skills API, we have transformed current state-of-the-art deep learning techniques to present general knowledge for children in the form of questions and answers. These are generated from a corpus collected from various authentic sources available for children-centric information. The content for kids is segregated into various difficulty levels. Parents can easily track their children’s progress using our portal. They can even request adding a new topic: all they need to do is to specify the topic, and it will automatically be scraped and incorporated into Alexa’s model. Children are presented questions based on their topics of interest, and the difficulty of each question is varied based on the child’s performance.
What it does
Kids can trigger the service by saying ALEXA, start ceramic AI. Once this is done, they can request for questions on a particular category X by saying ‘Ask me something on ?’ or questions generated from arbitrary topics by saying ‘Ask me something?’. It is connected with a web-app linked with Amazon OAuth, allowing parents to monitor their children’s performance, and suggests possible improvements in areas. It can also be linked with some incentive, such as credits on Amazon Apps, which further encourages children to use our system often. And it is not just any AI; ceramic AI remembers where the kid left off, if they go away in between or stop playing for some time. Our question generation mechanism has been incorporated with some randomness, so that the questions generated are not in perfect English, and are humorous in many circumstances.
How we built it
We scraped various open source datasets for gathering a holistic corpus for children across all age groups. We then applied a clustering mechanism and ranked similar topics according to their difficulties. For now, we have focussed on 2 age groups - children upto the age of 10, and children in the age group 10 to 13. After getting the difficulty rankings, we segregated our corpus according to the age groups and these difficulty scores - to get topics such as animals, plants and fruits to name a few, for younger kids, while getting more advanced topics such as literature, architecture and famous personalities for older children. To generate questions from the corpus, we used state-of-the-art deep learning tools based on works such as this on neural question generation. The key idea is to use recurrent neural network-based autoencoders with global attention to allow the decoder to focus on particular words while generating a question. We adapted the model to work on sentences rather than to work on paragraphs. The motive behind this was twofold - it allowed us to generate more questions on a small corpus, and the questions generated are easy enough to be answered without any extraneous information. For matching our answers with the answers provided by children, we have used a simple similarity metric of counting the common nouns in both the answer extracted from the corpus, and the answer said by children. For hosting each of our services, we have used Amazon’s OAuth service for authenticating and storing users’ statistics and tested questions. We have two servers running, one handling the previous portion, and the second being the server that communicates with Alexa regarding which question to pose next, and the answer it receives, and all involved computations. We had a small session with children in and just out of the age group to perceive their vocabulary skills in order to modulate Alexa’s input.
Challenges we ran into
- There are hardly any open source encyclopedia available which provide information specifically segregated for various age groups, even though raw textual data is available mostly everywhere, with the primary source being Wikipedia. We had to come up with innovative ways to remove possibly unsuitable information for young children, and to utilize this large corpus in a meaningful manner.
- We had some experience on playing around with Alexa prior to this event, but getting it to work according to our needs was something that we were a bit skeptical about initially. However, thanks to the amazing documentation and tutorials provided by the folks working on Alexa, this turned out to be a very simple task in the end.
- Being older than the age group targeted, our perception about speech was slightly more complex than younger children, which led to our initial models running poorly. We then involved our younger relatives who are in or have just grown out of that phase, and incorporated that information while generating our ground truth to allow for better comprehension. This made our system more robust, and allowed for an improved end-to-end performance.
Accomplishments that we're proud of
- While one of the team members had some prior experience of working with Alexa, as he had linked Alexa with his Raspberry Pi to run his printer through voice commands, we really didn’t have much experience with working with Alexa. Now, we can say with confidence that we built an end-to-end application and improved our Alexa development skills.
- We had to research and understand existing state-of-the-art methods for question generation from unstructured text. Then there was the engineering aspect of it, with all the different libraries and frameworks, and getting them all to work seamlessly.
- Our question generation policy is not perfect; however, this imperfection is humorous on occasions, which would make it much more enjoyable for children. Consider the following excerpt from our corpus : Spanish explorers of the Americas brought potatoes back to Europe in the 1500s. The model gave the following question generated from this text : When did potatoes explore potatoes?
What's next for AlexaCeramic
- We have not yet fully incorporated an interface for parents to easily add topics they would want their child to learn or improve on further. This is intended to be done by saying the name of the topic and allowing the data scraper to automatically fetch and incorporate the relevant data into out model, rather than relying on human intervention to run a script to do this.
- We plan to incorporate a credit based system to incentivize the process of learning. We also intend to have local scoreboards for children to learn and compete against each other.