Artificial intelligence in fantasy football

Contributions by Micah Forster, John Kent, Jeff Powell, and Tyler Sidell.

Speed reading all of the material on the internet about your fantasy football players and teams is a really bad idea. Keeping up with the torrent of information will lead to human data amnesia at best and a complete implosion of your fantasy football team at worst. Understanding the infinite amount of information and drawing conclusions between sources is an intractable problem that is not well suited for humans. Limited data understanding produces decisions saturated with uncertainty. Artificial intelligence (AI) techniques can help you focus on the decisions that matter such as who you should start and which players to trade.

To manage the data and decision space tsunami, you can use the simple and complementary user experiences of Player Insights with Watson and Trade Assistant with Watson to give you more confidence with your decisions. Player Insights with Watson summarizes player potential. You can quickly determine the comparative floors and ceilings between players. In parallel, Trade Assistant with Watson finds trades that will benefit the long-term outcome of your team. With these two systems in place, the fluid movement of players within a league becomes your new advantage.

The technologies behind both Player Insights with Watson and Trade Assistant with Watson use AI running on a hybrid cloud to help you enjoy fantasy football while increasing your likelihood to win. Let’s find out how.

AI in sports and entertainment

AI application within sports and entertainment Figure 1. AI application within sports and entertainment

Over the past several years, the field of computing contained mature technologies that contribute to AI. Debating, transaction optimization, and prescriptive techniques are some classic examples that have contributed to AI algorithms. IBM® has been leading the collaboration between industry, academia, and government sectors over several decades to create machines capable of extending human capability through a variety of AI algorithms. This pyramid of AI capabilities shown in Figure 1 depicts the building blocks for advanced systems. The journey up the pyramid is enabled by the technology behind IBM Project Debater, cloud-based IBM Watson® Services, and IBM AI research projects. Each of these groundbreaking projects produced novel technologies for a new and evolving industry: optimization with neural techniques.

The first step of the pyramid includes foundational technologies within AI. Here, we focus on descriptive analytics such as traditional statistics like histograms, means, modes, and variance. Many of these count statistics are used within hypothesis testing, significance, and correlation measures. At Wimbledon, we deployed SlamTracker, a real-time score application that includes a vast amount of statistics and analytics. For the Keys to the Match feature, we cluster players into player types and performance levels. Then, we pull data related to the currently scheduled-based statistics. We start to go up the AI capability tree by applying decision trees to determine what strategy a player should execute to increase their chances to win.

The next step is predictive modeling, the techniques of which can be broadly defined as a type of machine learning. Predictive modeling includes traditional support vector machines, density-based clustering, and forecasting models. At the Masters over the last three years, we applied predictive models to determine the overall excitement level of video highlights. In particular, the overall excitement level is an ensemble of a support vector machine and an xgb-boost algorithm. Here, we create candidate highlights from video streams and rank the excitement based on game context, gesture, and sound predictors. This is all about predictive modeling.

The third step of the pyramid is the technological advancements within natural language processing. This has been led by IBM with projects you might know about such as Project Debater and the Jeopardy! Challenge. In this space, AI has gone through rapid maturation through application. We use many core techniques within natural language processing such as text summarization, evidence detection, and explicit semantic analysis. At the US Open 2020, we engaged the crowd with Match Insights with Watson and Open Questions with Watson. We posed several questions to the crowd such as “Did Pete Sampras have the best serve-and-volley game?” Fans would provide their opinions on the subject. From there, we use natural language processing to determine if it’s a pro or con argument as well as the quality of the argument. Then, the input was used as part of the narration that supported the original notion about Pete Sampras.

Continuing up the AI capability pyramid, we enter into the renaissance of neural modeling. We have contributed to the field in many ways. For example, at the 2020 GRAMMY Awards, we contextualized artists’ nominations with insightful factoids that had to be short stand-alone facts about the artist. We used models such as the Bidirectional Encoder Representations from Transformers to help us determine if a sentence was insightful.

Now, at the top of the pyramid is prescriptive optimization. Many of the techniques in the pyramid are building blocks that support prescriptive outcomes. Within ESPN Fantasy Football, Trade Assistant with Watson provides users with a trading plan. We optimize player value while minimizing player cost. This is a consumer-facing application that was available for the entire 2020 Fantasy Football season.

The culmination of our projects within sports and entertainment are exemplars of the use of AI in the real world. But let’s focus now on fantasy football.

AI in fantasy football

AI within fantasy football Figure 2. AI within fantasy football

We have partnered with ESPN over the past four years to help fantasy football managers from expert to beginner make evidence-based decisions. Throughout this project, we trailblazed the way AI is used by consumers.

In the first half of 2017, we met with ESPN at the IBM labs in Austin, Texas. We began ideating around the art of the possible, or what the labs called “throwing mud on the wall and seeing what sticks.” During the first evening, a few IBM engineers went out for dinner and sketched out an architecture around natural language processing technologies. I showed the back-of-the-napkin sketch to other IBM colleagues for a sanity check. Luckily, we still have our sanity today (at least I think). Next, we showed ESPN our ideas. Collectively, we decided to build a system that could read the “internet” during the NFL seasons to predict states and trend performance about players. We didn’t know if it would work nor be accurate enough to help managers make meaningful decisions. It turns out that our system met accuracy thresholds at every step along the way.

