0. 引言

作为一位狂热的足球迷,看到这篇在今年KDD上获得应用赛道最佳奖的论文,实在想不出有什么理由不分享给大家。作为应用向,这篇论文总体上非常简单,但是它的一些结果和论证技巧却比较有趣。因为自己也是球迷,所以在解读这篇文章时会“显示地”表明自己的部分观点。

1. 论文的研究动机

一个显而易见的事实是:对足球运动员在场上的行为进行评分是复杂且困难的。这个结论不光针对智能算法而言,对人来讲也是如此。我们几乎看不到任何针对足球比赛中球员行为的评分(例如梅西这脚射门该得多少分?C罗的这个点球该得多少分?),我们能看到的是关于球员在整场比赛后的综合得分。至于这个分是怎么来的,我相信它绝不是依据球员的每个行为得分综合而来,更可能的情况是靠专家的脑袋。所以这篇论文做的事情本身是复杂的。

复杂不代表没人做。作者在文中指出了之前一些研究存在的主要问题,当然这也就是这篇论文的核心动机了。


注:如果您是球迷朋友但不是计算机科学的研究者,请务必理解某些对人简单的行为对计算机而言是极其困难的。例如对于资深球迷,我相信只要给您足够的时间(并不需要太长),你总能设计一套对球员行为评分的方法,并且可能有点效果。但是对计算机程序而言,它很难理解球场上发生的一切,这需要大量当前AI领域的其它技术,例如行为识别、人员跟踪、场景理解等。然而这一切都非常不成熟。所以耐心看看当前最富成果的这篇论文吧。


  1. 一些研究只关心与射门或进球相关的行为,而完全忽略其它诸如抢断、传球、扑救等等行为。这显然丢失了太多可用的信息。
  2. 一些研究对所有行为的发生区域是不敏感的。这意味着对在后场无聊的倒脚和在中前场的一脚极具穿透力的直塞而言,模型对它们的评分一致!
  3. 大多数研究只考虑行为的瞬时效用,不会对其在未来一小段时间的内带来的作为给予正确评价。例如,让黄健翔大哥辞职的那场意大利对澳大利亚的比赛,那些主要关注射门或进球的模型可能会完全忽略格罗索的行为得分,更别提之前的那脚长传了(我记不起是谁了,能提醒我一下?)。

针对这几个问题,这篇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. 球员行为评分

这部分仍然会很简单,只是公式会多点。令ai\ a_i ai​表示比赛中的第i\ i i个行为,i\ i i也可以理解为时间。那么在任意时刻i\ i i时,比赛状态定义为Si={a0,a1,...,ai}\ S_i = \left\{ a_0, a_1,...,a_i \right\} Si​={a0​,a1​,...,ai​}. 换言之,时刻i\ i i时的状态就是之前所有行为构成的集合。作者认为,球员每个行为的目的都是两方面的:一方面是改变本队的进球概率(增加或降低);另一方面是改变本队的失球概率(增加或降低)。用h\ h h表示主队,用v\ v v表示客队,令pscore(Si,h)\ p_{score}(S_i,h) pscore​(Si​,h)表示主队在状态Si\ S_i Si​未来一小段时间内(可以定义为Si\ S_i Si​之后的数个行为,例如2或3)取得进球的概率;令pconcedes(Si,h)\ p_{concedes}(S_i,h) pconcedes​(Si​,h)表示主队在状态Si\ S_i Si​未来一小段时间内失球的概率。类似的,定义pscore(Si,v)\ p_{score}(S_i,v) pscore​(Si​,v)和pconcedes(Si,v)\ p_{concedes}(S_i,v) pconcedes​(Si​,v)分别表示客队在在状态Si\ S_i Si​未来一小段时间内进球和失球的概率。上述四个概率的具体求法将在下一节中介绍,这里可以假设对任意时刻i\ i i,我们都能够得到这四个概率。

