Build a Question Answering System Overnight

@ ESWC 2018

With this tutorial, we aim to provide the participants with an overview of the field of Question Answering, insights into commonly faced problems, its recent trends and developments. At the end of the tutorial, the audience would have hands-on experience of developing two working QA systems- one based on rule-based semantic parsing, and another, a deep learning based method. In doing so, we hope to provide a suitable entry point for the people new to this field, and ease their process of making informed decisions while creating their own QA systems.
Session Details
Introduction to Question Answering

The primary object of this session would be to give an overview of QA over knowledge graphs. This will include common source KGs, the datasets used to evaluate QA systems, an overview of the prominent types of approaches, and familiarizing the audience with the sub-tasks (like entity linking, predicate linking) and the terminology used in the community. We will then introduce the basic concepts of NLP needed for semantic parsing based QA systems (for the next session.).

Hands-On: Semantic Parsing based QA using QANARY
Requirements: java; stardog

In this hands-on session, we will build our first QA system using QANARY - a methodoloy for choreographing QA pipelines distributed over the Web. We will also demonstrate how to build components for QANARY. In the process, we will introduce different concepts of Semantic Parsing relevant for QA.

Introduction to Deep Learning for QA

In this session, we will have a more specific discussion of different approaches for QA, based on a selection of recent works in the field. This will also include some less traditional approaches like rule learning, and question paraphrasing, using textual evidence. Towards the end, we will introduce the basics of Deep Learning, and the prerequisites for the next hands-on session.

Hands-On: Deep Learning based Simple QA
Requirements: [OPTIONAL] linux distro; python; numpy; pytorch

We will give a practical introduction for the development and training of a simple question answering system using neural networks, focusing on the implementation of a learning-to-rank approach for QA in PyTorch. First, we will show how to write a basic neural model for ranking questions, how to prepare training data and how to train and evaluate the model. Then we will discuss possible improvements to the model, such as handling out-of-vocabulary words and better predicate representation.