Bundesliga Match Fact Skill: Kvantifiera fotbollsspelares egenskaper med hjälp av maskininlärning på AWS

Källnod: 1195672

Inom fotboll, liksom i många sporter, har diskussioner om enskilda spelare alltid varit en del av det roliga. "Vem är den bästa målskytten?" eller "Vem är försvararnas kung?" är frågor som diskuteras ständigt av fansen, och sociala medier förstärker denna debatt. Tänk bara på att bara Erling Haaland, Robert Lewandowski och Thomas Müller har sammanlagt 50 miljoner följare på Instagram. Många fans är medvetna om den otroliga statistik som stjärnspelare som Lewandowski och Haaland skapar, men historier som denna är bara toppen av isberget.

Tänk på att nästan 600 spelare är under kontrakt i Bundesliga, och varje lag har sina egna mästare – spelare som introduceras för att ta med sig en specifik färdighet i en match. Titta till exempel på Michael Gregoritsch från FC Augsburg. När detta skrivs (matchdag 21) har han gjort fem mål under säsongen 21/22, inget som skulle få någon att nämna honom i ett samtal om de stora målskyttarna. Men låt oss titta närmare: om du ackumulerar de förväntade målvärdena (xGoals) för alla målchanser som Gregoritsch hade den här säsongen, är siffran 1.7. Det betyder att han överpresterade på sina skott på mål med +194 % och gjorde 3.2 fler mål än väntat. I jämförelse överpresterade Lewandowski med endast 1.6 mål (+7%). Vilken bedrift! Tydligen tar Gregoritsch med sig en speciell skicklighet till Augsburg.

Så hur belyser vi alla dolda historier om enskilda Bundesliga-spelare, deras färdigheter och inverkan på matchresultat? Gå in i det nya Bundesliga Match Fact som drivs av AWS som heter Skill. Skill har utvecklats genom djupgående analys av DFL och AWS för att identifiera spelare med färdigheter i fyra specifika kategorier: initiator, avslutare, bollvinnare och sprinter. Det här inlägget ger en djupdykning i dessa fyra färdigheter och diskuterar hur de implementeras på AWS-infrastruktur.

En annan intressant punkt är att fram till nu har Bundesliga Match Facts utvecklats oberoende av varandra. Skill är det första Bundesliga Match Fact som kombinerar resultatet av flera Bundesliga Match Facts i realtid med hjälp av en strömningsarkitektur byggd på Amazon Managed Streaming Kafka (Amazon MSK).

initiator

En initiativtagare är en spelare som utför ett stort antal värdefulla första och andra assist. För att identifiera och kvantifiera värdet av dessa assists introducerade vi det nya måttet xAssist. Den beräknas genom att spåra den sista och näst sista passningen före ett skott mot mål, och tilldela respektive xGoals-värde till dessa åtgärder. En bra initiativtagare skapar möjligheter under utmanande omständigheter genom att framgångsrikt genomföra pass med hög svårighetsgrad. För att utvärdera hur svårt det är att slutföra ett givet pass använder vi våra befintliga xPass modell. I detta mått utesluter vi medvetet kryss och frisparkar för att fokusera på spelare som skapar målchanser med sina exakta assist från öppet spel.

Färdighetspoängen beräknas med följande formel:

Låt oss titta på den nuvarande initiativtagaren till rang 1, Thomas Müller, som ett exempel. Han har samlat in ett xAssist-värde på 9.23 när detta skrivs (matchdag 21), vilket betyder att hans passningar för nästa spelare som sköt mot målet har genererat ett totalt xGoal-värde på 9.23. Förhållandet xAssist per 90 minuter är 0.46. Detta kan beräknas från hans totala speltid för innevarande säsong, vilket är anmärkningsvärt — över 1,804 3.80 minuters speltid. Som en andra assist genererade han ett totalt värde på 0.19, vilket motsvarar 90 sekunders assist per 38 minuter. Totalt var 58 av hans 11 första assist svåra passningar. Och som andra assist var 28 av hans XNUMX pass också svåra pass. Med denna statistik har Thomas Müller kastat sig in på första plats i initiativtagarrankingen. Som jämförelse presenterar följande tabell värdena för de nuvarande topp tre.

