IBM Watson is just fine, thank you !


ibm-bets-watson

Over the last couple of days, I have seen a bunch of articles on my social media feed that are based on a research report from Jefferies' James Kisner criticizing IBM Watson.

I am a big fan of criticism of technology – and as folks who have known me over time can vouch, I seldom hold back what is in my mind on any topic. I strongly believe that criticism is healthy for all of us – including businesses, and without it we cannot grow. If you go through my previous blogs, you can see first hand how I throw cold water on hype.

Unlike my usual posts, I cannot claim to be an impartial observer in this case. As much as I am a geek who wants to make my opinions known on technology topics, I am also an IBM executive , and I run a part of IBM GBS business in North America that also includes services on IBM Watson (including Watson Health) . I also own IBM stock via ESPP and RSU. I don't set product direction for Watson – but my team does provide input to the product  managers. So I was in two minds over the weekend about blogging about this – but net net, I think I will go ahead and say some things about this , and as always I am happy to debate it and stand corrected as need be. So here we go.

IBM Watson's primary focus is on enterprise, not consumer !

This should be obvious to most people but perhaps the technical and use case implications are not super clear when they conclude Watson is in trouble.

Lets take an example of something that is often used to make the point in favor of consumer AI tech – Alexa. I often get asked Watson versus Alexa/Google assistant questions. You can tell Alexa or Watson to check the weather and they will both do it. The big difference is – Watson keeps the context of the first question while you ask the second question, and Alexa treats the second question as if the first one was independent of the second one. In the set of use cases Alexa solves, this is not a big problem – but the ability to keep context is important for the use cases that Watson solves, like customer service. In a customer service scenario, you cannot engage in a conversation without knowing and interpreting what has already been said.

That said – it is very easy to combine Watson and Alexa. For example , if you have echo installed at home, you can invoke Watson via a voice command and keep having a conversation without even knowing it is Watson that you are talking to.

While Watson cannot solve every possible customer service scenario – it can solve several and deliver very high value. For example – lets say you are a utility company that gets calls from clients who want to pay a bill, check a balance, find outage restorations etc. Those are all things Watson can do just fine, and leave the high value tasks – like being an energy advisor , or a retention specialist – to expert humans. Imagine the type of value generated for that utility, and the consistent and fast customer service for their clients . Consumer AI does not tackle these kinds of problems – and that is a big difference. There are many such examples like this in enterprise side of the house – like this video about how Watson acts as an expert engineering advisor for Woodside, and H&R block using Watson as a tax expert.

IBM Watson does not share one client's data with another client

This design principle is very key to enterprise clients. Data security and privacy drives a lot of AI decision making. Consumer AI generally keeps the data all users give it and uses it to learn and get better. I am sure those companies have high ethical standards and the data won't get misused. But that is not how enterprises look at their data. It is important for clients to have full trust that their data is not shared with others that they don't want to see it.

A lot of the criticism that Watson takes a long time to learn and needs data in a specific format that is hard to do for clients come from this principle being not fully understood. Watson can learn from a given client's data – usually unstructured data – and keep getting better, but will not use company A's data for Company B's system to learn. Even if we ignore Watson and look at data science as a general topic – there is no way to shy away from an AI model having to learn. That is the core of the value prop of AI.

This is not to say every client starts from scratch. In many cases, there is a well established starting point. Lets take a Telco call center as an example. If a client wants to put Watson to augment a telco call center, they don't need to build intents from scratch. Instead, they can use "Watson for Telco" that has hundreds of prepackaged intents and just add of change as needed. Over time, this will be applicable to all industries. These are all repeatable patterns – another point that observers don't seem to notice.

IBM Watson has plenty of successful implementations , including Healthcare 

The Jefferies report calls out MD Anderson project uses that to extrapolate that Watson is doomed. I don't see any mention of Mayo Clinic trials,  Or Barrow ALS study, or  Memorial Sloan-Kettering-IBM Watson collaboration   .  Where is the balanced analysis that led to the dooms day conclusion ?