那么时刻i\ i i时的行为ai\ a_i ai​对本队进球的贡献得分定义为该行为对进球概率的改变值:
(1)ΔPscore(ai,x)=Pscore(Si,x)−Pscore(Si−1,x).\Delta P_{score}(a_i,x)=P_{score}(S_i,x)-P_{score}(S_{i-1},x). \tag{1} ΔPscore​(ai​,x)=Pscore​(Si​,x)−Pscore​(Si−1​,x).(1)

同理,时刻i\ i i时的行为ai\ a_i ai​对本队失球的贡献得分可定义为该行为对失球概率的改变值:
(2)ΔPconcedes(ai,x)=Pconcedes(Si,x)−Pconcedes(Si−1,x).\Delta P_{concedes}(a_i,x)=P_{concedes}(S_i,x)-P_{concedes}(S_{i-1},x). \tag{2} ΔPconcedes​(ai​,x)=Pconcedes​(Si​,x)−Pconcedes​(Si−1​,x).(2)

其中x\ x x取值为"h\ h h"(主队)或"v\ v v"(客队)。注意,ΔPscore(ai,x)\ \Delta P_{score}(a_i,x) ΔPscore​(ai​,x)越高,表示行为ai\ a_i ai​对本队取得进球越有利,所以ΔPscore(ai,x)\ \Delta P_{score}(a_i,x) ΔPscore​(ai​,x)越高越好;而ΔPconcedes(ai,x)\ \Delta P_{concedes}(a_i,x) ΔPconcedes​(ai​,x)越高,则表示行为ai\ a_i ai​对本队取得丢球越有利,因此ΔPconcedes(ai,x)\ \Delta P_{concedes}(a_i,x) ΔPconcedes​(ai​,x)需要越低越好。基于此,定义行为ai\ a_i ai​的最终评价得分为:
(3)V(ai,x)=ΔPscore(ai,x)−ΔPconcedes(ai,x).V(a_i,x)=\Delta P_{score}(a_i,x) - \Delta P_{concedes}(a_i,x). \tag{3} V(ai​,x)=ΔPscore​(ai​,x)−ΔPconcedes​(ai​,x).(3)

最后使用如下方法将球员的行为得分转换为球员的综合得分。记APT\ A^T_P APT​为球员P\ P P在一段时间T\ T T内的所有行为集合,那么P\ P P的综合得分为:
(4)rating(p,x)=90m∑ai∈APTV(ai,x)rating(p,x)=\frac{90}{m}\sum_{a_i \in A^T_P }V(a_i,x) \tag{4} rating(p,x)=m90​ai​∈APT​∑​V(ai​,x)(4)
其中m\ m m为该球员上场时间(分钟)。简单来讲,公式(4)把球员在m\ m m分钟的行为放大至90分钟。例如假设萨拉赫在上半场十分钟内射门了1次,并且该次射门的评分值为0.1,然后立马被拉莫斯搞翻下场,那么按照公式(4),萨拉赫在90分钟的表现相当于射门了9次,并且每次射门的评分都为0.1.这种做法显然比较粗暴了一点,但确实也很难有更好且简单的策略能够代替。

至此,我们已经得到了球员的每个行为得分的计算方法和球员综合得分的计算方法。

4. 四个概率值的计算

记goal(h)\ goal(h) goal(h)表示主队进球;goal(v)\ goal(v) goal(v)表示客队进球;Fik=[ai+1,ai+2,...,ai+k]\ F_i^k = [a_{i+1}, a_{i+2}, ..., a_{i+k}] Fik​=[ai+1​,ai+2​,...,ai+k​]表示时刻iii后的连续kkk个行为。那么第三节中的四个概率值可以表示如下:
(5)Pscore(Si,h)=P(goal(h)∈Fik∣Si).P_{score}(S_i,h)=P(goal(h) \in F_i^k | S_i). \tag{5} Pscore​(Si​,h)=P(goal(h)∈Fik​∣Si​).(5)