In the last half of 2017, we took on the challenge of a stealth release onto the ESPN Fantasy Football desktop experience. We had a very simplistic player card that was represented as an iframe tab. This was the first time consumers saw our player insights. We showed boom and bust percentages, likelihood to play, and the odds of having a hidden injury. We even showed score distributions. After user testing and feedback, the overall system was accepted for the 2018 season.

With everyone on board for the 2018 season, we then added our application to the ESPN mobile experience. In addition to the user experience, our pipeline now was able to ingest videos and podcasts to extract insights from. Watson could now watch videos and listen to podcasts for further player performance inference. Some of the feedback we got for our UI was that users liked the compare player feature allowing them to visualize the contrast of outcomes between players. These feature enhancements resulted in an unprecedented adoption rate of our work. Week over week, traffic to our experience was exponentially growing.

In 2019, we saw traffic beyond what we could have imagined. We were serving up over 2 billion AI insights per day, most of which were in North America. For this iteration, we added in debiasing algorithms to ensure that player boom and busts were fair across teams irrespective of team popularity. With all these cutting-edge enhancements being applied to our novel system, a question began to emerge that could only be answered through AI innovation. How could we create an experience with AI built for you?

As the saying goes, a happy league is an active league, so we created Trade Assistant with Watson. The feature was available throughout the 2020 season. Trades are recommended for you based on your league’s rules, competition, and roster. This is also a very challenging project because the judgement of trades is extremely subjective.

Integrated architecture

Integrated AI experience with Trade Assistant Figure 3. Integrated AI experience with Trade Assistant with Watson and Player Insights with Watson

As shown in Figure 3, the overall AI architecture of the system has Player Insights and Trade Assistant with Watson running together.

First, let’s look at the Player Insights system. In batch and crawler mode, the Player Insights system is constantly processing players through the AI pipeline to bring you a deeper level of understanding about your players. The Python code creates output through different phases of the machine learning steps and writes to an IBM Db2® on Cloud database. A Node.js content generator produces insights that are uploaded to our origin, IBM Cloud Object Storage. From here, consumers can access the information through the IBM Content Delivery Network. Both Db2 and the Content Delivery Network are the integration points between Player Insights and Trade Assistant.

The Trade Assistant batch job pulls data from Db2 and the Content Delivery Network to create the broad variables we mentioned before. This data is then uploaded to IBM Cloud Object Storage and available for the 525 on demand Red Hat OpenShift™ Kubernetes Service pods. Each of the pods refreshes memory every five minutes to get the latest valuation and cost variables. As requests are received from fantasy team owners, we create trade packages and send them back to ESPN for filtering.

All user traffic goes through our Content Delivery Network to receive AI insights that were computed by batch jobs or directly to our scaled-out OpenShift clusters. In this way, users have a unified experience between the ESPN product and the two IBM projects.

AI at scale

Fantasy football complementaty systems Figure 4. Fantasy football complementary systems

Player Insights with Watson and Trade Assistant with Watson are complementary systems. Both are trailblazers in AI that run on the Red Hat OpenShift Kubernetes Service. However, the computing request paradigm between both systems diverges into two different forms.

Player Insights with Watson runs through batch jobs every night to produce AI information about the top fantasy football players. After the batch job has run for all of the top fantasy players, our crawler app is then active to detect if there are changes to the player’s status since the batch run. These detected changes can be either the player’s projected score has updated or if they’ve been designated to be on/off injured reserve, suspended, or even a bye. When these changes have been detected for a given player, the system then re-processes the player through the pipeline to reflect the latest player updates. Similar to the batch, these updates are accessible in the UI through a layered Content Delivery Network. This process to regenerate changed player insights is done in near real time to provide the user with a desirable experience.

Trade Assistant with Watson provides trades in response to user demand. The computing is dynamic with no caching. As a result, Trade Assistant has 528 versus Player Insights 9 OpenShift pods to accommodate for on demand computing for trade generation. We parallelize hundreds of requests each second with sub-second response time. The Player Insights system does not serve any traffic from origin servers other than from IBM Cloud Object Storage. All traffic to get player insights goes through web acceleration tiers.

The clusters that support each project are significantly different. Player Insights maintains six worker machines with eight cores and 32GB of RAM. Going up in compute, Trade Assistant requires 30 workers and 18 ingress nodes over three different sites. For Player Insights, the IBM and ESPN Content Delivery Network have thousands of edge servers around the world that are accessed based on Akamai Global Traffic Management.

Notice that within Figure 4, we require a large number of cores for Trade Assistant’s deep search algorithm. Trade Assistant is built to be as self-contained as possible. The request payloads contain the required data for the algorithm such as team rosters and league rules. Player Insights is different. All data is gathered through ESPN and IBM APIs such as IBM Watson Discovery™. We have a lot of external dependencies for Player Insights such as Db2 on Cloud. The Trade Assistant on demand portion is state agnostic and does not need to save data.

Also, keep in mind that we deployed this project at the same time as the US Open projects. Both used the same regional sites. As load and demand shifted for each event, we were able to shift and move around containers in a portable way on Red Hat OpenShift Kubernetes.

Your picks

You can leverage our AI-based experiences to improve your team by making trades with your competition while picking the players with the highest upside to start. As we prepare for the next season, tell us how we are doing so we can start retraining our algorithms for you. #winwithwatson