Watson - The mystery after jeopardy

We have been deep diving in cognitive computing. One of the best platforms that a business can leverage to hit the ground on cognitive computing is IBM Watson. Watson has a lot of capabilities especially with the acquisition of Alchemy's API as well. (Alchemy Acquisition - IBM). You get a language translator, language classifier, retrieve and rank, text to speech, tone analyzer, and a lot more. It is just a matter of how these capabilities can be integrated to your business use cases. As part of "the answer" company we have a tremendous and diverse use case for searching - and giving you answers in a way that makes sense, relevant and make a user decide better is at the heart of what makes us "the answer" company. I was a part of the team given the freedom to explore IBM Watson (no matter what the cost). So we have tried the different APIs in a span of a few weeks. Of course, we have to take a look at the Watson's retrieve and rank (IBM Watson;s Retrieve and Rank). Learning to rank have been researched extensively(Learn to Rank) and we have been trying out a few things ourselves so we are quite versed on the retrieving and ranking. Here are the three things that I have observed with Watson's Retrieve and Rank


1. Data! Data! Data! I can't make brick without clay (Can't make bricks without clay)

   - Well before you can train IBM's retrieve and rank. The data that you will need to use for your ground truth should meet a minimum quality standard which is well described in the documentation here (Retrieve and Rank documentation). If you have a lot of data, meeting the requirements in the documentation is easy enough. Once, you have met the data requirements you will probably need a translation from the original labels in your data to the relevance label that retrieves and ranks needs. This can be a subject of misinterpretation especially if you are evaluating performance. Evaluating performance might be tricky again because you might need to translate the relevance label to yet another mapping - especially if you are using a third party library like TREC Eval (TREC Eval). I think that IBM should provide all those testing capabilities in Bluemix.

2. Everyone loves a mystery to be solved

  - One of the things that we wanted to uncover was how can we turn the knobs/levers on how to the re-rank portion of retrieve and rank behave to better suit our needs. The rank portion is IBM's secret sauce - there is no quick turning of knobs. It does some magic in mysterious ways, that no one using the API will ever know (unless you work for IBM =). The way to add a little bit of spice to IBM's secret sauce is to use a proxy, which is described here (Retrieve and Rank - Proxy). I think the disconnect here is that our team has the expertise in turning the knobs especially in machine learning and language processing. Other businesses might not have this expertise. So having the magic happen in the background and have IBM solve it is good enough for most organizations.

3. Watson will never have the same deductive skills as Sherlock

 - Since our company have been doing language processing for a long time. We discovered that we have been doing a little more advanced things than what IBM is doing in the retrieve and rank space. This is good to know because we know we have the capability to address the businesses needs to become "the answer" company.


So there is no mystery in IBM's retrieve and rank API. We know that we are not eager to use it. Right, now it doesn't suit our needs. Maybe if IBM will add more capabilities and make it easier for us to tweak - so that we can have a little bit of control on how it ranks - we might use it. The biggest hindrance I think to its adoption in our organization is probably the cost of running the API in Bluemix. We probably don't want to be charged a fee every time a user does a search. We racked up a few thousand dollars of the bill while exploring in a span of two weeks (probably because we have a lot of data). Hit some limits on the API. One more thing, you have to transport your data in IBM's server in order to use retrieve and rank - well that might not suit organizations whose core business is the data. Especially with legislation like this (Personal Data for Russian Citizens), you might want to control where you transport your data.

Comments

Popular posts from this blog

OAuth 1.0a Request Signing and Verification - HMAC-SHA1 - HMAC-SHA256

Spark DataFrame - Array[ByteBuffer] - IllegalAurmentException

Gensim Doc2Vec on Spark - a quest to get the right Vector