Watson is in clinical use in the US and 5 other countries, and it has been trained on 8 types of cancers, with plans to add 6 more this year. Watson has now been trained and released to help support physicians in their treatment of breast, lung, colorectal, cervical, ovarian, gastric and prostate cancers. Beyond oncology, Watson is in use by nearly half of the top 25 life sciences companies.

IBM Watson is delivered as APIs that its ecosystem can easily use

When Watson won Jeopardy, that incarnation was largely monolithic. But that is not how Watson works now. It is now a set of APIs. I am under no illusion that IBM will be the only game in town, although I strongly believe we are one of the best. Partners and clients will build Cognitive applications using Watson in a much more productive way because the functionality is exposed as APIs.

This gets painted as a negative by some of the articles. You can't have it both ways. As I mentioned above, where it makes sense to package something for a given industry or domain, IBM or someone in the ecosystem will of course package it. But the decoupled nature is the most flexible way of innovating fast and at scale in my opinion. The fact that billions of dollars of investment is directed into this field is good for IBM and its ecosystem – let the market decide on merits who succeeds and who does not.

IBM Watson some times needs consulting , but it only helps adoption

Let me also point out the role of consulting – be it my team at GBS or another consulting company. Clients are still largely tip toeing into Cognitive computing. They need significant help to understand what is possible and what is not in their industry and their specific company – which is what we call advisory services. The actual integration work is not complex and can be done by in house teams or a qualified SI. The other service I often see that is requested by clients is for design. In some other cases, they also need services for instrumentation (like in IOT use cases).

If we rewind couple of decades and go to the time when SAP was just starting out in ERP, What was the role of consulting ? Did consulting  services help or hinder the adoption of SAP globally ? None of this is any different from any other technology at this stage of its life cycle. So I am not sure why there is an extra concern that adoption will tank due to consulting.

IBM Watson team does great marketing, and we already have amazing AI talent 

To be perfectly clear, I am not a marketer – nor do I have any serious knowledge of marketing other than a couple of classes I took in business school many years ago. However, I am VERY proud of the work IBM Marketing has done about Watson. Its an early stage technology – and that needs a certain kind of messaging to get clients to take notice. If all we did was fancy videos and panel discussions and there were no customers using Watson today, I would have gladly joined the chorus to boo Watson. But that is not the case – All over the place leading companies are using it and as I have quoted above, several are public references.

From what I could learn internally, there are about 15000 of us working on this at IBM. This includes about a third of IBM Research. And we are hiring top AI talent all the time. In fact if you are an AI developer and want to work on Watson, shoot me an email and I will get you interviewed right away. While we of course use job boards etc to attract talent, that is not the only way we find people. We already have more AI folks than a lot of our competition – so perhaps that should be factored in to the discussion on "look at job postings, IBM Watson is short on talent" part of the story.

So why is IBM not publishing Watson revenue specifically ?

I am not an official IBM spokesperson – and I am not an expert on this topic. So this one aspect – I have to direct you to people with more stars and stripes than me in the company.

Advertisements

When machines think on our behalf !


I don’t really think machines will displace humans in significant numbers for a long time – but I do think we have an interesting time ahead of us where we let machines think on our behalf quite a bit . 

Every company out there has rebranded themselves to an AI company . The first generation of this is broadly of two categories 

1. Telling an AI system what we want to do – order a coffee , close the curtain – pretty much call an available API to do something 

2. Use AI to learn and do something better – like switching carpet bombing marketing campaigns and target better 

But this is just a temporary phase. Why do you want to ask your AI wizards to order coffee for your home – isn’t it better to let the machine reorder coffee when it gets to some level ? Should it even ask you to confirm these kinds of routine activities or just do it without asking ? About half the things I need routinely -I am totally cool with having a machine do it without asking me anything , especially about coffee . I get mad at myself when I forget to pick up coffee and I don’t have much left in the kitchen when I need my coffee . I am sure I am not the only one who is ready to offload some routine activity to machines .

So this poses some interesting challenges  like- if my AI system is the one ordering groceries for me without my input , how do other coffee vendors ever get my business ? 

