Monday, February 25, 2019

Project: Newscoop (AI powered news summary)

In my quest to keep diving deeper into the world of tech, I've come across some really cool things. Unfortunately, this probably won't be as cool as my previous article (Designing a mobile game in PowerPoint), but it's "whoa!" worthy in its own right.

After working on a few games, I decided to look into AI. Had I known it would be this challenging and fun, I would've taken it up months ago... but a wise man once said, better late than never. I'm not at a point that I can comfortably hold a conversation about the topic, but I've mastered the AI baby-speak.

Let's begin with how I got into this.

As a creator, it's hard for me to sit still. Over the past few months I've been disciplined, focused and most importantly, just trying to learn as much as I can. After hearing about OpenAI's text generator that was surprisingly efficient at generating misinformation, I started to see what I could do in the space. Up until that point OpenAI was busy making software that was destroying gamers at what they did best - fun, but not very practical haha. The text generator made me think, what if I could develop something similar, but instead it would summarize text for me.

That's a daunting task, and it would've been near impossible with my skill-set had there been no existing AI and ML models. This is what's amazing about the developer community, we have APIs that are powerful but free, and we have a community that is willing to help you out. So, to start working on this idea of a "summarization" model, I looked into what was out there for me to build on... and there's so much! Google and Microsoft both have good text models, but they didn't provide the only model I needed; summarizer.

After looking around bit more, I found one from a small company and got to work. To put it to work, and to show off my new skill, I had to develop a project that went with it. So, if you want to see an AI in action, you can check out my app Newscoop in the Google Play Store. Below is an article that is summarized on the app.


Directly in the first sentence of the summary we find the information ($15 billion valuation) that is the focus of the headline and the general article. Technically we need not go beyond this point since the information we wanted has already been obtained. BUT the AI continues its analysis on the remainder of the story to put together few more sentences that may be of use.



Overall, every bit of text you see in the app is carefully selected based on value. And although it's not pure summarization, because the model isn't interpreting and rewriting the theme, it still is valuable.

The AI simply assesses each sentence to determine some key concepts like sentiment, entity value and objectivity. Every word of the sentence is analyzed to determine how well it contributes to the overall theme, and the sentence is then assigned a confidence level. After the entire text has been analyzed, all sentences are ranked, and the top X are chosen.

Unfortunately it doesn't yet respond to outside intervention and I'm still working on the model where I can let the AI (a.k.a Scoopy the AI) know that I would've selected a different set of sentences, or I wouldn't have selected a particular sentence. Scoopy will take all this feedback and improve overtime.

Scoopy does a good job, but like a brown parent I expect an A+, and sometimes it just doesn't deliver. Unfortunately, it's not a problem with an immediate solution, but with time the results will get better.

Finally, is this the right application for such an AI?

I'm not sure, but as information levels start to rise, programs like these are going to become very important parts of our lives. Not only that, AI in general is the future. We're hearing buzz-words all around us, and I absolutely hate some of them (#noThanksToFinTech), but AI stands at the center of every rising field. For instance, AR and VR are both complex and independent technologies. The truth is without AI neither of those can provide the feeling of "reality".

Below is another story summarized by the AI.