.. xAssist xAssister90 xSecondAssist xSecondAssistper90 DifficultPassesAssisted DifficultPassesAssisted2 Slutresultat
Thomas Müller – plats 1 9.23 0.46 3.80 0.18 38 11 0.948
Serge Gnabry – plats 2 3.94 0.25 2.54 0.16 15 11 0.516
Florian Wirtz – plats 3 6.41 0.37 2.45 0.14 21 1 0.510

Finisher

En avslutare är en spelare som är exceptionellt bra på att göra mål. Han har en hög skotteffektivitet och gör många mål för sin speltid. Färdigheten baseras på faktiska gjorda mål och dess skillnad mot förväntade mål (xGoals). Detta gör att vi kan utvärdera om chanserna utnyttjas väl. Låt oss anta att två anfallare har samma antal mål. Är de lika starka? Eller gör en av dem poäng från lätta omständigheter medan den andra avslutar i utmanande situationer? Med skotteffektivitet kan detta besvaras: om de gjorda målen överstiger antalet xGoals, överpresterar en spelare och är en mer effektiv skytt än genomsnittet. Genom storleken på denna skillnad kan vi kvantifiera i vilken utsträckning en skytts effektivitet slår genomsnittet.

Färdighetspoängen beräknas med följande formel:

För avslutaren fokuserar vi mer på mål. Följande tabell ger en närmare titt på den nuvarande topp tre.

.. Mål Mål per 90 ShotEfficiency Slutresultat
Robert Lewandowski – plats 1 24 1.14 1.55 0.813
Erling Haaland – Rank 2 16 1.18 5.32 0.811
Patrik Schick – plats 3 18 1.10 4.27 0.802

Robert Lewandowski har gjort 24 mål den här säsongen, vilket placerar honom på första plats. Även om Haaland har en högre skotteffektivitet räcker det fortfarande inte för Haaland att rankas först, eftersom vi ger högre vikt till gjorda mål. Detta tyder på att Lewandowski tjänar mycket på både kvaliteten och kvantiteten av mottagna assist, även om han gör exceptionellt bra mål. Patrick Schick har gjort två mål fler än Haaland, men har ett lägre mål per 90 minuters takt och en lägre skotteffektivitet.

Sprinter

Sprintern har den fysiska förmågan att nå höga topphastigheter, och gör det oftare än andra. För detta ändamål utvärderar vi genomsnittliga topphastigheter för alla matcher under en spelares aktuella säsong och inkluderar frekvensen av sprints per 90 minuter, bland annat. En sprint räknas om en spelare springer i minst 4.0 m/s i mer än två sekunder och når en topphastighet på minst 6.3 m/s under denna tid. Sprintens varaktighet kännetecknas av tiden mellan första och sista gången tröskeln på 6.3 m/s nås, och måste vara minst 1 sekund lång för att kunna kvitteras. En ny sprint kan endast anses ha inträffat efter att tempot åter sjunkit under 4.0 m/s-tröskeln.

Färdighetspoängen beräknas med följande formel:

Formeln tillåter oss att utvärdera de många sätt vi kan se på sprints av spelare, och gå längre än att bara titta på topphastigheterna dessa spelare producerar. Till exempel har Jeremiah St. Juste nuvarande säsongsrekord på 36.65 km/h. Men om vi tittar på frekvensen av hans spurter, finner vi att han bara spurtar nio gånger i snitt per match! Alphonso Davies å andra sidan kanske inte är lika snabb som St. Juste (topphastighet 36.08 km/h), men utför svindlande 31 spurter per match! Han spurtar mycket oftare med en mycket högre medelhastighet, vilket öppnar upp utrymme för sitt lag på planen.

Bollvinnare

En spelare med denna förmåga orsakar bollförluster för motståndarlaget, både totalt och respektive sin speltid. Han vinner ett stort antal mark- och luftdueller, och han stjäl eller snappar upp bollen ofta, vilket skapar en säker bollkontroll själv och en möjlighet för hans lag att gå mot attack.

Färdighetspoängen beräknas med följande formel:

När detta skrivs är den första bollvinnaren Danilo Soares. Han har totalt 235 defensiva dueller. Av de 235 defensiva duellerna har han vunnit 75 och besegrat motståndarna i en face-off. Han har snappat upp 51 bollar den här säsongen i sin spelposition som defensiv back, vilket ger honom en vinstgrad på cirka 32 %. I genomsnitt snappade han 2.4 bollar per 90 minuter.