My wife already thinks I spend way too much on coffee . So she maybe able to tell the AI system to limit my purchases to say $50 a month . So now my AI thingy needs to be coupon shopping and stuff to stay within budget – but that is easy, machines can do this math stuff  better than us anyway . 

This makes me wonder about what is the future of marketing itself ?

Simple – brands stop marketing to me and instead they ( as in their AI systems ) will market to AI systems ! And Brands will do whatever they can to convince my AI system to feed me their coffee first to increase their chance of my business being a reorder situation !

Well , guess what – this means we are in the “my AI is smarter than your AI” world at that point . The bright side – email spam reduces significantly for me as a human , and I have some more time on my hands . 

But this is not without its share of dilemmas too – for example , what if the AI provider for me and the coffee company are one and the same , or if they are two companies that share my data ? Am I going to be put in a situation where I am negotiating against myself ? So we do need some clear guidelines established on ethics , legality, security  and even morality before we get there to dealing with this problem . 

We have a good grip on what happens when AI does smart stuff when humans deal with it – like customer service , sales etc . But the thing that excites me the most is when both sides of a transaction are AI systems . I am betting it won’t take even 5 years for us to see this mainstream . Are you ready ?

Future of Software Development 


There are so many angles to this topic – and this is my third attempt in three days to organize my thoughts around it . The trouble is not that I don’t have enough ideas – it is that most ideas seem to contradict each other when I read them again .  Let’s see if the third time truly is the charm 🙂


1. Everyone will NOT  be a (meaningful) programmer in future 

I know that is not a popular position to take today – but that is where my mind is at now . We will need to water down the definition of coding significantly to make “everyone is a coder” be a true statement . If I can change the tires and oil of a car  , and program the infotainment system – should I be called an automotive engineer ? That is “roughly” how “everyone will be a coder” sounds to me now . 

Don’t get me wrong – I do think that understanding how code works is important for everyone in future . That doesn’t translate to everyone coding , at least in traditional sense . Very complex applications exist today in MS Excel – created by business analysts who are not traditional programmers . If we change the definition of coding to include that kind of development – I can buy into “everyone will be a coder”. The closer statement – though less sexy – would be “everyone will be a designer or modeler” !

2.   More code will be destructed than created 

World around us is changing extremely fast and that means we need lots of newer kind of applications . But the pace of change is such that no application can satisfy a customer for any length of time . Building better components and better orchestration mechanisms are the only way to deal with it . Neither concept is new – but the execution will kick into a higher gear . API designs will need a lot more flexibility than we are used to 

3. Performance will trump simplicity 

By simplicity – I mean what “humans” think of as “simple”, not machines . Code for tomorrow will be used more for machine to machine communication than for machine to human – by orders of magnitude . Creation of code itself might not need a lot of human help for that matter . And while maintainability and human readability are important today , it might get trumped by the need for extreme performance tomorrow  . For example – if both ends of an interface are machines , why would they need to communicate in text and pay for the overhead of things like XML/JSON tags that need to be converted to binary and back again to text ? 

4. You won’t need as much code in future 

A lot of code is written today because a human does all thinking and tells computers what to do in very prescriptive ways with conditions and loops and all that. When computers get to “general AI” – they will learn to think and adapt like humans – and won’t need step by step instructions to do what they do today . Less code will do a lot more than a lot of code does for us today . We may be decades away at most – we are not centuries away from that stage . Software will eat the world now , AI will eat software tomorrow 🙂

5. Software offshoring/outsourcing  will not be for development or maintenance – it will be for training 

It’s already possible for machines to learn from vast amounts of .  Some time in far future , machines will self train too . Till then – and that’s at least a decade or more – humans will need to train machines on data . And that will need to make use of local knowledge , labor arbitrage etc and hence will be an ideal candidate for offshoring and outsourcing ! 

6. Community of developers will be the only thing that matters  

Well – that is already true, isn’t it . I have forgotten the last time I have checked official documentation or real books to learn anything . I google or search on stack overflow to get most of what I need . I am not a full time developer – but looking at the communities that help me , I am sure full time developers do what I do , a lot more than I do 🙂 . A better way of mining this treasure trove of information is the need of the hour to get significantly more engineering productivity. 

