您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[网易]:随你所欲的AI匹配系统 - 发现报告
当前位置:首页/其他报告/报告详情/

随你所欲的AI匹配系统

2023-03-09网易有***
随你所欲的AI匹配系统

网易人工智能实践 随你所欲的AI匹配系统 人工智能,点亮游戏未来 2021/03/03 小川/边渡–网易伏羲 1 背景挑战 AI优化 2 网易人工智能实践 匹配系统 后续计划 3 4 1 网易人工智能实践 背景挑战 逆水寒试剑天下匹配 网易人工智能实践 DOTA2寻找比赛&匹配成功 王者荣耀匹配成功 对战匹配是绝大部分游戏的核心玩法或机制成熟游戏的匹配机制也屡遭诟病 中小型游戏开发对战匹配系统需要一定成本和技术门槛 网易人工智能实践 新对战玩法层出不穷,迭代频率高 【2020.10.28IOS畅销榜】 *手游:IOS畅销榜TOP100中除单机解密类游戏外的96款游戏带有对战匹配系统(包含开心消消乐、恋与制作人等) *端游:所有联网端游,匹配系统是游戏标配 *90-95%的游戏包含对战匹配系统,46%的游戏包含超过4人以上的复杂对抗玩法 做深,做精很难,有一定起步门槛 好游戏注重匹配效果vs小游戏注重实现匹配功能 “最近怎么一直输” “这匹配得好坑” 网易人工智能实践 “我也玩不太明白,但是没有奶妈打战场很吃亏” “这把关宁逆风翻盘” “这个匹配机制好像还挺好” “匹配每次都要等好久” 玩家群体 网易人工智能实践 ●游戏设计时的目标群体vs上线后真正的目标群体 工程开发 ●稳定、高效的线上服务 考虑因素 网易人工智能实践 等待时间网络延迟(ping) 连胜/连败 比赛中的不稳定因素 恶意玩家 匹配等级、段位 玩家社交 地理位置 心理学因素 玩家组队服务响应时间和稳定性 玩家偏好 2 网易人工智能实践 匹配系统 网易人工智能实践 ●为十余款游戏数十个玩法场景提供匹配机制支持 存在问题 •同一个游戏,多个战场玩法,都需要进行开发,代码复用率低 •不同游戏,存在类似的玩法,不能互相借鉴 •新对战玩法层出不穷,战场改动多,迭代频率高 网易人工智能实践 竞品调研 深耕业务,将业务问题抽象化、框架化 •主要模块:匹配池模块、粗排服务、精排服务、离线特 征模块、离线模型训练模块、模型管理模块 网易人工智能实践 •线上服务流程:玩家报名->匹配池->粗排服务->精排服务->返回。 •离线训练流程:战场结算日志->特征处理->模型训练- >模型管理->模型部署 敏捷接入 网易人工智能实践 功能版接入一天以内 智能版接入一周以内 全场景玩法适配 竞技排位、攻防对抗、资源竞争、不 对称竞技、生存竞技全面覆盖 可控AI匹配策略 自定义匹配策略添加 自定义匹配目标设定 AI平衡策略 多样化平衡策略,精准能力评估 15%+平衡性提升 专业AI分析工具 平衡性分析仪表盘、玩家能力看板职业搭配策略看板 数据规范 设计战场匹配接入标准表,分玩家信息表、战场结算表 接口规范 使用网关,统一接口地址,通过参数中匹配名称区分不同战场服务 网易人工智能实践 接口参数规范,统一各个接口参数,使用RESTfulAPI规范 对战流程打通 支持独立使用匹配模块 支持匹配池,将匹配流程完整打通 产品文档 编写产品文档,包含接入流程、开发指南、API接口等 网关配置 产品文档 业务抽象 所有游戏战场匹配,本质是对一群玩家进行划分 阵营:1个阵营以上(至少),抽象为不确定阵营数可覆盖所有场景 网易人工智能实践 阵营人数:阵营真人玩家数最少为0(可全为机器人),抽象为不确定人数可覆盖所有场景 战场模式:是否可动态补人 多阵营对抗 资源竞争 生存竞技 社交组队 steps expansions target … type rules description name number minPlayers Teams maxPlayers name default type playerAttributes name vesion 规则抽象 每个匹配一个JSON规则文件 玩家属性(playerAttributes):在匹配过程中需要用的玩家属性,需传递 JSON结构 网易人工智能实践 阵营配置(teams):一个完整匹配阵营的配置,阵营数,每个阵营的玩家数等 匹配规则(rules):组成一场比赛的限制规则,主要包含差值规则、比较规则 扩展规则(expansions):扩展规则,可以按等待时间调整匹配规则限制 配置灵活丰富 支持自定义数值、字符串类型的属性并对其配置规则 可通过控制台或者API进行规则配置 网易人工智能实践 网易人工智能实践 网易人工智能实践 网易人工智能实践 玩家画像 开发战场玩家近期、中期、长期画像,包括玩家属性画像、历史战场画像,全方位刻画一个玩家的能力 三种玩家特征处理方式:基于玩家能力分、基于职业玩家统计值、基于职业内玩家能力分 网易人工智能实践 算法模型 基于玩家画像开发胜率模型、分差模型 模型主要包含LR、XGBOOST、LGB、MLP、图算法、强化学习等 线上模型在线学习和迭代,对数据漂移、游戏版本更新等变化保持自身的鲁棒性 每一次对战棋逢对手,愿英雄相惜 指标设计 基础指标:活跃度、战场关键指标、属性分布指标等 健康性指标:胜率、职业或英雄均衡性、组队、等待时间、中途退出、对局时间等 网易人工智能实践 对战结果指标:击杀、死亡、助攻、治疗、对战结果、当前某些属性值以及一些游戏方埋点数据 大盘指标概览 核心指标监控 实时赛况赛果查询 3 网易人工智能实践 AI优化 基于能力评估的算法-ELO E�= 1 1+10(RB−RA)/400 � 𝑅′=𝑅�+𝐾(𝑆�−𝐸𝐴) ELO问题: 网易人工智能实践 •游戏越来越复杂,单维度的能力值不能很好的表示玩家能力 •用于1V1模式,NvN时如何拓展?多人组队时,如何表示能力值? 基于特征的算法 游戏对战服务器 匹配结果返回 智能匹配服务 匹配池轮询 匹配池 发起匹配 玩家 战场数据日志 数据处理 玩家画像数据库 网易人工智能实践 智能分析看板 𝑇1 𝑝� 𝑛+1 � 1/0 𝑝1 𝑝2 … AI优化–数据处理结构 𝑝2� 网易人工智能实践 Hive 日志 数据处理 训练数据集 𝑇2 𝑝𝑛+2 … 玩家画像 模型训练模型评估模型部署 玩家历史画像 玩家实时画像 实时数据处理日志 AB分流在线匹配 特征处理模型训练在线匹配 基础画像 •与战场相关玩家属性值 •玩家充值、vip等级 统计画像: •各个英雄熟练程度 网易人工智能实践 •过去两周比赛平均击杀、助攻等 关系画像: •玩家之间的组队、好友、交易等社交关系 •英雄之前的协同、克制关系(MOBA) 玩家画像: �� 𝑢𝑝𝑖𝑐�=෍𝑝𝑝𝑖𝑐�.𝑒ℎ𝑢𝑤𝑖�=෍𝑝𝑤𝑖�.𝑒ℎ 𝑠𝑦� 𝑠𝑢𝑝𝑝� ℎℎ� =𝑓𝑤𝑖�−𝑓𝑙𝑜𝑠�� =𝑓(�𝑑𝑒𝑓𝑒𝑎�𝑏) ℎ=1 ℎ=1 𝑎,� 𝑎,� 𝑎,� 𝑎,� �=𝐶𝑜𝑛𝑐𝑎𝑡(𝑢𝑝𝑖𝑐𝑘,𝑢𝑤𝑖𝑛) �∈[𝑈𝑠𝑦𝑛,𝑈𝑠𝑢𝑝𝑝𝑟,𝑈𝑓𝑡𝑟] 所有的分类模型都可以做胜率预测 Team2Vec Optmatch-Net �=[𝑢1,…,𝑢𝑘] 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜�𝑄,𝐾,�=𝑠𝑜𝑓𝑡𝑚𝑎� 𝑄𝐾� 𝑑� � ℎ𝑒𝑎𝑑�=𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑥𝑊𝑄,𝑥𝑊𝐾,𝑥𝑊𝑉) � � � 𝑀𝑢𝑙𝑡𝑖𝐻𝑒𝑎�𝑄,𝐾,�=𝐶𝑜𝑛𝑐𝑎𝑡(ℎ𝑒𝑎𝑑1,…,ℎ𝑒𝑎𝑑ℎ)𝑊� �=𝑅𝑒𝑙𝑢(�∙𝑀𝑢𝑙𝑡𝑖𝐻𝑒𝑎�𝑄,𝐾,�+𝑏) 𝑜𝑟𝑒𝑙�=𝑡𝑎𝑛ℎ(𝑊�∙𝑇1−𝑇2+𝑏) �=𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑊𝑠𝑦�∙𝑜𝑠𝑦�+𝑊𝑠𝑢𝑝𝑝�∙𝑜𝑠𝑢𝑝𝑝�+𝑊𝑓𝑡�∙𝑜𝑓𝑡�) 𝑟𝑒𝑙� 𝑟𝑒𝑙� 𝑟𝑒𝑙� 网易人工智能实践 TeamComparisonOutput KDD2020:OptMatch:OptimizedMatchmakingviaModelingtheHigh-OrderInteractionsontheArena 期望: •一个高效、智能、通用的端到端优化模型 •可优化多种非线性目标:胜率、流失、付费等 •可进行多目标同时优化 匹配决策 网易人工智能实践 待匹配玩家 状态更新 Agent比赛指标 待匹配玩家 状态更新 ... Agent 匹配决策 比赛指标 𝑎t 𝑇1 𝑎t+1 st st+1 st+2 𝑇2 𝑎t+2 s𝑡+3 𝑎t+3 𝑎t+4 𝑎t+5 s0 ... s𝑡+4 s𝑡+5 ... sN 𝑟t 𝑟t+1 𝑟t+2 一个匹配决策一个匹配请求 𝑟t+3 𝑟t+4 𝑟t+5 Statespace:(𝑃𝑡,𝑇𝑡,𝑇𝑡) 𝐵𝑎𝑙𝑎𝑛𝑐� =−𝑊𝑖𝑛𝑅𝑎𝑡� −0.5 12 𝑇1,𝑇2 𝑇1,𝑇2 Actionspace:𝑎�∈𝑃� � 1 2 transition:𝑠𝑡+�=(𝑃𝑡\[𝑝],𝑇��,𝑇𝑡) �=ቊ𝐵𝑎𝑙𝑎𝑛𝑐�𝑖��=2𝐾,4𝐾,.. 𝑠𝑡−1,𝑎𝑡−1 0𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠� � � or𝑠𝑡+�=(𝑃𝑡\[𝑝],𝑇𝑡,𝑇��) 1该请求完成H场匹配决策 网易人工智能实践 12𝑅�= �෍𝑟� 𝑖=� Agent 𝑝1𝑝2𝑝3 𝑝4𝑝5 𝑝2𝑝5 𝑝1𝑝3 Agent 𝑝4𝑝6𝑝7 ... 𝑝4𝑝7 网易人工智能实践 Time Agent 𝑝1𝑝2𝑝3 𝑝4𝑝5 Agent 𝑝2𝑝4𝑝5 𝑝6𝑝7 ... 𝑝1𝑝3 𝑝5𝑝6 𝑝2𝑝7 全局优化一段时间匹配请求 𝑇1𝑇2 𝑎pass 轮空玩家+新加入匹配的玩家构成新的状态 s0... 𝑎t𝑎t+1 stst+1st+2 𝑎t+2 𝑎t+3𝑎t+4𝑎t+5s𝑡+3s𝑡+4s𝑡+5 s𝑚N ... 网易人工智能实践 𝑟t𝑟t+1 一个匹配请求,可看做一大步 Statespace:(𝑃𝑡,𝑇𝑡,𝑇𝑡) 𝑟t+2𝑟t+3𝑟t+4𝑟t+5 一段时间/一定量请求数 12 Actionspace:𝑎�∈(𝑃𝑡,𝑎𝑝𝑎𝑠𝑠) transition: (𝑃𝑡\[𝑝],𝑇𝑡,𝑇��) � 𝑠𝑡+�=൝12 𝑖�𝑎�∈𝑃� � (𝑃𝑡\[𝑝],𝑇𝑡,𝑇��) 21 𝑠𝑡+�=(𝑃𝑛𝑒𝑤,𝑇0,𝑇0)𝑖�𝑎�∈𝑎𝑝𝑎𝑠� �12 全局优化一段时间匹配请求 𝑇1𝑇2 𝑎pass 轮空玩家+新加入匹配的玩家构成新的状态 s0... 𝑎t𝑎t+1 stst+1st+2 𝑎t+2 𝑎t+3𝑎t+4𝑎t+5s𝑡+3s𝑡+4s𝑡+5 s𝑚N ... 网易人工智能实践 𝑟t𝑟t+1 一个匹配请求,可看做一大步 𝑟t+2𝑟t+3𝑟t+4𝑟t+5 一段时间/一定量请求数 𝐵𝑎𝑙𝑎𝑛𝑐� 𝑠𝑡−1,𝑎𝑡−1 � = − 1 � 𝑇1,𝑇2 𝑏𝑎�= 𝑊𝑖𝑛𝑅𝑎𝑡� 𝑇1,𝑇2 � ෍𝐵𝑎𝑙𝑎𝑛𝑐� 𝑖=1 −0.5 𝑇1,𝑇2 𝑖�a 𝑡−1 =� 𝑝𝑎𝑠� 前一个轮空动作在�=�−1 𝑠�到𝑠�表示一个请求 这个