Change Location Europe - Flag EUR
 
Mouser Europe - Flag Mouser Europe

Incoterms: DDP is available to customers in EU Member States.
All prices include duty and customs fees on select shipping methods.

Incoterms: DDU applies to most non-EU customers.
Duty, customs fees and taxes are collected at time of delivery.


Please confirm your currency selection:

Euros
Euros are accepted for payment only in EU member states these countries.

US Dollars
USD is accepted in all countries.

Other currency options may also be available - see
Mouser Worldwide.

Bench Talk for Design Engineers

Bench Talk

rss

Bench Talk for Design Engineers | The Official Blog of Mouser Electronics


Building a Better AI Recommendation Engine Stephen Cassar

(Source: Matej Kastelic/Shutterstock.com)

Have you noticed that recommendation engines aren’t that smart? Rotten Tomatoes does a great job telling you what critics and audiences think, but a movie with a 90+ rating might not be my cup of tea. And you might find a movie with a score under 30 points thoroughly enjoyable. Could artificial intelligence (AI) improve the odds?

AI systems need quality input to educate them. Pandora’s music recommendation engine combines human annotations on each song’s genre, rhythm, and progression, with hundreds of billions of points of feedback from users. It then feeds this through over 70 different algorithms. Impressive? After hitting skip so often, I am not so sure. I propose a simpler AI system to help us all determine which movie to watch next (Figure 1). Read on as I step through the design process I prefer.

Figure 1: Building a better AI recommendation with a few simple steps (Source: Mouser Electronics)

Start with a Question

I start by writing one question that covers the brief. “What would a smarter, more accurate movie recommendation engine look like?” Next, I write the payoff for the user: “The system will accurately predict if the user will like a movie.” Sure, a lot of white space is in between, but the payoff must answer the opening question. If it doesn’t, or if I can imagine other user payoffs that also answer the opening question, I go back and simplify either the opening question or the payoff until they fit.

Now that I have a starting point and an ending point, I work my way back from the payoff, simplifying as I progress, ensuring that each point along the way helps answer the first question. I jot down what I don’t like about current solutions. Rotten Tomatoes features mini-reviews that require reading and analysis. Too much brainpower! I want my system to decide for me. Will I like or dislike this movie? Or better (simpler) yet, the machine should only show me movies it thinks I will like.

For a machine to act like a machine, we must dehumanize it, stripping emotion out of the data. Movie critics are too opinionated for this application. We just need a thumbs up or thumbs down. A one, or a zero, because nothing is simpler than a binary object.

As I am sketching out systems, I like to generalize. “I don’t trust movie critic opinions because they don’t think the way I do. The system needs to matchmake me with others that think the way I do.” It seems like the pivotal question to answer here is “What makes one’s opinion trustworthy?” Many systems rely heavily on the ones (movies people like) and ignore the zeroes (movies people dislike), but I believe this is a mistake. The zeroes can help us improve the accuracy of our machine dramatically.

For instance: Jeremy from Chicago loved The Godfather Part III and disliked Top Gun: Maverick. I felt the same way about both movies. Next, Jeremy rates The Rhythm Section, a movie I have not yet watched. He gives it a thumbs up. Using this information, the system recommends I watch The Rhythm Section (Figure 2). If after watching the movie, I too give it a thumbs up, the weight of Jeremy’s recommendations increases and his opinion grows a little more trustworthy.

Figure 2: Recommendations will increase accuracy when more opinions are added to the system. (Source: Mouser Electronics)

It’s that simple. A well-designed system should achieve its objectives with only a few data points and build from there. In our case, our machine can continue to improve accuracy by collecting thumbs up and thumbs down for a growing list of movies from a growing set of users.

Simplify

With the mechanics of the machine designed, I next ask: “Can the system be simplified?”

I realize that I don’t need to know who Jeremy from Chicago is. I don’t need to see his profile picture or other recommended movies. I don’t even need to see his name. An anonymous system might be more desirable. I only care that the machine will suggest movies with growing precision so all social baggage can be eliminated from the system. I can imagine a clean user interface displaying the poster for just one movie the machine thinks I would enjoy.

I have seen systems fail because the designer fails to simplify along the way, so I try to remind myself that the simpler the solution, the more elegant, as long as it still achieves the intended goal.

Scale

My movie recommendation engine can now continue to get smarter by collecting just one data point on each movie. Acceptable accuracy could be achieved with as few as 50 movie ratings per user from 10,000 users. Of course, until the data proves itself and the machine can accurately predict which movie I should watch next, it’s all guesswork. But that’s the point. We have just designed a super simple system that can be easily tested for accuracy as we scale the model up to a larger user set.

Beauty is in the machine. As you design AI systems that are simple yet effective, ask questions. Simplify. Then scale



« Back


Stephen is often invited to advise Fortune 100 companies in overall Product Strategies and Architecture Design especially as it pertains to Workflow Management, eCommerce, Artificial Intelligence and Machine Learning, bringing with him an objective view of current processes and recommending small shifts in strategy that yield big long term results and immediate ROI.

As CTO / Chief System Architect, Stephen brings an in-depth knowledge of what it takes to build successful Software-as-a-Service platforms, often combining multiple legacy systems to achieve a secure, unified view of complex datasets, through scalable cloud-based architectures.


All Authors

Show More Show More
View Blogs by Date