Sunday, 2 December 2018

Attribute level Sentiment Analysis

We live in an era of social explosion when it is easier than ever to express an opinion thanks to many avenues - blogs, social media like Facebook and Twitter and specialized recommendation websites like Yelp.com and TripAdvisor. Though consumer reactions and feedback have become commonplace, it is harder than ever for business managers to mine actionable insights from this huge storehouse of information.  Listening to customers has been an enduring area of interest for marketing researchers and it's more important than ever now as social media recommendations drive consumer choice in several industries like restaurants and tourist destinations. One area of Natural Language Processing Research that has made it possible to derive understanding of customer satisfaction not only at an overall product level but at attribute or feature level is Attribute level Sentiment Analysis. In NLP literature, this area of research is called Aspect or Target-level Sentiment Analysis.

Figure 1: Illustration of  Attribute level Sentiment Analysis Task















Figure 1 is an illustration of the attribute level sentiment analysis task.  This is a standard Yelp review where a reviewer is describing his recent dining experience and mentions how he feels with respect to the attributes - food, service and price. The attribute level sentiment analysis task is to be able to first discover what attributes matter in a domain ( which can come from prior secondary research/domain expertise or a topic model like LDA for complex domains). The next task is to identify every occurrence of that attribute for e.g. references of food occur several times once as the generic term " food" and  later with more specific terms like " salmon" and " sea food platter".  The same goes for other attributes such as service and price which are mentioned in more than one places in an entire review document. Finally, the most important sub-task is to connect attributes like food or service to associated sentiment words like " standard " , " pretty good " etc. to determine how the reviewer feels  at an attribute-level. 


Challenges in Attribute-level Sentiment Analysis

  1.  Large number of missing attribute mentions -  Reviewers on social media platforms and blogs are generally allowed to express opinions in a free flowing manner  without specific prompts. As a result, reviews typically contain just 2-3 attributes of interest.  It is important to understand why attributes go missing --- Missing attributes could signal "irrelevance" or unimportance but they could also signal meeting of expectations.  Recognizing these differences can give important insights to managers

  2.  Hard negations  - This is a general problem in fine-grained sentiment analysis.  Negations can impact the polarity of the base word in many complicated ways.  For example, the term " not a success" is just opposite of success and totally reverse the sentiment polarity  but the term " not much of a success" is simply changing the degree or extent of sentiment of the base word. All bag of words models that are location-invariant struggle with handling these types of negations

  3. Scattered sentiment and attribute words - This is a challenge very specific to attribute level sentiment analysis.  Attribute words are associated with relevant sentiment words using the concept of neighborhood or context but context can be variable i.e. they could be close to each other or scattered and this association is hard to make for any model that does not have a memory of the past or cannot connect what was told earlier in a sentence to the later part of the sentence.
         Figure 2 : Example of Scattered Sentiments


Methods to Handle Aspect Level Sentiment Analysis


Every generation of NLP research has studied this challenging problem but literature is still inconclusive about the best way to handle this problem. As part of our own research (Chakraborty, Kim and Sudhir 2018) , we have experimented with the most understandable and simple lexicon-based methods, traditional supervised text classification algorithms like SVM and the current deep learning architectures like convolutional neural nets (CNN) and Long Short Term Memory (LSTM) networks.  A well constructed domain-specific lexicon is fairly good at attribute classification but struggles with sentiment classification due to its inability to deal with hard negations. Even the best text classifiers like SVM are not very good at handling scattered sentiments and need more training data to reach the classification accuracy of deep learning based models.  We find that a hybrid deep learning model comprising of CNN and LSTM layers does a fairly good job at this task  with a limited amount of balanced training data (1500 sentences) as the CNN is very good at extracting short-range local cues  or features and LSTM by virtue of its memory unit and forget gates can connect scattered attributes and sentiments very well.

There is a lot of interesting research that has been happening in this area and to name a few :


Attribute level Sentiment Analysis

We live in an era of social explosion when it is easier than ever to express an opinion thanks to many avenues - blogs, social media like ...