简介近年来,游戏行业发展迅猛。仅2020年第一季度,中国游戏市场销售收入就超过700亿元。是互联网企业流量变现、实现商业化最有效的渠道之一,各大互联网企业也在积极布局。AI作为一项已经被众多行业证明可以提高生产力的技术,在游戏领域有着巨大的应用空间。AI和游戏的结合其实早就出现了。从深蓝到AlphaGo,人工智能在各种游戏中迅速超越了人类。当大家对AI与游戏的关系普遍认知还停留在“与玩家的对抗”时,我们注意到,AI其实可以为游戏开发、推广、运营等多个环节赋能。本文主要介绍快手AI技术应用于游戏业务方方面面的探索与实现。这些任务都是由快手人工智能平台部、游戏技术中心和快游工作室共同完成的。AI辅助研发推拉类游戏,关卡数量随着游戏运行时间的增加而增加。一个成熟的推拉游戏,比如消消乐,就有几万个关卡。合理设置关卡难度是提升用户流量体验的关键要素。好的关卡设计可以根据用户当前的等级有效调动用户对游戏的兴趣,而难度不稳定的关卡设计会极大地干扰用户的游戏体验。在上述背景下,根据业务和场景的需求,制作难度适中的关卡就变得十分必要。在传统推拉游戏的开发中,测试关卡的难度往往是通过测试人员大量的反复测试来完成的。这种传统方法主要有两个缺陷:一是耗费大量的人力和工时;二是这种测试往往存在测试人员的个体误差,导致水平难度估计出现系统性偏差。为了系统地解决这两个问题,我们在具有AI能力的游戏关卡上做了一些尝试。由于游戏机制的原因,这里有两个业务需求。一种是通过AI评估给定关卡的难度,另一种是自动生成指定难度的关卡。快手在以上两种场景都有相应的解决方案,并且已经在傻瓜、游戏等游戏中成功实现。智能关卡难度测试点消除游戏的特点是动作比较简单。游戏关卡由多达9*9的方格组成,动作只有点击。但是它的状态空间非常庞大,每个格子都附有大量的属性:元素类型(方块、阻挡元素、道具、临时空间、永久空间、是否有传送门)和元素属性(颜色、数量)层、状态、方向等)。我们设计了基于强化学习(使用CNN+A2C)和蒙特卡洛树搜索(MCTS)的算法来解决这个问题。困难之一是并行化MCTS算法。因为有多个worker同时执行selection->expansion->simulation->backpropagation,当某个worker在做选择时,其他worker未完成的模拟结果无法获取,导致大量worker只看到过时和相似的信息,严重影响了搜索树选择节点的质量,破坏了串行状态下的exploration-exploitation平衡。为了解决这个问题,我们提出了WU-UCT算法(WatchtheUnobservedinUCT)。这个算法借鉴了异步并行算法的思想,其核心是维护一个额外的统计量来记录每个节点上有多少worker在模拟它,并用它来调整选择算法。此外,我们使用了主从系统。主进程维护一棵完整的搜索树,并进行选择和反向传播操作。同时,主进程负责将扩展和模拟任务分配给相应的子进程,子进程完成后将结果返回给主进程。这样做的好处是每次选择的统计信息都得到了很好的保证,同时避免了进程间共享内存、访问冲突等问题。最终我们用上述方法训练出来的AI自动验证了1000多个关卡的难度。根据用户的实际通关率,我们的AI难度评估系统误差在8.6%以内。借助WU-UCT,我们的系统可以准确预测某个关卡上线后玩家的预期通关率,为关卡设计师提供了很好的指导,实现了反馈,无需人工测试,大大降低了开发成本,改变了方式制作游戏。此外,我们还将这项工作总结成一篇论文发表在ICLR2020[1],并被会议选为Oralreportpaper。关卡自动生成当我们解决通过AI自动评估给定关卡难度的问题时,一个自然的需求就是关卡生成是否也可以自动化?于是我们开始在快手自研的《爱游斗地主》残局玩法上进行了新的尝试。棋牌残局关卡的设计难度很大,对设计师的要求非常高。即使是这个游戏的专家也常常发现很难设计出有价值的残局。我们首先使用强化学习和minimax搜索设计一个可以破解游戏残局的AI,然后以AI为基准筛选随机生成的游戏,并使用实际测试的用户体验数据来学习筛选规则.除了已经上线的两人残局关卡外,还可以生成三人残局(因难度高,游戏暂时不提供)。另外,为了避免产生相似的残局,我们对牌面信息进行了标准化,让相似的牌面信息在标准化的空间中变成了相同的牌面。我们最终以自动生成残局的30-40%通过率(开发者测试),大大提高了开发效率。目前,节目已推出《爱游斗地主》残局玩法。AI辅助推广游戏开发测试完成后的下一个重要任务就是推广。下面介绍AI在游戏广告业务中的一些实践和探索性工作。SmartDelivery游戏工作室会在流量平台(如快手)购买流量,即用户。游戏工作室作为广告主,会建立或聘请第三方投放团队进行广告投放。投放团队利用素材(短视频、图片封面、广告词)构建广告创意,然后打包并设置相应的投放参数,最终形成广告方案在广告平台提供的界面投放。广告平台负责曝光广告创意,向广告主收费。用户通过观看广告,点击广告中的链接,下载并激活游戏,成为游戏用户。用户直接或间接在游戏内消费,作为游戏工作室赚取营业额收入。传统广告的主要手段是人工创造广告创意,生成广告计划。但是,人工投递有明显的缺点。首先,人工配送需要大量的人力去做一些重复性的操作。其次,人工投递的效果多半取决于优化者(投递者)的直觉和经验,没有可以一概而论的通用方法。为了解决以上问题,解放优化人员的双手和部分大脑,我们构建了智能投放系统。该系统的目标是在没有人工干预的情况下,形成全链路闭环进行投放。该系统基于召回和组合排序放置策略的框架。召回指的是对素材(短视频、封面、广告词)的召回,本质上可以理解为从素材库中选取部分素材。召回方法是基于规则和基于模型的。我们的召回模型大部分是回归和分类模型,比如线性模型、树模型、神经网络等。我们以优化目标(ROI、激活数、激活单价等)为指标,建立监督学习模型,预测单一材料的性能以优化潜在材料。素材的特征,以视频为例,包括视频重要帧的嵌入向量、视频时长、视频风格、视频类别等。此外,除了素材本身的特征外,还包括过去一段时间的表现特征,比如过去24小时的点击率、三秒完成率等。组合排序是将召回的原材料(笛卡尔积)组合起来构建广告创意并进行排序。根据排序结果,排名靠前的创意人员被安排到广告计划中。我们开发了多种排名模型。比如张量分解模型,基于神经网络的双塔模型等。在张量分解方法中,我们可以把一个idea看成几类元组,比如(短视频,图片封面,广告词)可以看做作为三阶张量。之前推出的广告创意的表现,比如ROI,可以看作是张量的一个元素的值。因为,张量分解可以把创意打分看成一个张量补全问题,然后利用低秩假设和经典的张量分解算法完成创意打分。双塔模型,准确的说是多塔模型,就是通过神经网络获取各个维度的物质特征各自的抽象特征表示,然后通过融合映射成一个分数。比如最基本的双塔模型在短视频和图片封面的场景中工作,可以理解为为视频素材找一个合适的封面。基于召回组合排序框架,我们可以设计多种具体投放策略,包括新素材冷启动、创意空间探索、智能创意制作等。除了上述投放策略外,我们还开发了各种辅助投放策略策略,比如物料的黑白名单策略,旧物料的回收策略,停产策略等。所有这些策略的协调已经基本满足了我们目前所有的场景。目前我们已经介入了10多场比赛,其中2场已经自动托管。目前,人工智能生成的广告计划约占总支出的40%。AI辅助运营游戏推广后的下一个环节就是运营。在操作过程中,游戏中有很多战略问题。游戏中的运营策略极大地影响着用户体验和留存,进而影响收入。制定合适的策略通常是游戏策划中非常重要的工作,而好的策略通常依赖于游戏策划的丰富经验和直觉。但在某些场景下,数据更能指导如何生成适合用户的运营策略。另一方面,在支持运营的过程中,往往需要游戏AI的辅助。例如,游戏AI在游戏冷启动、离线游戏等场景中发挥着重要作用。这里介绍我们在快手游戏业务中如何使用数据驱动策略和游戏AI来提升用户体验。数据驱动的游戏内策略匹配策略在多人竞技或对抗游戏场景中,匹配是良好玩家体验的重要组成部分,对于提高用户留存率至关重要。用户匹配算法一般采用一定的策略,先粗略筛选出实力相当或满足一定规则的用户群体进行划分,再进行局部微调以保证游戏平衡。但是,如何优化整体的用户体验,让玩家与Teammatching,仍然是一个NP-hard问题。以《爱游斗地主》游戏原有的基于规则的匹配策略为例,将待匹配的用户组成一个匹配池,将用户状态(剩余金币、胜率、排名等)与相似的用户系数匹配在一起。但这些信息并不能准确反映玩家的真实水平,难以保证玩家在游戏中的平衡性,导致用户体验不一致。因此,需要更全面地评估玩家的真实水平,从整体体验出发优化匹配策略,以提高用户的游戏时长和留存率。我们使用玩家的历史游戏行为序列和肖像数据,基于深度神经网络实现基于多维特征融合的用户匹配策略。我们可以将玩家历史游戏行为和用户画像的统计特征作为模型输入,以玩家历史游戏连续桌数的区间分类作为标签,训练多分类模型。在进行在线预测时,首先通过设计的聚类模型对用户进行粗聚类——即粗排序过程。然后将每个簇下的用户分成三组(游戏规则),将所有组组合输入预测模型,输出不同组合下的匹配概率值,优先匹配概率值高的组一起——即精细分选过程。关于特征提取,我们从用户的历史游戏数据中提取用户的基本特征和行为特征。此外,我们通过概率图模型,将每个玩家的游戏战力看做随时间动态变化的高斯分布,从游戏结果中学习玩家的能力值[2],以反映玩家的真实游戏水平。将上述用户基本特征、行为特征和玩家能力值联合拼接,进行特征嵌入和表征,作为匹配模型的输入特征。我们使用连续游戏的次数(称为连续桌数)作为正反馈以获得更好的匹配结果。我们构建一个深度神经网络作为模型,以轮为单位结合三个玩家的特征作为模型输入:我们主要关注的运营指标是用户留存。该模型上线后,与传统的基于规则的匹配策略相比,7号的用户留存率提升了约2.4%。发牌策略除了匹配,发牌也很关键。在游戏中,卡组的分布将直接影响到玩家在游戏中的表现和游戏体验。发牌后,系统不再干预比赛,三人各自完成比赛。因此,发牌策略是游戏决策的重要组成部分。传统的分发策略通常是随机发牌或者按照规则生成卡组。在随机发牌的情况下,可能会出现手牌非常分散或者三人牌组非常不平衡,造成不公平,严重影响玩家体验。但是按照规则发牌的策略往往比较生硬,不能有效调整牌的强弱。此外,上述方案均未利用玩家的状态信息进行发牌。因此,我们制定了数据驱动的许可策略。我们首先制作了甲板,它由大量的甲板组成。库的选择标准基于玩家的反馈。有很多玩家的反馈。例如,一场比赛结束后,不止一个玩家点击了“玩另一场比赛”,这可以被认为是一种积极的反馈。如果没有人点击“再玩一次”,可以认为是差评。我们收集多种反馈以将牌组标记为“好或坏”,并使用此样本数据来训练二元分类模型。之后,我们随机或按规则生成卡组,利用上述模型将比较好的卡组过滤到卡组中。当然,玩家在不同的游戏中有不同的喜好,所以反馈也不一致。因此,我们根据不同的游戏来构建卡库。另外,在同一个牌组中,我们根据其中牌组的特点进行了聚类,这些聚类标签也可以应用到后续的牌组选择中。我们的卡库模型和卡库本身会根据数据的积累定期更新。接下来,我们提出了一种基于强化学习的牌组选择和插槽分配方法。我们从玩家的历史游戏信息和近期胜负信息中提取玩家的基本特征、行为特征、状态特征等。同时,我们从棋盘中提取相应的牌组特征。我们将玩家特征视为状态,牌组特征视为行动,游戏的奖励定义为玩家是否继续游戏,从而建立一个RL学习框架。我们使用Q-Learning算法来学习最佳交易策略。在在线授权阶段,对三个玩家的信息进行特征提取,得到用户特征。另外,计算不同分馆所能达到的收益值,选择能使收益最大化的分馆。然后根据模型,从子库中选择最优卡组。策略推出后,活跃度大幅提升。综合7天留存提升3.6%,日均游戏数提升11.7%。此外,我们还为不同的游戏提供个性化的模型和卡库。目前该策略已推广到《爱游斗地主》所有游戏。此外,我们还提供专用于锦标赛和直播的套牌。游戏AI在游戏运行过程中,我们有很多场景需要游戏AI的支持,比如卡牌提示、掉线等。游戏AI技术对游戏的支持主要体现在《兜来玩麻将》业务的落地和游戏业务的推广上。《兜来斗地主》包括四川麻将-血河、四川麻将-血战、大众麻将、双人麻将等6种麻将。在游戏刚上线的业务冷启动阶段,由于玩家数量少,需要将游戏AI投入匹配池,提升体验。因此,需要一个支持6种以上麻将游戏并支持打分的AI。然而,一般麻将AI研究在学术界是一个未解决的非对称博弈问题。MSRA已经让AI在日本麻将中超越了人类的水平[3]。但是它的算法框架强烈依赖专家级用户的训练数据,并且是为日式麻将的规则定制的,不适合我们这种支持多种玩法的游戏。业务需求和大规模扩展。我们基于深度强化学习进行创新研究,解决缺乏专家级数据等技术难点,沉淀出一套高扩展性的算法框架,成功让AI在各种麻将规则上达到人类顶尖水平,不仅满足满足业务需求,取得行业领先的成绩。我们也将该框架推广到其他游戏,例如游戏。首先,我们解决缺乏高质量数据的问题。其方法是先使用简单的基于规则的AI相互对战生成训练数据,并利用这些数据进行监督学习得到一个初始化模型,然后从这样的初始化模型开始,从游戏中进行强化学习。我们称此方法为RuleBaseInitialization(RBI)。通过打点方法得到的AI等级远高于从头训练的AI,而且这个过程可以适用于不同的麻将规则,具有很强的可扩展性,可以满足AI分类的要求。其次,我们设计了平滑的奖励来解决初始训练难度和奖励方差大的问题。训练初期,AI水平较低,游戏中直接使用的真实奖励随机性过大,容易使梯度方向偏离正确方向。我们为抽卡和赢卡添加了一些人为设计的奖励,让奖励更符合新手的引导。在训练过程中,我们逐渐降低人为设计的奖励,使奖励顺利回归到游戏的真实奖励。同时,我们采用了rewardclipping的方式来防止梯度过大。麻将的规则非常多样,不同的麻将规则在流程、可行的动作范围、计分方法等方面都有所不同。为了高效支持大量不同规则的麻将AI,我们的算法框架必须具有较强的通用性和可扩展性。为了提高可扩展性,我们尝试了一种不同于传统DecisionFlow的新结构:将所有可能的动作(包括扑克牌)排列成一个向量作为模型输出的概率分布,这样一个模型就可以处理所有的决策在演奏台上。我们使用RBI方法通过强化学习对这种单模型AI进行了训练,取得了不错的效果。此外,该算法的可扩展性极强,每场比赛只需要重新训练一个模型,代码改动非常小。我们利用这个框架快速扩展,目前支持血流、血战、大众、两人、北伐胡、国标麻将等规则。我们在快手《兜来玩麻将》中推出了多种玩法的AI,我们最高级的AI明显比高阶玩家强。其中,我司国标麻将AI参加了2020年IJCAI国标麻将大赛,并在即将举行的总决赛中获得第一名。在麻将AI的探索中,我们不仅积累了一套麻将AI能力,还锤炼出了一套完整的游戏AI训练平台和方法论,并将相关经验迁移到游戏等游戏中。规划与展望随着AI能力的不断拓展,对游戏的赋能也将不断深化和拓展。相信在不久的将来,AI能力将能够更深入地触及游戏行业的方方面面,最大限度地提升用户体验,形成AI能力在游戏中更加完善的闭环。
