Thursday, July 19, 2012

Why NLP should be wrapped with knowledge base


I have been working on improve the machine understandability of the Electronic Medical Records (EMR) for past few months. The main goal is to improve the efficiency of the routine activities of the hospitals. Hospital staff has to process thousands of documents to find the qualified patients for certain criteria daily(The heart failure patients who are not given instructions on their diets, activity level, medications, follow up plan etc..), we have not been able to help them in promising manner despite the enormous advancement of the technology.

Recent decisions in healthcare industry have forced people to rethink about their approaches to deal with routine activities. As a result of this, academics have been approached by the industry to solve their problems. This stimulates the current trend of exploring how to leverage the current technology in healthcare domain. Natural Language Processing(NLP), Linguistics, Data Mining, Information Retrieval, Machine Learning and Semantic Web are the frontline technologies being explored on this domain.

Within the project that I have been working on for last few months with motivated industry partner, we are concentrated on understanding EMR documents and perform queries on these documents. The main challenge for this task is the unstructured nature of the EMR documents, only 10%-20% of the EMR data has proper structure. Making the things worse, the unstructured portion of the EMR documents has most of the information that we need to understand to answer the queries accurately. Unfortunately, traditional information retrieval techniques are not capable of accepting this challenge due its inherent nature of the keyword based indexing and searching. The following example will illustrate the complexity of the problem.

Text in EMR: ‘The patient is suffering from hypertension, but he refuses the recurrent of chest pain or shortness of breath. He was suffering from atrial fibrillation during his last visit, but it is resolved.’

The keyword based approach will retrieve this patient for the query which search for ‘patient with atrial fibrillation’. Furthermore, this patient will be in the results for query searching for ‘patients with chest pain’. But the semantics of the sentence convey the opposite.

NLP techniques showed some promise on dealing with these issues. There are few NLP engines which are optimized to deal with these issues. These engines are capable of identifying the concepts in the documents, the negation semantics, detect the temporal aspects to certain extent and convert the unstructured text to structured format. This structured format can be used for the querying purposes. Unfortunately, some of issues remain beyond the reach by NLP techniques as I discuss below.

Knowledge workers have crucial role to play in routine activities of healthcare domain. Significant amount of explicit and implicit knowledge is being used by the healthcare professionals in their routine activities. The subjective and dynamic nature of this knowledge makes this problem hard and hence interesting for me as a researcher. A successful solution aiming to cater healthcare domain requirements should consider how to incorporate expert knowledge. This is the main reason why our solution is backed by a knowledge base which encodes healthcare domain knowledge in formal manner. Furthermore, the knowledge base helps us to improve the output by the NLP engine.

Let me discuss why I feel NLP is not sufficient to solve these problems (even though I am not a NLP expert). NLP techniques mostly fail to understand the big picture of the document which is very crucial in this domain. The EMR document can contain the various information about the patient/his family from different person’s point of view. For example there can be a statement in the EMR document ‘He denies knowledge of hypertension’, but after the examination, doctor decides that he has hypertension. The NLP output of this document will states both facts which are contradicting, because its intention is to convey the semantics of each sentence. But this is not sufficient for the problems that we deal with. We don’t want this patient to appear in the results for queries which search for ‘patients with hypertension’ as well as ‘patients without hypertension’.

However, if the domain expert is given with all the concepts(symptoms, medication in this case) he would be able to determine whether the patient has hypertension or not with good accuracy (he doesn’t need to read the document to determine this). This is a classic example that point to the value of having a knowledge base.

Apart from above scenario, knowledge base can play a crucial role in retrieving the results for certain queries.  For example, healthcare professionals have to put lot of manual effort to find out the patients who takes beta-blockers(beta-blocker is a category of medications). There are 20+ medications which belongs to beta blocker category. The manual process of finding patients who take beta blocker will have to search for the presence of any of this medication in the document. NLP will help us to identify these 20+ medications as concepts, but it is not enough to include these documents for the query search for ‘patients taking beta-blockers’. Availability of comprehensive knowledge base can solve this problem.

Above illustration is not to state that knowledge base is the ultimate solution, but I believe that with some optimized molding of several technologies can achieve the expected quality of such a solution.


Thursday, February 3, 2011

Context Aware Computing

