Wednesday, June 29, 2011

Greasemonkey, jQuery and Strophe

Greasemoney is a Firefox add-on that allows third-party applications to add functionality to any site. With javascript libraries such as jQuery, it becomes really easy for a newbie to do this now. In fact, there are thousands of example Greasemonkey scripts to learn from today.

I needed to connect a conversational recommendation engine that recommends relevant content including people for domain specific conversations. When recommending people for different conversations, there is not much transactional value unless the system can bi-directionally ping the users (the recommended user should also get notified about the conversation so that she can possibly respond to the users in the conversation).

Trying to implement this functionality for a third party site, I found this neat XMPP library called Strophe. With the new HTML5 CORS specification, it becomes straightforward to use this client-side IM library for Jabber notifications on external websites using scripts. I had to add just a couple of lines in my apache server comfiguration to enable this feature. I will be updating the scripts online (with notifications) here.

When Information Technologies meet Communication Technologies, a new dimension is added to the existing IT space that allows realization of Vannevar Bush's 'As we may think' ideas. For example, I used Google+ ysterday which seems to have twined a nice combination of these two technologies together (ICT) with feeds from various networks and a logical integration with mail, chat, buzz and blog servers. Google wave failed initially for many reasons such as arriving too early in time and poor interface(with becoming an Apache project, I am sure there will be many cool applications coming out using the technology) but I thought it was a very cool project.

Thanks to open source technologies and foundations (eg. Apache) that have made available tremendous high quality projects and resources available to community to build up on and do creative stuff with it.

Friday, June 17, 2011

Cobot: Modeling long term user activity with time

What are users getting interested in with time?
How are the interests changing/evolving?

These are two important questions Cobot tries to ask and answer. More specifically, Cobot uses domain specific dictionaries (for Health and Education domains) to extract concepts from user's conversations and deciphers user's short term and long term interests based on her conversations.

Here, you will see a couple of LTM (Long term model) graphs for a user asking questions on a site about Math topics in March this year snapshot-ed every 3 days (or more depending on activity).

In these graphs, you will see some new terms getting added, and associations between terms (based on multiple co-occurrences in STM) developing and decaying with time.

What We are trying to do is to heuristically infer some parameters like window for snapshot based on activity(related to user's short term and long term memories), learning and unlearning rates (how fast are users learning and unlearning things - related to semantic memory) for every user, etc. This modeling (done well) eventually helps Cobot to pick right users for recommending in different conversations. (We do a Spreading Activation search in user's LTM graphs mixed with other techniques for user recommendation.)

(There is a similar vector space based model for modeling user's STM (short term model) interests as well in Cobot.)

Thursday, June 02, 2011


How should news look like for both publishers and consumers? Here is one quick sketch of a news publishing/consumption prototype.

There are some neat startups in this arena (like zite, flipboard, gabacus and ctrl-news) that blend together amazing UI with great backend filtering and communication technologies.

Monday, March 14, 2011

CoC Research Day Lightening Talk

I presented a 2 minute 'Lightening' overview of my research today at the CoC Research Day. There were some amazing presentations by students from different schools of CS! Overall, it was lots of fun to see other nice presentations and present my work!

Here's my 2 minute Lightening Overview of Cobot:

I also presented an overview poster of the Cobot project. Here's the poster:

Tuesday, March 08, 2011

Query Generation from Natural Language Text

(The above sentences are extracted from WebMD forum discussions that are of Speech Act type 'disclose')

How does a Computer make sense out of People's Natural Language conversations so that it can augment the conversational experience by bringing in relevant information? As it turns out, even the problem of generating meaningful and contextual queries from conversations isn't trivial, especially if you want to avoid deep NLP (parsing, SRL) techniques (for reasons such as fast response times given the resources).

This diagram shows a part of Cobot conversational search system that bootstraps on ontological terms, dictionary entries and shallow Chunk phrases to build possible query term candidates using Augmented Transition Networks(ATNs). ATNs are recursive Finite State Machines that consult other machines during intermediate state steps for walking over words, chunks and sentences to extract information for which the machines have been encoded.

The advantages of using these machines is that we can easily add states and other machines to add complex extraction patterns from text. However, this makes the machines hard to manipulate in future as the complexity of encodings increases.

I am extracting the following simple templates from sentences to extract some candidates:

VP PP ChunkNP-DictTerm (eg. start with alcoholism)

VP ChunkNP-DictTerm PP NP VP NP (find a psychiatrist with experience treating adult ADHD and substance abuse problems.)

VP ChunkNP-DictTerm (quit smoking)

After generating several possible query candidates, the Snippet Analyzer stage determines the Speech Acts in sentences and applies several Query Generation Strategies to compose queries for different search engines and other document repositories. For example, if a user has asked a Question, the Query Generator applies question based templates to generate some queries. Similarly, if a user has given some advice to some other user in the conversation, the engine tries to generate queries to check the validity of advice and how to act on the advice, for example.

Friday, January 21, 2011

Intentional analysis of medical conversations for community engagement

With an explosion in proliferation of user-generated content, the productivity of search is decreasing and quality of readily available online content is deteriorating. There is an increasing need for intelligent community based systems that can understand community conversations and proactively connect users together based on community information need and interests. We describe our approach based on modeling community utterances to proactively target the community for exchange of questions and answers. We envision a system that automatically encourages user engagement and participation by prompting questions and asking to suggest answers based on user’s and community activity levels. In this paper, we analyze health forum conversations from and learn to classify them in different speech acts using Verbal Response Modes (VRM) theory. We describe our approach for modeling an intelligent community to engage participants based on observations from our analysis.

Short Paper: Saurav Sahay, Hua Ai and Ashwin Ram. Intentional analysis of medical conversations for community engagement. Flairs 2011, Palm Beach, Florida.

Socio-Semantic Health Information Access

We describe Cobot, a mixed initiative socio-semantic conversational search and recommendation system for finding health information. With Cobot, users can start a real time conversation about their health concerns. Cobot then connects relevant users together in the conversation also providing contextual recommendations relevant to the conversation. Conventional search engines and content portals provide a solitary search experience inundating the health information seeker with a hoard of information often confusing and frustrating them. Cobot brings relevant healthcare information directly or through other users without any search through natural language conversation.

Read the paper: Saurav Sahay and Ashwin Ram. Socio-Semantic Health Information Access, AAAI 2011 Spring Symposium, AI and Health Communication Track.