7. More and more use of biological sensors 

Human bodies and brains are the ultimate computers and we are some ways away from mimicking human thought . In near future I expect simple sensors for all kinds of chemical and biological stuff ( how cool would smell be as an input , like touch is today ) that provide input to and also dictate how code should work . Text is fast becoming the most boring part of data any way 🙂

8. We haven’t even scratched the surface of parallelism 

What we call as massively parallel today in all probability will be amusing and funny to tomorrow’s programmers . The over heads of making parallelization work today is pretty high – and that will go away soon. A part of the problem is also that majority of developers don’t think of parallelism when they design code . I guess the near term solution will be for more primitives in popular programming languages (like for data access) to have built in parallelism . Note to self : get better at functional programming in 2017

9. Ethics and Privacy become core to all development 

A few things are happening together now

a) data is exploding and we are leaving our digital finger prints everywhere 

b) applications won’t stay around long enough to have ethics and privacy as a “future release” issue to be fixed

c) more and more software affects humans , but is controlled by machines with little human input 

d) access to information is (and will be ) universal – which means bad guys and good guys can both use it for what they want 

e) legal systems won’t ever catch-up with the pace of tech innovation 

And that means – ethics , privacy etc need to be core principles of tomorrow’s software . It cannot be “in pockets” as it happens today. And the education on this topic needs to be pushed down to even the earliest levels of schools. 

9 is really not a conventional number of bullets for a list – but given there won’t be anything conventional about the future of software development , I think now would be a good time for me to stop this list . Feel free to add , edit and challenge in the comments – I look forward to it .

Happy 2017 everyone!

CES 2017 – Random Thoughts On Future of APIs In An AI world


I spent half this week at CES 2017 in Las Vegas !

15844324_10210319385955546_7881371335845216256_n

To say the least, it puts the “enterprise” side shows to shame in number of people it attracts, variety of solutions it offers and how boldly the future is thought about. It did not take any time to see that the future is all about AI – and how expansive the definition of AI has become.

There were bots of all flavors there – but voice was the major interaction media, and it was hard to walk the floor without hearing “hey Alexa” type conversations . Also noticed a lot of VR and AR. I walked away thinking voice will rule the consumer world for a while, and between VR and AR – I will bet on AR having more widespread use. While VR based video games are indeed cool – putting on something on your head to use technology makes me wonder how many will actually use it. Like 3D televisions – where you need special glasses, and hardly anyone uses it that I know.

The generation of products using AI that I saw (admittedly I only saw a small fraction of the HUGE show) barely scratched the surface of what is possible. If I think of what I saw with my engineering hat on , it is something like this

  1. Human voice or text waking up the AI service ( “hey Jane” )
  2. A natural language based request ( “When is my next meeting” )
  3. Voice to text translation as needed
  4. Intent and entity extraction ( me, my calendar, current time, read entry)
  5. Passing it to a structured API ( calendar.read ) and get a response
  6. Convert output to a string ( “your next meeting is in 2 hours with Joe” )
  7. Text to voice translation
  8. Keep the context for next question ( “is there a bridge number or should I call Joe’s cell?” )

This is easy stuff in general – there are plenty of APIs that do stuff, and many are RESTful. You can pass parameters and make them do stuff – like read calendar, switch a light on , or pay off a credit card. If you are a developer – all you need is imagination to make cool stuff happen. How fun is that !

Well – there are also some issues to take care of. Here are 5 things that I could think of in the 1 hour in the middle seat (also in the last row, next to the toilet) from Vegas back home.

Like say security – you might not want guests to voice control all devices in your house for example (which might not be the worst they can do, but you know…). Most of the gadgets I saw had very limited security features . It was also not clear in many cases on what happens to data security and privacy. A consistent privacy/security layer becomes all the more important in the AI driven world for all APIs. 

