0. 引言
作为一位狂热的足球迷,看到这篇在今年KDD上获得应用赛道最佳奖的论文,实在想不出有什么理由不分享给大家。作为应用向,这篇论文总体上非常简单,但是它的一些结果和论证技巧却比较有趣。因为自己也是球迷,所以在解读这篇文章时会“显示地”表明自己的部分观点。
1. 论文的研究动机
一个显而易见的事实是:对足球运动员在场上的行为进行评分是复杂且困难的。这个结论不光针对智能算法而言,对人来讲也是如此。我们几乎看不到任何针对足球比赛中球员行为的评分(例如梅西这脚射门该得多少分?C罗的这个点球该得多少分?),我们能看到的是关于球员在整场比赛后的综合得分。至于这个分是怎么来的,我相信它绝不是依据球员的每个行为得分综合而来,更可能的情况是靠专家的脑袋。所以这篇论文做的事情本身是复杂的。
复杂不代表没人做。作者在文中指出了之前一些研究存在的主要问题,当然这也就是这篇论文的核心动机了。
注:如果您是球迷朋友但不是计算机科学的研究者,请务必理解某些对人简单的行为对计算机而言是极其困难的。例如对于资深球迷,我相信只要给您足够的时间(并不需要太长),你总能设计一套对球员行为评分的方法,并且可能有点效果。但是对计算机程序而言,它很难理解球场上发生的一切,这需要大量当前AI领域的其它技术,例如行为识别、人员跟踪、场景理解等。然而这一切都非常不成熟。所以耐心看看当前最富成果的这篇论文吧。
- 一些研究只关心与射门或进球相关的行为,而完全忽略其它诸如抢断、传球、扑救等等行为。这显然丢失了太多可用的信息。
- 一些研究对所有行为的发生区域是不敏感的。这意味着对在后场无聊的倒脚和在中前场的一脚极具穿透力的直塞而言,模型对它们的评分一致!
- 大多数研究只考虑行为的瞬时效用,不会对其在未来一小段时间的内带来的作为给予正确评价。例如,让黄健翔大哥辞职的那场意大利对澳大利亚的比赛,那些主要关注射门或进球的模型可能会完全忽略格罗索的行为得分,更别提之前的那脚长传了(我记不起是谁了,能提醒我一下?)。
针对这几个问题,这篇KDD应用赛道最佳论文诞生了!
2. SPADL: A LANGUAGE FOR DESCRIBING PLAYER ACTIONS
名字挺玄乎的,其实简单来讲,作者定义了一种规则(名字就是SPADL)来描述球员的行为。在进一步介绍之前,先对文章使用的数据作一些说明。对于一场足球比赛,国外有一些公司(如Wyscout、Opta等)会通过比赛录像生成关于比赛的结构化事件数据。例如,一场比赛的第一个事件一定是“开场哨”;然后诸如“上半场10分10秒,中国队李可将球成功地传给了武磊”也是一个事件。那么一场比赛就是由很多这样的事件构成。不同的公司提供的事件数据的细节也是有区别的。例如Wyscout居然没有射门发生的位置信息!Opta能够细节到每个犯规的具体类型(手球、冲撞等)。
因为作者关心的是球员的行为,因此SPADL的作用就是把这些商业公司提供的“事件数据”转换成“球员的行为数据”。转换的结果就是每个行为由一个九元组构成:
StartTime: 行为开始时间;
EndTime: 行为结束时间;
StartLoc: 行为开始时所处位置(x,y);
EndLoc: 行为结束时所处位置(x,y);
Player: 执行行为的球员;
Team: 执行行为球员所属的球队(通常以“主队”或“客队”表示);
ActionType: 行为类型(如传球、射门、带球等);
BodyPart: 执行该行为的球员身体部位(如手、左脚、头等);
Result: 行为的结果,要么“成功”,要么“失败”。
所以实际上SPADL定义了球员行为的数据结构。
3. 球员行为评分
这部分仍然会很简单,只是公式会多点。令 a i \ a_i ai表示比赛中的第 i \ i i个行为, i \ i i也可以理解为时间。那么在任意时刻 i \ i i时,比赛状态定义为 S i = { a 0 , a 1 , . . . , a i } \ S_i = \left\{ a_0, a_1,...,a_i \right\} Si={ a0,a1,...,ai}. 换言之,时刻 i \ i i时的状态就是之前所有行为构成的集合。作者认为,球员每个行为的目的都是两方面的:一方面是改变本队的进球概率(增加或降低);另一方面是改变本队的失球概率(增加或降低)。用 h \ h h表示主队,用 v \ v v表示客队,令 p s c o r e ( S i , h ) \ p_{score}(S_i,h) pscore(Si,h)表示主队在状态 S i \ S_i Si未来一小段时间内(可以定义为 S i \ S_i Si之后的数个行为,例如2或3)取得进球的概率;令 p c o n c e d e s ( S i , h ) \ p_{concedes}(S_i,h) pconcedes(Si,h)表示主队在状态 S i \ S_i Si未来一小段时间内失球的概率。类似的,定义 p s c o r e ( S i , v ) \ p_{score}(S_i,v) pscore(Si,v)和 p c o n c e d e s ( S i , v ) \ p_{concedes}(S_i,v) pconcedes(Si,v)分别表示客队在在状态 S i \ S_i Si未来一小段时间内进球和失球的概率。上述四个概率的具体求法将在下一节中介绍,这里可以假设对任意时刻 i \ i i,我们都能够得到这四个概率。
那么时刻 i \ i i时的行为 a i \ a_i ai对本队进球的贡献得分定义为该行为对进球概率的改变值:
(1) Δ P s c o r e ( a i , x ) = P s c o r e (