Imagine a mobile device which tells you nearest restaurant when you feel hungry, which tells you who are the friends nearby when you travel, which tells you latest sport news of your interest, which tell you great places to visit when you are on a trip, which tells you about good shopping places nearby, which shows a parking lot when you are looking for parking slot.

Imagine a conference room which sends reminders to participants about meeting, which download the slides for the presenter, which turn on the projector on time, which find external information about the topic being discussed.

Imagine a vehicle which alarm driver when they about to pass dangerous area, which alarm when driver feel sleepy, which warn when driver is drunk.

Imagine a world where systems being proactively behave according to the CONTEXT. This is the ultimate goal of context aware computing research.

I recently read about context aware computing, its application and its challenges. This is a summarization of my recent study. I would like to decompose my discussion into few sub topics, namely definition, factors, applications, modeling and reasoning.

Definition


What is the definition of context?
Following are some of definitions I found:
• The interrelated conditions in which something exists or occurs
• Information that can be used to characterize the situation of an entity. An entity is a person, place or object that is considered relevant to the interaction between a user and an application, including the user and application themselves.
• Context is any information that can be used to characterize the situation of person or computing entity.

I rather like to introduce context as identified status about environment/occasion/event depending on the known facts.

What is context aware computing?
Context aware computing is a relatively old computing paradigm where people try to invent computing systems which adapts/responds according to situation.

Factors
There are several major factors that help to understand certain environment/occasion/event. Some of them are,
• Location
• Time
• Nearby resources
• Motion
• Noise
• Identity
• Activity
• Connectivity/bandwidth
• Vibration
• Gestures

Even though we see these are the major factors that we use to understand certain situation, we always use our knowledge about these situations implicitly to understand what is going on.

Applications
Before talking about the technical aspects of the context aware computing, I would like to discuss about some interesting applications. Following are some application that researches developed as prototypes.

Easymeeting room : A meeting room that understands meeting and remind its participants, provide resources to the meeting proactively.
University navigation system : A navigation system which assist new students to explore the university(students will be provided with information about the location they passby).
Context aware mobile phone : A mobile phone which provide location based services and user profile based services.
Shopping assistant: Guide user to shopping places where he/she find interesting stuff.
Software Engineering environment : Assign task according to the complexity, skills of engineers and availability.
Parking lot: Assist user to find free parking lot when user looking for parking slot

Apart from these there are vast number of context aware applications we can think of.

Now let’s talk about the technology behind these applications.
Context Modeling

We should be able to represent the knowledge about context in a manner in which an automated system can understand. This is a major challenge in context aware computing as well as many other computing paradigms. People use different strategies represent context, namely,
• Key/value pairs
• Tagged encoding
• XML
• Object oriented
• Logic based model
• Entity relationship model
• Ontology

But none of these are totally successful in general. Each of this modeling technique has its own advantages and disadvantages. Most interesting and successful applications were used ontology as context modeling technique.

Context Reasoning
Finally in order to provide context based services, automated system should be able to understand the situation by using provided facts. So reasoning is the core functionality in context aware systems. People use rule based systems and inference engines to reason about certain situation. But still with the limitation or the resources in the environment (context aware systems are highly deployed in mobile devices where processing power is very limited) these are not scale well. So scalability is main challenge in context reasoning.

Apart from these major technical areas people talk about hardware components which are capable of sensing the changes in environment, architectural issues in context aware computing and finally security and privacy issues. Although context aware computing is relatively old research area, still there is no ‘killer application’ which realizes the context aware computing.


References:
Merriam-Webster’s Collegiate Dictionary
Towards better understanding of context and context awareness (Anind K. Dey, Gregory D. Abword)
A Survey of Context-Aware Mobile Computing Research (Guanling chen, David Kotz)
Semantic web in a pervasive context-aware architecture(Harry Chen, Tim Finin, Anupam Joshi)
Ontology based context modeling and reasoning using OWL(Xiao Hang Wang, Tao Gu, Da Qing Zhang, Hung Keng Pung)
Context-Aware Computing: A Test Case (Jenna Burrell, Geri K Gay, Kiyo Kubo, Nick Farina)
Leveraging Semantic web computing for Context-Aware software engineering environments (Roy Oberhauser)