Skicklighetsexempel

Skill Bundesliga Match Fact gör det möjligt för oss att avslöja förmågor och styrkor hos Bundesliga-spelare. Skicklighetsrankingen sätter spelare i rampljuset som kanske har gått obemärkt förbi i rankningar av konventionell statistik som mål. Ta till exempel en spelare som Michael Gregoritsch. Gregoritsch är en anfallare för FC Augsburg som placerade sig på sjätte plats i slutspelsrankingen från och med matchdag 21. Han har gjort fem mål hittills, vilket inte skulle placera honom i toppen av någon målrankning. Han lyckades dock göra detta på bara 663 spelade minuter! Ett av dessa mål var den sena kvitteringen i den 97:e minuten som hjälpte Augsburg att undvika bortaförlusten i Berlin.

Genom Skill Bundesliga Match Fact kan vi också känna igen olika egenskaper hos varje spelare. Ett exempel på detta är Dortmund-stjärnan Erling Haaland, som också har förtjänat märket som sprinter och avslutare, och för närvarande är placerad på sjätte plats bland Bundesliga-sprintrar.

Alla dessa mätvärden är baserade på spelarrörelsedata, målrelaterade data, bollaktionsrelaterade data och passningsrelaterade data. Vi bearbetar denna information i datapipelines och extraherar nödvändig relevant statistik per färdighet, vilket gör att vi kan beräkna utvecklingen av alla mätvärden i realtid. Många av de tidigare nämnda statistikerna är normaliserade efter tid på planen, vilket gör det möjligt att ta hänsyn till spelare som har lite speltid men som presterar fantastiskt bra när de spelar. Kombinationerna och vikterna av måtten kombineras till en enda poäng. Resultatet är en rankning för alla spelare på de fyra spelarfärdigheterna. Spelare som rankas bland de 10 bästa får ett skicklighetsmärke för att hjälpa fansen att snabbt identifiera de exceptionella egenskaper de tillför sina lag.

Implementering och arkitektur

Bundesliga Matchfakta som har utvecklats fram till denna punkt är oberoende av varandra och förlitar sig endast på intag av positions- och händelsedata, såväl som deras egna beräkningar. Detta ändras dock för nya Bundesliga Match Fact Skill, som beräknar skicklighetsrankningar baserat på data som produceras av befintliga matchfakta, som till exempel xGoals eller xPass. Resultatet av en händelse, möjligen ett otroligt mål med låga chanser att gå in, kan ha en betydande inverkan på färdighetsrankningen för avslutare. Därför har vi byggt en arkitektur som alltid ger den mest uppdaterade kompetensrankningen när det finns en uppdatering av underliggande data. För att uppnå realtidsuppdateringar av kompetensen använder vi Amazon MSK, en hanterad AWS-tjänst för Apache Kafka, som en dataströmnings- och meddelandelösning. På så sätt kan olika Bundesliga Matchfakta kommunicera de senaste händelserna och uppdateringarna i realtid.

Den underliggande arkitekturen för Skill består av fyra huvuddelar:

  • An Amazon Aurora Serverless kluster lagrar alla utdata av befintlig matchfakta. Detta inkluderar till exempel data för varje pass (som xPass, spelare, avsedd mottagare) eller skott (xGoal, player, goal) som har hänt sedan introduktionen av Bundesliga Match Facts.
  • En central AWS Lambda function skriver Bundesliga Match Fact-utdata till Aurora-databasen och meddelar andra komponenter att det har skett en uppdatering.
  • En lambdafunktion för varje enskild färdighet beräknar färdighetsrankningen. Dessa funktioner körs när nya data finns tillgängliga för beräkningen av den specifika färdigheten.
  • Ett Amazon MSK Kafka-kluster fungerar som en central kommunikationspunkt mellan alla dessa komponenter.

