AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

ChatScript vs ML

Various people ask me for justifications they can give to management about why they want to use ChatScript instead of some major bot platform.  This revised page from the Brillig Website tries to answer this for all:


  [ # 1 ]

I enjoyed this. One addition to the strength of Rule Based over ML is control. The Tay episode, where twitter trolls turned a friendly millennial AI into a holocaust denying facist in 24 hours, and again after a “fix”; is an example of the value of retaining control. At a less dramatic level, but far more significant, there are situations where predictability is critical. If you have a mental health related bot, you want to be extremely careful with how you respond to suicidal inputs. 75% confidence is not an option.

On the other hand ML can be a fantastic supplement to a mature rule based system. One of the limitations of scripting dialogue is that a small number of people get to guess a wide range of possibilities, and impose their schemas on concepts and taxonomies. As per above, this has huge advantages, but also limitations. No individual has perfect domain knowledge, and users will always surprise you.  Using ML to spot patterns in users’ interactions can help steer scripters with regard to gaps, missing categories, emphases, unnoticed nodes, etc. It can also be used to harness big data in service of rule creation and dialogic strategies.

Finally, I thought that the piece identified very well the advantages of CS over ML, but perhaps did not really cover the pain points for CS programmers, beside the learning curve. While it is true that we can work with much smaller samples more effectively, we also take a lot longer to do so. Building a sophisticated, or even a credible, conversational agent (as opposed to command bot or the like), equipped to handle free dialogue without tedious backstops, is not a trivial task. It takes a lot of skilled hours, and the scale of the task can be easily under-estimated IMO. It can also be done poorly - human control is no guarantee of quality! The lack of adoption means that building any enterprise level CS bot will hit a skill wall very early, limiting speed and scale. In an environment with huge skill gaps in mainstream programming languages, where programmer can pretty much pick their jobs, it is hard to motivate someone to learn CS from scratch, become good at it, and build in a relative vacuum. With ML talent is expensive, but more easily found. A further consequence is that there is a tiny community around it, with very few resources (a docker repo here, a node implementation there, some syntax highlighting over there). A few forks with a few commits beside your own. The superb documentation is the CS saviour, and the responsiveness of this Forum.

I am a huge fan of CS (will be doing a Meet-up presentation on it for one of the stronger PHP communities in UK soon); but I am also aware that it has its own challenges and counter-points that might make it sensible for someone building a simple faq or command bot to use one of the quick and dirty solutions, vs the magic of CS.


  [ # 2 ]

The TAY discussion is not really on point. They didn’t HAVE to add user output into the system. The ML/CS discussion is on input detection, not what you say. Yes, the suicide discussion requires reasonable confidence, but that’s just a matter of picking your values, not an indictment of ML vs CS. And you can handle misdetection of suicidal intent by asking about it. It may well be better to error on overfiguring suicidal intent rather than missing it with too high a confidence value.


  [ # 3 ]

” Using ML to spot patterns in users’ interactions can help steer scripters with regard to gaps, missing categories, emphases, unnoticed nodes, etc”

While I am not averse to ML being added to a CS system, scripters can also read the same extra data being given to ML. It is not ML that spots patterns and steers scripters, it is the raw data. ML can just run independent of scripters and make scripting moot in a mature system


  [ # 4 ]

” it is hard to motivate someone to learn CS from scratch, become good at it, and build in a relative vacuum. With ML talent is expensive, but more easily found”

And I certainly agree there is a dearth of CS programmers and why should any existing programmers want to convert?
Can’t help you there.  And if you want to build a simple bot, for simple usage, then ML is a fine alternative.  I will point out for enterprise use, that one does NOT require a CS programmer when using Kore. Kore buries the use of CS within a more generic description framework of fundamental meaning, synonyms, and idioms.


  [ # 5 ]

The why we should want to convert I guess at this stage is likely to be because we like the space, want to dive into it, and are persuaded of the advantages and potential of CS. That is why I have been diving into it anyway, from a PHP/JS background. Kore sounds very promising. Haven’t tried it, but it does in concept dramatically reduce the entry barriers and expand the pool of potential users. I am glad you pointed out the CS elements. I’d have to have dug pretty deep into their faqs to realise that was the case. An exciting new departure. I notice that they announced a partnership with Facebook. A promising step in the fantastic contribution that CS represents.

Re: ML and semantic analysis, it is a fair point. Automation is different from ML, and in the past I have used rules based NLP engines (one called TROPES back in the day) to crunch through big-ish data (a ton of reports from the International Federation of the Red Cross), more than human scripters could have realistically analysed, to find extremely useful patterns that proved their worth at an enterprise level. I am not sure how much value ML would have added to that kind of problem, compared to what I used. In fact, I am currently exploring the potential of ChatScript as an auto-tagging and pattern recognition tool. I am thinking I should be able to use its fantastically rich, adaptable and fast NLP to take user output and generate associated concepts and potentially hierarchies. Early days.


  login or register to react