If you don’t know already Meerkat, the app that lets you broadcast live streams over Twitter with a single tap, is blowing up.


Meerkat’s proposition is simple: “Tweet Live Video.”

So far, it seems to be working as they have successfully piggybacked on Twitter’s social graph and have not just Silicon Valley tech entrepreneurs and investors, such as Kevin Rose and Dave McClure, but even mainstream celebrities, such as Jimmy Fallon live streaming like it’s 1999.

Now a victim of its own success, Twitter announced last week it is limiting Meerkat’s access to its social graph. Perhaps not entirely unrelated to the fact they recently acquired a similar live streaming service called Periscope.

We’re fans of any new technology or product making waves in the Twittersphere and have come up with some potential ways Meerkat could further improve it’s user experience using Machine Learning and open source tools such as PredictionIO.

We are going to show you how Meerkat can become smarter with Machine Learning.

Here are 3 ideas for predictive features that Meerkat could quickly build and deploy with PredictionIO’s open source Engine Templates:

  1. Recommended Live Streams – Meerkat’s recently launched a discovery feature for its iOS app. It is not clear how these streams are currently selected but it is possible to personalize the stream for each and every user based on their previous interactions (i.e., views, likes) and preferences.

  2. Who To Follow – very similar to Twitter’s “Who to follow” or “People You May Know” on LinkedIn and Facebook. This feature may be increasingly important given Twitter’s recent curtailing of Meerkat’s use of the Twitter social graph and is now available to any social application using our community contributed GraphX SimRank algorithm.

  3. Push Notifications for Trending Live Streams – similar to how Twitter will alert users via push notification when a user (or tweet) is popular and trending (e.g., “@kevinrose, @davemclure and @jimmyfallon just followed @appmeerkat”). Currently Meerkat only provides notifications if a user you already follow starts a new live stream but trending notifications can increase engagement even more.

Below we will break down our idea for Recommended Live Streams step-by-step using PredictionIO:


Step 1: First you need to install PredictionIO.

Step 2: Next, collecting data into the Event Server.

Thanks to our recently update Swift SDK for iOS it is easier than ever to import events relating to users, live streams and interactions (i.e., views, likes, follows).

Below is the example code for importing an event where a user views a live stream (i.e., item):

Step 3: Then, using the Recommendation engine template we can add any custom business logic for our specific use case (e.g., filter streams which are no longer live).

Use pio template get PredictionIO/template-scala-parallel-recommendation Meerkat to get the template.

Then we can customize the template as required for our use case. A real issue with recommending live streams is the time sensitivity, often the stream is over before the users even click on the link! Luckily all Engine Templates follow an architectural pattern DASE (Data, Algorithm, Serving and Evaluation) so for this example we simply modify the Serving component to filter streams which are already over:

Once the engine template has been customized we can build, train and deploy our engine using pio build, pio train and pio deploy commands.

Step 4: Finally, query the engine to retrieve prediction (i.e., recommended **live streams for a particular user).

The query requires a user and number of recommendations and returns the top recommended live streams:

Using the iOS SDK the response can easily be integrated with Meerkat’s iOS app and we also offer a Java SDK for Android (Hint, hint).

That’s it. Done!

A smarter Meerkat is a more engaging Meerkat. Offering up the most relevant live streams for a user at any time, day or night, and most importantly not infuriating them with “Stream Over” messages without even a Fail Whale or Disappointed Meerkat to reconcile them.

Once you have a working engine for recommending live streams to users you can use PredictionIO’s built-in Evaluation Metrics and Hyperparameter Tuning to further fine tune. You may even decide make use of other interesting data features such as location, social connections, interest tags (e.g., “politics”, “funny”, “startups”) to recommend even more relevant live streams to users.

Have fun Machine Learning, you could even live stream it on Meerkat ;)

By Thomas Stone