Följande diagram illustrerar detta arbetsflöde. Varje Bundesliga Match Fact skickar omedelbart ett händelsemeddelande till Kafka när det sker en uppdatering av en händelse (som ett uppdaterat xGoals-värde för en skotthändelse). Den centrala dispatcher Lambda-funktionen utlöses automatiskt när en Bundesliga Match Fact skickar ett sådant meddelande och skriver dessa data till databasen. Sedan skickar den ett annat meddelande via Kafka som innehåller den nya datan tillbaka till Kafka, vilket fungerar som en trigger för de individuella färdighetsberäkningsfunktionerna. Dessa funktioner använder data från denna triggerhändelse, såväl som det underliggande Aurora-klustret, för att beräkna och publicera de senaste färdighetsrankningarna. För en mer djupgående titt på användningen av Amazon MSK inom detta projekt, se Set Piece Threat-blogginlägget.

Sammanfattning

I det här inlägget visade vi hur den nya Bundesliga Match Fact Skill gör det möjligt att objektivt jämföra Bundesliga-spelare på fyra kärnspelares dimensioner, bygga vidare på och kombinera tidigare oberoende Bundesliga Match Facts i realtid. Detta gör att både kommentatorer och fans kan avslöja tidigare obemärkta spelarförmågor och kasta ljus över de roller som olika Bundesliga-spelare fyller.

Det nya Bundesliga Match Fact är resultatet av en djupgående analys av Bundesligas fotbollsexperter och AWS-dataforskare för att destillera och kategorisera fotbollsspelares kvaliteter baserat på objektiva prestationsdata. Spelarskicklighetsmärken visas i laguppställningen och på spelarens detaljsidor i Bundesliga-appen. I sändningen ges spelarkunskaper till kommentatorer genom databerättelsesökare och visas visuellt för fansen vid spelarbyten och när en spelare går upp till respektive topp 10-rankning.

Vi hoppas att du gillar detta helt nya Bundesliga Match Fact och att det ger dig nya insikter i spelet. För att lära dig mer om partnerskapet mellan AWS och Bundesliga, besök Bundesliga på AWS!


Om författarna

simon rolfes spelade 288 Bundesligamatcher som central mittfältare, gjorde 41 mål och vann 26 landskamper för Tyskland. För närvarande fungerar Rolfes som sportchef på Bayer 04 Leverkusen där han övervakar och utvecklar spelarlistan, scoutingavdelningen och klubbens ungdomsutveckling. Simon skriver också veckovisa kolumner på Bundesliga.com om den senaste Bundesliga Match Facts powered by AWS

Luuk Figdor är Senior Sports Technology Specialist i AWS Professional Services-teamet. Han arbetar med spelare, klubbar, ligor och medieföretag som Bundesliga och Formel 1 för att hjälpa dem berätta historier med data med hjälp av maskininlärning. På fritiden gillar han att lära sig allt om sinnet och skärningspunkten mellan psykologi, ekonomi och AI.

Pascal Kühner är en molnapplikationsutvecklare i AWS Professional Services Team. Han arbetar med kunder i olika branscher för att hjälpa dem att uppnå sina affärsresultat via applikationsutveckling, DevOps och infrastruktur. Han brinner mycket för sport och tycker om att spela basket och fotboll på fritiden.

Tareq Haschemi är konsult inom AWS Professional Services. Hans färdigheter och expertområden inkluderar applikationsutveckling, datavetenskap, maskininlärning och big data. Baserad i Hamburg stödjer han kunder med att utveckla datadrivna applikationer inom molnet. Innan han kom till AWS var han även konsult inom olika branscher som flyg och telekommunikation. Han brinner för att möjliggöra för kunder på deras data/AI-resa till molnet.

Jakub Michalczyk är dataforskare på Sportec Solutions AG. För flera år sedan valde han mattestudier framför att spela fotboll, eftersom han kom fram till att han inte var tillräckligt bra på det sistnämnda. Nu kombinerar han båda dessa passioner i sin professionella karriär genom att tillämpa maskininlärningsmetoder för att få en bättre inblick i detta vackra spel. På fritiden tycker han fortfarande om att spela sjumannafotboll, titta på kriminalfilmer och lyssna på filmmusik.

Javier Poveda-Panter är en Data Scientist för EMEA sportkunder inom AWS Professional Services-teamet. Han gör det möjligt för kunder inom området för åskådarsporter att förnya och dra nytta av sin data, och leverera högkvalitativa användar- och fansupplevelser genom maskininlärning och datavetenskap. Han följer sin passion för ett brett utbud av sport, musik och AI på fritiden.

Tidsstämpel:

Mer från AWS maskininlärning