Inspiration

I believe we're moving from static, flat search engine to more advanced tools that allow users to dive deeper in the sources. Thus offering more insights, agility along with speed of search and accuracy of results. Inspired from recommendation algorithms and progressive web apps, considering that the future is both talkative (text-to-speech smart digital products Amazon Echo-like), mobile and smart distributed, we are working on the news & media outlet recommender solution on the go!

What it does

Search through not only structured but unstructured data also (text, image, video) is quite unique at the moment. Only currently under beta at major tech companies (mainly Google, IBM and Microsoft). On top of that, we are providing more than simply a generic demonstration of the technology: we are proposing a dedicated search tool solution for businesses which rely on media data type.

How I built it

Particularly useful for the Media industry, that piece of software delivers via progressive web app a “search engine-on-the-go” that implements machine learning algorithms for a full-text search on multiple structured and unstructured data (videos, documents, images). Request to the dataset(s) are made either by simply typing on the search field or by, and that's the fun part, by talking to the app — like we would with Amazon Alexa's Echo or Google Home.

The initial idea was to build a news article recommender that would be led by voice recognition, pick up on user's pattern and display more content of interest overtime, regardless of the media item type. I then quickly came to understand that such project would be too big and maybe not too focusing enough on bringing real value to end users. Instead, I took the decision to break it down into three separate pieces of software, each implementing a combination of two or three of our available AI solutions: (A) items recommendation, (B) search within video materials, (C) voice-driven queries.

The workflow was roughly as follow:

  • #1 Fetch / Collect data, clean, process data, apply models. Here, choose the recommendation algorithms to apply, if appropriate.
    Ex. Content Based Recommendation (CBR) implementing standard Logistic regressions for example, Collaborative Filtering (CF) implementing "weighted" Linear regression
  • #2 Build the web app.
  • #3 Deploy the machine learning model to a simple and sleek user interface (UI), hosted on the cloud
  • #4 Data feed the algorithm via API, for more simplicity of the solution while keeping high standards of effectiveness, No need to reinvent the wheel, unless specific business needs require a customized, proprietary solution.
  • Challenges I ran into

    On the choice of coding stack for the web app, I decided to go for HTML/CSS/JavaScript and more particularly, Marionette.JS. Why such framework? Since we're playing with data aimed to be kept in sync on our a web application between the database on our server, the JavaScript logic and the HTML UI, we want to avoid the risk they end up as tangled piles of jQuery. Therefore, we call for the minimal set of data-structuring (models and collections) and user interface (views and URLs) primitives characteristic of a Backbone application (see backbonejs.org). Furthermore, a simpler version can be found in Marionette.js, framework that makes it easy to compose rich layouts out of small components, organizing our web app through small Views.

    Accomplishments that I'm proud of

    As a result, we ended up with a CMS-looking, relatively light-weight app that displays content of interest, over multiple views and models, without the requirement to actually master js language ;) As long as we can build our simple UI, feed it with data and display results accordingly to users needs. All this leveraging AI capabilities from established cloud providers, processing big unstructured datasets and deploying on web mobile devices that utilizes mic and speakers for the benefit of the customer.

    What I learned

    First thing first, I once again liked building product / service solutions for "real-life use" :) Thus, business processes were intrinsically part of the creation process, to me. Subsequently, to ensure software solution is fit for purpose and of quality, I proceed as follows

    1. #1 Set the framework, business and customer focused to start
    2. #1.1 Running surveys with customers segment / users panels / etc.
    3. #1.2 Design a mockup, wireframe for early prototyping, implementing design thinking / lean principles / etc.
    4. #2 Starting coding locally, run local server and datasets (sample if big data)
    5. #2.1 Testing intermediary results + iterate
    6. #2.2 Deploy to remote repository ( gihub/bitbucket ) and/or servers (Azure Cloud here)
    7. #3 User testing interviews
    8. #3.1 A/B testing, usage tracking with google analytics or keen.io (ex. samples below) for further improvements
    9. What's next for Smart Media Search

      Next step should be to have the AI assistant speaking back at you with in a natural language manner, by fetching + processing + exploiting texts from voice data to spot on "key words" from search requests and act accordingly.

    Built With

    Share this project:

    Updates