(6)Pconcedes(Si,h)=P(goal(v)∈Fik∣Si).P_{concedes}(S_i,h)=P(goal(v) \in F_i^k | S_i). \tag{6} Pconcedes​(Si​,h)=P(goal(v)∈Fik​∣Si​).(6)

(7)Pscore(Si,v)=P(goal(v)∈Fik∣Si).P_{score}(S_i,v)=P(goal(v) \in F_i^k | S_i). \tag{7} Pscore​(Si​,v)=P(goal(v)∈Fik​∣Si​).(7)

(8)Pconcedes(Si,v)=P(goal(h)∈Fik∣Si).P_{concedes}(S_i,v)=P(goal(h) \in F_i^k | S_i). \tag{8} Pconcedes​(Si​,v)=P(goal(h)∈Fik​∣Si​).(8)

以公式(5)和(6)为例进行说明。前文提到,Pscore(Si,h)\ P_{score}(S_i,h) Pscore​(Si​,h)表示主队在状态Si\ S_i Si​未来一小段时间内取得进球的概率。那么公式(5)将该概率定义为:由状态Si\ S_i Si​开始,主队在接下来的k\ k k个行为内取得进球的概率。k\ k k可以人为设定。那么Pconcedes(Si,h)\ P_{concedes}(S_i,h) Pconcedes​(Si​,h)就容易理解了,主队失球相当于客队进球,因此Pconcedes(Si,h)\ P_{concedes}(S_i,h) Pconcedes​(Si​,h)表示为客队在接下来的k\ k k个行为内取得进球的概率。

接下来,作者使用机器学习的方法来训练模型,以使其在给定一组行为后能够预测未来一段时间内取得进球的概率(球迷朋友们可以跳过看下一节结果)。以预测Pscore(Si,h)=P(goal(h)∈Fik∣Si)\ P_{score}(S_i,h)=P(goal(h) \in F_i^k | S_i) Pscore​(Si​,h)=P(goal(h)∈Fik​∣Si​)为例,其学习标签的构造比较简单,对于每个状态Si\ S_i Si​,如果在接下来的k\ k k个行为内主队取得了进球,那么Si\ S_i Si​对应的标签为1,反之为0.而在构造Si\ S_i Si​的特征时,作者只考虑了前三个行为:[ai−2,ai−1,ai]\ [a_{i-2}, a_{i-1}, a_{i}] [ai−2​,ai−1​,ai​]。而由这三个行为构成的特征集合可以分为三大类:

  1. SPADL特征:主要包括SPADL定义的数据,例如行为类型、触球部位、行为成功与否、行为发生和结束的位置和行为发生的时刻;
  2. 复杂特征:主要包括行为在开始和结束时距离球门的距离和角度、行为结束后在纵向和横向导致的距离变化、连续两个行为间的时间间隔、连续的两个行为的球权是否发生了变化。
  3. 比赛的上下文特征:主要包括当前控球方在后续比赛中打进的球的数量、当前防守方在后续比赛中打进的球的数量、后续比赛的分差。请注意,因为本文的目的不是预测进球,而是评估球员的表现,因此使用比赛的上下文特征是合理的。

作者用的模型是CatBoost。

5. 实验结果

作者的实验数据相当丰富,从12/13赛季(五大联赛)至17/18赛季(你大概可以猜一下作者花了多久时间做的这篇paper)。

作者给出的第一个有趣的实验是2017年12月23号巴萨对皇马的比赛。作者用他们的模型计算了在92至93分钟巴萨球员的行为分值,如下图:



这图画的有点不好理解,慢慢看。首先(1)是布教授将球传给了梅西,这个行为得0分,当前总的进球概率为0.03。得0分的原因是这个球没有明显地将进攻推向对手腹地。而梅西在接球后选择将球回传给布教授,此时注意布教授移动到了(3)的位置。梅西的此次传球得分-0.01,因为他将球向离对方球门更远的方向传了过去,并且该区域很难直接对对方球门构成威胁。布教授随后将球准确的传给了跑动至(4)的梅西,此次传球得分0.01。然后牛逼的梅西登场了,首先是直接突破至位置(5)得分0.05,然后回传比达尔得分0.09,梅西的这两次操作直接将进球概率提升了0.14。而比达尔射门得分,自然获得了剩下的所有得分。作者的这个例子是想说明他的模型能够识别出梅西在这次进攻中扮演的重要作用,而其它模型则几乎完全会忽略掉,至少会忽略那次突破。

接着,作者比较了17至18赛季英超球员的进攻贡献。作者认为,传统的评价方法主要依靠进球数和助攻数,因此作者首先统计了17至18赛季英超球员场均进球、场均助攻和场均进球+助攻排名前十的球员,如下所示。


表中Rvaep\ R_{vaep} Rvaep​表示采用作者模型的情况下该球员的排名(参与排名的共有305位球员)。作者这里的观点就很直接了,有些球员的进球和助攻数据都不太好,但是对于球队至关重要,这在传统评价方法中根本无法量化。而作者的模型则能够发现(重点是可量化)德布劳内、阿扎尔和马赫雷斯等这类对球队至关重要的球员。另外,由作者模型得到的排名前十的球员身价总和是所有四个表中最高的!这真是一个非常厉害的论证点!

然后,作者用17-18的数据评估了1997年1月1号出生后的最有潜力的新星。作者把球员分成了两组:英超和西甲;法甲、荷甲和比利时联赛(不知道怎么叫…),见下表。

Mount击中你了吗?!

接着作者用他们的模型进一步比较球员的风格。他们说先以内马尔转会说起,比较了内马尔与其替代者登贝莱和库蒂尼奥的风格。

简单一句话,带球内马尔是王,其它好像就。。。

2018年夏天,C罗转会了,所以作者又比较了C罗和当时潜在的替代者拉什福德(现在都没去)和阿扎尔(现在去了)。


个人感觉这幅图太牛逼了,非常客观地刻画了近年这三位球员的风格。

接着作者又画了一幅评估行为数量和质量的图,如下。

作者直接用了“Messi is clearly in a class of his own”这样的评价。可以看出,梅西在行为的数量和质量上确实明显异于其他球员。C罗因为年龄原因,确实开始逐渐转为射门机器,这可能是导致他行为数量很低的重要原因。

博主是二十年的球迷了,喜欢一切带给我们足球美好记忆的球员,梅罗带给了大家多少无与伦比的回忆无需我多说,希望大家理智看球,珍惜每个奔跑在球场上的球员。也希望这种有意思的研究方向能够吸引更多人去参与。