Then there is Natural language itself. NLP itself will get commoditized very quickly. Entity and intent extraction are not exactly trivial – but its largely a solvable problem and will continue to get better. The trouble is – APIs don’t take natural language as input – we still need to pass unstructured>structured>unstructured back and forth to make this work. That is not just elegant – and it is not efficient even when compute becomes negligibly cheap. Not sure how quickly it will happen, but I am betting on commonly used API’s should all have two ways of functioning in future – an NLP input for human interaction, and a binary input for machine to machine interaction (to avoid any needs to translate when two machines talk to each other) . Perhaps this might even be how the elusive API standardization will finally happen 🙂

If all – or most – APIs have an easy NLP interface, it also becomes easy to interoperate. For example – if I scream “I am hungry” to my fridge, it should be able to find all the APIs behind the scenes and give me some options and place an order and pay for it. And my car or microwave should be able to do the same as well and I should not have to hand code every possible combination . In future APIs should be able to use each other as needed and my entry point should not matter as much in getting the result I need. 

Human assistants get better with time. If an executive always flies by American Air, when she tells her assistant to book a flight, the assistant does not ask every time back “which airline do you prefer” or “should I book a car service also to take you to the meeting when you land”. The virtual assistants – or pretty much any conversational widget – I saw this week had any significant “learning” capability that was demonstrated. While I might enjoy having a smart device today since it is a big improvement from my normal devices – I will absolutely tire of it if it does not get smarter over time. My fridge should not just be able to order milk – it should learn from all the other smart fridges and take cues from other data like weather . In future, “learning” should be a standard functionality for all APIs – ideally unsupervised. 

The general trend I saw at CES was about “ordering” a machine to do something. No doubt that is cool. What I did not see – and where I think AI could really help – is in machines “servicing” humans and other machines. For example –  lets say I scream “I am hungry” to my fridge. The fridge has some food in it that I like and all I need is to put it in the oven. So fridge tells the oven to start pre-heating – and gets no response in return ! Telling me “the oven is dead” is a good start – But the intelligent fridge should be able to place a service order for the oven, as well as offer me an option to order a pizza to keep me alive for now. APIs should be able to diagnose ( and ideally self heal ) themselves and other APIs in future – as well as change orchestration when a standard workflow is disrupted. 

 

 

Role Of Services In Artifical Intelligence


Please don’t interpret the following as IBM’s position – this is just my view . Also, after a long time, I am typing a blog post on my mac instead of on my iPhone 🙂

I am not an official spokesperson for IBM . That said, I am not a spectator from the peanut gallery either. Almost every day for last couple of years, I have been involved in the sales and delivery of projects that include some flavor of Artificial intelligence. I am sticking with AI here instead of “Cognitive” to avoid the distraction of what is AI, ML , Cognitive etc . While I do not have an academic degree in AI, I have hands on design and coding experience in this domain, and I am learning more every opportunity I get.

Couple of weeks ago, I was in Vegas for a week – attending IBM’s World of Watson event. I spoke with tens of clients and prospects, several analysts and a bunch of my colleagues from other parts of the world that I don’t get to interact frequently. One of the common themes in this conversation was the role of services in AI. Variants of this topic also caught my attention on social media as well – mostly from analysts. The big difference between the people I spoke with was that many analysts were dismissive or pessimistic about the role of services, and clients did not seem to care what was product and what was services – they did not seem to care much about the distinction. Either way, this topic picked my interest bigly 🙂

There are many reasons to be pessimistic about the role of services in AI

  1. Things that caught the imagination in past like ERP, data warehousing etc all had big services components and many projects were plagued with cost over runs. Why repeat the mistake with AI ?
  2. Most AI initiatives – from IBM, Google etc – are cloud based. Cloud should not need as much services, right ?
  3. AI in general comes with a cloud of uncertainty about the future of mankind. Almost every person I know has a strong position on Universal Basic Income thanks to this fear. Why accelerate the apocalypse by promoting services on AI?
  4. AI is in its nascent stage. Services is what hides the immaturity of the product and hence deserves a public take down. In any case, it is more cool to be on the side of product and be opposed to services.

If you are running out of patience already on what my take is – I believe services will be integral to the present and future of AI, for a long time . Here is why ( and its long – get a beer or coffee ).

