I took a first look at deep learning for question answering systems.
Before that, I share some news on AU in Europe, thoughts on UI and innovation, and point out a useful Revit API feature for converting a Hermite spline to Bezier:
- Autodesk University in London
- Rules of thumb for change agents
- Invisible user interfaces
- Conclusions from lexical analysis of top news stories
- Converting a Revit Hermite spline to Bezier or NURBS
- Lots of literature on deep learning
AU London is coming to Tobacco Dock, London, E1 on June 21-22, 2017.
The first English speaking Autodesk University in Northern Europe!
The Call for Papers is already live and is closing very soon, on January 20, 2017.
Please submit a class paper on your area of expertise.
If you have any questions, please reach out to the AU London Team.
Herb Shepard shares eight rules of thumb for change agents that I think also apply very well to the art and craft of software development:
- Stay alive.
- Start where the system is.
- Never work uphill.
- Don't build hills as you go.
- Work in the most promising arena.
- Build resources.
- Don't over-organize.
- Don't argue if you can't win.
- Play God a little.
- Innovation requires a good idea, initiative and a few friends.
- Load experiments for success.
- Light many fires.
- Keep an optimistic bias.
- Capture the moment.
These aphorisms are not so much bits of advice as things to think about when you are being a change agent, a consultant, an organization or community development specialist – or when you are just being yourself trying to bring about something that involves other people.
Herb Shepard was a pioneering thinker in the Organization Development movement, founded and directed the first doctoral program in Organization Development at Case Western, developed a residency in administrative psychiatry at Yale University School of Medicine, and was also President of The Gestalt Institute of Cleveland. In management consulting, his clients included some of the biggest firms in the world, as well as many federal government departments of the United States and Canada.
A short note to point out this interesting article on how invisible interfaces are going to transform the way we interact with computers.
Another short note to point out that it is possible to draw useful conclusions from pure statistical lexical analysis: lessons learned from analysing the top 252 stories of 2016.
Question: I'm trying to find a way to convert a Hermite Spline to a Bezier Spline. Take a flexible pipe (or duct) as an example:
It seems Autodesk must have conversion routines in the core as DWG export provides a NURBS curve.
Answer: Check the Revit 2017 API. It introduces
NurbSpline methods for
converting a Hermite spline to
- Create (HermiteSpline) – create a new geometric
NurbSplineobject from a
- CreateCurve (HermiteSpline) – create a new geometric
Curveobject by converting the given
HermiteSpline. The created curve may be a
NURBSplineor a simpler curve such as line or arc.
As I mentioned last month, I would like to experiment with an automated system to answer the most common recurring questions on the Revit API.
The most inspiring motivation out there for me so far is the deep learning based teaching assistant Jill Watson implemented by Professor Ashok Goel, who teaches Knowledge Based Artificial Intelligence (KBAI) at the Georgia Tech School of Interactive Computing.
Here is a quote from a pre-Jill paper by Ashok Goel et al on Using Watson for Enhancing Human-Computer Co-Creativity in which Jill is mentioned as work in progress:
We are presently exploring the use of Watson as a cognitive system for answering frequently asked questions in an online class. Goel ... teaches an online course ... as part of Georgia Tech’s Online MS in CS program. The online course uses Piazza as the forum for online class discussions. The classroom discussions on the Piazza forum in the KBAI course tend to be both extensive and intensive, attracting about ~6950 and ~11,000 messages from ~170 and ~240 students in the Fall 2014 and the Spring 2015 classes, respectively. We believe that the large numbers of messages in the discussion forums are indicative of the strong motivation and deep engagement of the students in the KBAI classes. Nevertheless, these large numbers also make for significant additional work for the teaching team that needs to monitor all messages and answer a good subset of them. Thus, using the questions and answers from the Fall 2014 and Spring 2015 KBAI classes, we are developing a new Watson-powered technology to automatically answer frequently asked questions in future offerings of the online KBAI class.
The result was successful and inspiring, cf. Ashok's 20-minute presentation about a teaching assistant named Jill Watson at TEDx in San Francisco:
Jill Watson, round three, is coming up now as the Georgia Tech course prepares for its third semester with virtual teaching assistants.
I spent some time yesterday browsing the Internet on this topic and discovered an overwhelming amount of interesting information, most of which I just skimmed over.
Here is the table of contents, mainly for my personal use and future reference:
- Natural language understanding including interesting facts on Google Translate
- What Watson is about
- Is Big Data Taking Us Closer to the Deeper Questions in Artificial Intelligence? – long conversation with Gary Marcus in April 2016.
- Deep Learning Winter School References
- Deeplearning4j – commercial-grade, open-source, distributed deep-learning library written for Java and Scala.
- List of open-source deep learning frameworks
- Facebook Open-Sources Deep Learning Project Torchnet
- FAIR open sources deep-learning modules for Torch
- RNN – recurrent neural network
- Deep Character-Level Neural Machine Translation based on Theano and Blocks in Python.
- Watson natural language question answering computer system
- IBM Watson
- Watson Developer Cloud Node.js SDK
- Question answering
- OpenEphyra, an open framework for question answering (QA).
- Sempre – Semantic Parser with Execution.
- Qanus Question-Answering by NUS, National University of Singapore.
- Adam QAS
- Yodaqa – A Question Answering system built on top of the Apache UIMA framework → web site.
- Uncc2014watsonsim – Open-domain question answering system from UNC Charlotte.
- Domain Specific Question Answering System: Closed-Domain QA System: Closed-domain question answering deals with the questions under a specific domain, and can be seen as an easier task because NLP systems can exploit domain-specific knowledge frequently formalized in ontologies. It has very high accuracy but requires extensive language processing and limited to one domain. The example of such a system is medicines or automotive maintenance.
- A Question Answering System on Domain Specific Knowledge with Semantic Web Support – for Slovenian.
- Creating a Natural Language Question Answering System with IBM Watson provides some practical implementation guidance and real-world advice.
- Creating Domain-specific Question Answering Systems – In short, the typical approach people took: (i) build a knowledge base from domain specific articles and/or Wikipedia (ii) index these articles with lucene or other IR system (iii) for each question/answer pair, retrieve most relevant articles and use them as features (iv) build a classifier using these features to classifying whether an answer is correct or incorrect.
- Approaches for implementing Domain-specific Question answering Systems – IR == Information retrieval, Ontology based, Machine learning; all the best systems (e.g., IBM Watson) use a hybrid approach.
The last three are most practical, down to earth and provide quick and easily accessible introductions including practical implementation aspects.
My next moves might be registering for an IBM Watson account and starting to assemble test cases and a base data set for training.