行动大于进球:评价足球运动员的行动价值(Actions Speak Louder than Goals: Valuing Player Actions in Soccer)相关推荐

  1. 【科研分享】如何通过论文学习并评价研究问题的价值

    如何通过论文学习并评价研究问题的价值 个人是从事深度学习NLP方向研究的一名新研究生,同时侧重于推荐系统研究,主要原因是因为实验室导师就是这个方向,于是就跟着导师学习了.有的人问我这么选择方向是不是有 ...

  2. 如何评价一个开源项目——价值流网络

    本文由X-lab开放实验室博士生赵生宇原创出品 该篇博客继续之前关于活跃度和协作影响力的介绍继续展开,希望可以在解决协作影响力无法容纳更多数据,从而可以更全面衡量开源生态的同时,也引入一种高可扩展的数 ...

  3. 国际数据挖掘顶会 KDD 2019 应用方向冠亚军论文《Actions Speak Louder than Goals: Valuing Player Actions in Soccer》解读

    KDD解读 第 25 届 ACM SIGKDD 知识发现和数据挖掘会议(KDD)已于今年 8 月 4 日在美国阿拉斯加州安克雷奇开幕.今年的大会奖项分为研究方向和应用数据科学方向.在今天公布的最佳论文 ...

  4. 中国军团称霸KDD:华人博士斩获最佳论文,清华北大中科大华为等榜上有名

    乾明 鱼羊 栗子 安妮 一璞 边策 发自 凹非寺  量子位 报道 | 公众号 QbitAI 又一全球AI顶会,尽是中国力量举杯相庆. KDD,数据挖掘领域国际最高级别会议,今年在美国阿拉斯加州举行,最 ...

  5. 最近收集的9000个英语单词

    wrong                                   adj.错误的:不道德的:不适合的:不正常的adv.错误地n.坏事:不公正的事:错误v.无礼地对待:冤枉 visuali ...

  6. mysql workbench crows foot_佳句赏析“英文人生名言:1、A road of a thousand ...先洗浄你的手指,再指出我的污迹。” - 金句吧...

    一键配图 英文人生名言1.A road of a thousand miles begins with one step. 2.Calamity and prisperity are the touc ...

  7. 2019年税收分类编码_通过分析112,654个编码测试,我们了解了2019年开发人员的招聘趋势...

    2019年税收分类编码 by Tom Winter 汤姆·温特(Tom Winter) 通过分析112,654个编码测试,我们了解了2019年开发人员的招聘趋势 (What we learned ab ...

  8. 斯巴达300勇士 中英文对照

    When the boy was born- 男孩出生的时候 -like all Spartans, he was inspected. 必须像每个斯巴达人一样接受检验 If he'd been sm ...

  9. 贴出最新整理的英语谚语大全(3267条)

    贴出最新整理成数据库的英语谚语大全: 1. "After you" is good manners. "您先请"是礼貌. 2. A bad beginning ...

最新文章

  1. nvGRAPH API参考分析(一)
  2. MongoDB基础知识总结
  3. python处理信号机制_Python的Flask框架中的signals信号机制
  4. vuex从安装到使用的教程
  5. Flask笔记-使用flask-sqlacodegen自动生成model
  6. 小米10至尊纪念版今日开卖:120hz高刷+120W秒充
  7. idea中java没有run_idea 右键项目没有run 运行选项
  8. threadlocal存连接对象的目的_ThreadLocal 介绍
  9. 【算法】LeetCode算法题-Length Of Last Word
  10. 52. 配置 Etag (13)
  11. Atitit.url 汉字中文路径  404 resin4 resin  解决  v2 q329
  12. 服务器主板能插几块硬盘,如何知道自己的主板最大支持多少的硬盘啊
  13. 日志易数据接入之 Syslog 日志上传
  14. 时空数据生成对抗网络研究综述(上)
  15. android 自定义锁屏凌驾于系统锁屏之上
  16. fig-tlo_PHP-FIG,Quo Vadis?
  17. Frequent values POJ - 3368(线段树)
  18. An error has occured.See the log file
  19. [Python爬虫] 九、机器视觉与机器图像识别之Tesseract
  20. LINUXmint18.2添加国内源以及安装各种流行软件(网易云音乐,搜狗,谷歌浏览器,virtualbox虚拟机)

热门文章

  1. git 提示:can not merge due to depend on the changes that are not submit
  2. Java复习十:集合的使用
  3. mix2s android p 测试,历时一个月,MIX2S成小米首款Android P公测机型
  4. Rh-RCA I,RCA120;罗丹明标记蓖麻凝集素I(RCA I,RCA120)
  5. 番外篇:gitlab docker版数据和仓库迁移
  6. Efficient Belief Propagation for Early Vision 论文翻译 对于早期视觉问题的高效信念传播
  7. java8 lambda 将二维数组转换成list集合
  8. CS224N笔记 Lecture1: Introduction and Word Vectors
  9. 【吟风听云】推锅扑克牌型规则说明(端锅子牌型说明/扑克版牌九规则)
  10. eshop6-nginx