The nirvana state of AI for me is when computers can mimic ( and accelerate) human thoughts instead of just human tasks. We are a long way away from that stage. But what is possible today is already good enough to help individuals and businesses in tangible ways – often with “order of magnitude” benefits. People who criticize AI as immature often do not recognize that many companies use it heavily today, and its a part of many apps on your phone. The future is already here, and its getting more evenly distributed as well 🙂

A lot of people think – and I get asked almost every day – that systems like IBM Watson are big monoliths like traditional ERP systems. While the start was certainly that way , AI today is largely a set of APIs that application developers can mix and match for their unique needs. These are quite well defined APIs and even someone like me who is not a full time developer can figure out how to use it pretty quickly.

One such API is speech to text . You input the audio, and you get text as output – that is pretty much it. There is no end to the useful scenarios this “simple” API can be used in ( closed captioning in TV for example). However, there are very few people relatively who know such an API exists, and even fewer who know how to integrate into existing workflows in their business to improve efficiency and effectiveness of the process. Consultants can help their clients explore how AI can be incorporated into their existing processes. This kind of integration work is perhaps the most tactical use of AI services today.

While tactical uses are awesome, most companies have little interest in things that make incremental changes. I have a client who is in the entertainment business. The leader in their industry is about 4 times bigger than them. They are betting on AI as the way to leapfrog the leader and become the top dog in their industry. A good part of that project is the strategic planning – what bets to make, what trade offs to consider, how to mitigate risks etc. AI Advisory is probably the most exciting part of the future of consulting business. It needs a unique mix of AI knowledge , the intimate knowledge of specific industries, and business process expertise. In other words – product is not the lone differentiator.

I explain this to my clients as “It is not what we make with AI, it is what we make possible with AI. We will help you build the bridge from where you are to where you need to be” . 

img_7507

There are some “tangential” scenarios too for AI in the Enterprise IT world. Between ERP and Data warehousing, countless days of my life was spent in getting data cleansed and transformed. For the most part, even with SaaS and big data – we worry a lot about GIGO ( garbage in garbage out). AI will help us take a fresh look at this problem. What we call as “garbage” data might contain many useful nuggets. We might not need to transform it row by row to get meaningful insights – AI can figure out useful patterns. Coupled with the modern big data management systems, this could make a lot of ETL disappear for scenarios where directionally correct insights are more important than precise information. It needs services – the kind that generates actual value and gets rid of a lot of terribly inefficient code. Actually not just code, also the precious human effort wasted in fixing the “garbage” data !

This post is already becoming quite long, so I will stop with making just one more topic – a favorite for both my clients and my analyst friends. Companies around the world have invested heavily in ERP systems ( and satellites for SRM, CRM etc). Those assets have not all been sweated sufficiently quite yet. Some of these vendors have modernized ( mostly about moving to cloud, and making the systems faster ). However, in the promise of “better, faster, cheaper” – the “better” part is largely unfulfilled today. I firmly believe the missing ingredient is purposeful use of AI.

Lets take the mundane case of managing collections – where optimization today means you outsource it and make it someone else’s problem. Cost of collection is not trivial for most clients I have met – but they have mostly just accepted it as a fair cost of doing business. Efficiency is improved by mostly fine tuning the process  part of it – like how many dunning cycles need to be run, but with very little personalization. We recently implemented some elementary AI ( trade off analytics, speech to text , text to speech etc) for a client who is a giant in the world of education ( took less than a month to implement it) and the client saw 20% better collections immediately after that.

Optimizing collections is really a trivial use case (and even that has tremendous ROI)  if we look at the power of AI available today. Exponentially better implementations will be possible (and already in the works) when we combine AI with other emerging stuff like say blockchain .

While I have no doubts that services will play a major role in the field of AI – I will be the first to admit that practitioners have a lot of learning and retooling to do to add value to their clients. The good consultants have always been life long learners – what is perhaps different for them is just the speed at which they need to learn now. Its a fast evolving field and there is just no time to sit back and say “I am an expert” any more.

PS: If working in AI, integrating cognitive capabilities to existing systems, Advising clients on making use of AI etc are things that you are good at, and you promise to keep learning – I am hiring. Ping me at Vijay dot Vijayasankar at US dot IBM dot COM .