游戏中心个性化推荐系统实践

1 引言

1.1 B站游戏中心简介

B站游戏中心是一个游戏分发平台,它提供游戏下载、游戏评测、游戏攻略和游戏活动等相关内容,用户可以在这里找到各种优秀的游戏作品,预约测试,下载资源,以及参与游戏社区的互动。游戏中心首页如图1-1所示:

目前成都创新互联公司已为成百上千的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、海沧网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

图1-1 B站游戏中心首页

1.2 游戏中心推荐系统的背景和意义

尽管游戏中心的用户是主站用户的一个子集,但鉴于主站用户有相当一部分是游戏玩家,游戏中心的用户规模十分庞大;另外游戏中心的游戏非常丰富,涵盖了各种类型的游戏,包括手机游戏、电脑游戏和主机游戏等。

游戏中心推荐系统是这些游戏和海量用户的桥梁,为游戏用户推荐他们感兴趣的B服游戏,帮助游戏用户解决游戏数量过多带来的信息过载问题,用户下载了这些游戏并游玩后,作为渠道服的B站能获得相应的渠道分成,从而实现共赢的局面。

总体来讲,游戏中心推荐系统一方面可以帮助用户解决"发现游戏"的痛点,精准推荐可以降低用户的打开成本。另一方面,推荐系统不仅可以帮助提高转化率,减少无效曝光,而且可以整合利用零碎流量,交叉推广指定的游戏,还可以建立更加详细的用户画像体系,将用户留在B站生态当中。

当前游戏中心涉及到个性化游戏推荐的模块包括首页feed流推荐,首页近期新游推荐和详情页相关游戏推荐等,如图1-2所示:

图1-2 游戏中心所涉及的个性化推荐模块

1.3 游戏推荐系统的挑战

游戏推荐系统在建设的过程中主要面临以下两个方面的挑战:

(1)系统实现上面临的挑战

为了适应游戏分发业务的快速发展,游戏推荐系统需要能够灵活地应用新的算法和策略。因此,在设计推荐系统的时候,要尽量考虑其通用性和可配置性。

(2)模型建设上面临的挑战

首先,用户特征构建方面,由于游戏用户的兴趣和偏好可能会随着时间、场景、心情等因素而变化,这要求推荐系统需要能够及时捕捉和适应这些变化,提供更符合用户当前需求的游戏内容和服务。

其次,游戏中心的用户玩游戏需要付出较高的成本。用户不仅要下载安装包体,还要花费精力去学习游戏的玩法。这与短视频、电商或信息流推荐不同,用户可以很容易地退出、切换或忽略不喜欢的内容。因此,游戏推荐对用户来说有较高的试错成本,使得用户不愿意轻易改变游戏。例如,用户看了一部动作电影,你再推荐一部动作电影,他很可能会观看,但是用户在玩王者荣耀,你再推荐一个不知名的射击游戏,他很可能会忽略。

另外,用户-游戏交互数据的稀疏性和偏差性。游戏用户的行为数据往往是非常稀疏和不均衡的,比如用户对游戏的评分、评论、收藏、下载等行为都是低频和少量的,而推荐系统需要能够从这些数据中学习和预测用户的喜好和意图。此外,用户行为数据还可能存在各种维度的偏差,比如曝光偏差、位置偏差、选择偏差等,而推荐系统需要能够消除或减少这些偏差对模型的影响。

最后,游戏推荐系统需要在满足用户的个性化需求和保证平台的利益之间找到一个平衡点。例如,用户可能更喜欢低肝低氪的游戏,而平台可能更想推广付费或高价的游戏。如何设计一个合理的目标函数和评估指标,以兼顾用户和平台的多方利益,也是一个建模挑战。

1.4 游戏推荐系统的目标和评价指标

在游戏中心推荐场景下,用户消费的是游戏,一旦完成游戏下载和后续的转化,平台就可以获得分成收入,是直接的盈利方式。这与信息流推荐显著不同,信息流推荐场景下,用户消费内容,平台优化算法来提高用户粘性,然后通过互联网广告获得收入,这种盈利方式是间接的。

游戏中心推荐系统的总目标是提升B服游戏渠道的收入,这一方面要求系统能为用户推荐他们真正喜爱的游戏,从而为游戏带来更多的用户;另一方面具体到每一个用户,他们对某个游戏愿意投入的时间是有限的,需要推荐系统尽可能提高游戏用户生命周期的总价值即LTV,而提升LTV与给用户所推荐的游戏关系密切相关。这种目标类似互联网电商,既要提升用户规模,又要提升客单价。

衡量游戏中心推荐的指标主要包含消费侧指标和平台侧指标,消费侧指标如点击率,下载率,平台侧指标如新增用户数和LTV等,如表1-1所示:

指标

公式

说明

消费侧

CTR

点击次数/PV

单次曝光带来的点击

CVR

下载次数/PV

单次曝光带来的下载

UV-CTR

点击次数/UV

人均点击次数

UV-CVR

下载次数/UV

人均点击下载次数

平台层

万次曝光收益

10000*收入/推送次数

7天内万次曝光带来的收入

NAU

当日新增人数

衡量渠道的引量能力

LTV

生命周期收入/NAU

衡量渠道的引量质量

表1-1 游戏推荐系统的核心评价指标

2 游戏推荐系统的整体架构

图2-1 游戏算法平台架构图

游戏中心推荐系统在立项阶段就考虑到了复用性,目前该系统不仅服务于推荐系统,还服务于其他游戏算法业务如智能广告投放、游戏礼包推荐、流失预测等系统。其系统架构图如图2-1所示,涉及的模块如下:

3 游戏推荐系统的核心技术

3.1 特征工程

3.1.1 涉及的特征和处理方法

数据和特征是推荐系统的基础,决定了推荐系统的效果和性能。其中特征的选择和构建直接影响了推荐系统能否有效地学习用户和游戏之间的匹配程度,以及能否提高推荐的准确性和效率。游戏推荐系统使用的特征类型和特征处理方法主要有:

3.1.2 特征平台

游戏推荐系统的特征平台是专门用来存储,共享和管理算法模型中的特征。该特征平台可以帮助其他游戏算法项目进行特征共享,同时可供非算法项目的使用,如广告投放系统人群包的筛选,舆情分析系统特定人群的洞察等。

特征平台的建设不仅可以提高特征复用率,减少重复工作,而且还可能保证特征一致性,避免因为特征不一致导致的模型性能下降,还会降低特征开发成本,简化特征开发流程。

图3-1 特征平台

如图3-1所示,游戏推荐的特征平台的主要由三部分组成:

3.2 游戏推荐模型

有了丰富的用户和游戏特征后,接下来就可以对这些特征数据进行算法建模。推荐系统中算法模块在游戏分发和智能决策中承担重要责任,游戏分发链路通常被拆分成召回、排序和重排三大模块,如图3-2所示。

图3-2 游戏推荐系统的游戏分发链路

3.2.1 召回模型

召回的目的是从海量的游戏库中快速地筛选出少量的候选游戏,降低后续排序阶段的排序压力,召回模型决定了推荐系统的效果上限,所以要尽可能多的从不同维度来挖掘用户的兴趣点,为此我们从不同的方向进行游戏召回,这些召回包括以下几个方方面:

鉴于不同游戏召回通道各有优缺点,而且效果也不同,实际使用的时候,将不同的通道进行加权融合,具体做法事给每个召回通道分配一个权重,根据权重对每个通道的召回结果进行排序或截断,得到最终的召回召回组结果,传递给下游排序任务。这样既考虑游戏召回的覆盖度,又考虑了召回的准确性。当然不同召回组之间也可以进行效果对比,来确定什么样的组合效果最好。这些融合方式支持可配置化,根据线上效果快速进行阶段数量的调整。一种在线召回组实验配置如图3-3所示:

图3-3 在线召回实验配置样例

3.2.2 排序模型

图3-4 游戏推荐系统排序模型

排序模型的目的是根据用户和游戏的特征,更精准的预测用户对游戏的点击率或下载概率。为了提高排序模型的整体收益,我们的排序模型针对多目标进行建模,并从不同的维度来学习用户的不同偏好,包括多阶特征交叉、注意力机制和序列建模,该模型的结构如图3-4所示:

3.2.3 重排模型

游戏推荐系统重排阶段的模型是指在精排模型进行候选游戏得分TopK筛选后,对筛选后游戏进行排序和调整,以提高推荐效果和用户体验,同时兼顾平台利益。游戏推荐系统重排阶段的模型可以包括以下几个方面:

3.3 游戏推荐在线服务

上一节的召回和排序算法经过深度学习平台训练得到对应的模型后,接下来就可以将这些模型部署到线上,为用户提供个性化的游戏服务,其中最主要的服务包含召回服务和排序服务。

3.3.1 召回服务

图3-5 游戏推荐系统召回服务

首先是召回服务,其负责给用户提供不同召回通道的召回结果并进行一定的融合,它的输入是候选游戏池,输出是当前用户有可能点击或者下载的游戏列表。其包含两种召回方式,分别是倒排索引库直接读取召回结果和调用实时召回服务获取召回的游戏列表,如图3-5所示:

图3-6双塔模型的召回服务

3.3.2 排序服务

图3-7多级缓存排序服务

接下来是排序服务,它负责对召回的游戏进行精准的预估,得到用户最有可能点击或者下载的游戏。该服务执行过程如图3-7所示,其接收召回服务得到的游戏列表,然后根据待预测的用户id去特征库获取用户特征,游戏特征和当前的上下文信息进行拼接,然后交给3.2.2节提到的排序模型。其产出是各个召回游戏的精准预测得分。

在实际使用过程当中,我们采用了多级缓存机制来提升该服务的效率。主要是考虑到每个用户召回的游戏不同,如果每来一次请求就去特征库获取这些游戏的特征比较耗时,而这些游戏特征通常不会频繁的变更,所以可以将它们懒加载到JVM内存,并设定过期时间,这样可以大幅提升排序服务的速度。同样的,一些用户的基础属性和长期兴趣在一定时间段是固定的,这种时效性较低的特征也可以进行类似的缓存。

3.4 在线AB服务

游戏推荐系统中的AB服务系统是一种用于评估和优化推荐在线效果的工具。它可以帮助实验者在不同的推荐策略之间进行对比实验,比如不同的排序算法、不同的推荐内容、不同的展示方式等,然后根据实验结果选择最优的方案。

图3-8 算法或策略迭代流程

当前游戏推荐系统算法或者策略的迭代流程如图3-8所示,首先进行离线实验,当离线指标(如排序的gAUC,召回的HR值)达到预期的时候,将模型发布到线上先进行小流量的AB测试,之后进行实验组效果的置信度检验,只有当检验通过后,才可以全流量上线。为了保证该算法的快速迭代,我们开发了AB服务,该AB服务涉及的要点包括:

3.5 其他技术-样本拼接和模型训练

游戏推荐系统中的样本拼接,是指在离线训练模型时,将用户曝光后的点击、下载、新登等数据和候选物品的特征数据进行关联和组合,形成一个完整的样本。

样本拼接最大的挑战是样本实时性与准确性不可兼得问题:当前手机游戏动辄就是几个GB大小的安装包,下载安装包过程比较耗时,这使得游戏曝光和下载完成之间存在很大的时间差,如果在下载完成后进行样本拼接,则拼接的准确率是100%,但是时效性往往超过30分钟。而如果在曝光和下载完成之间进行样本拼接,则会出现一部分的样本被误标注的现象。

我们通过Flink窗口等待来解决该问题,其核心是确定窗口的等待时间。首先统计历史数据数据,找到曝光后的点击或者下载完成耗时的拐点,以该拐点所对应的耗时作为Flink窗口等待的时间。例如,假如95%的下载完成发生在游戏被曝光后15分钟内,那么样本拼接可以在曝光后等待15分钟,该时间段内游戏被下载则为正样本,其他情况下都判定为负样本。

有了样本后,下一步就是进行模型训练。由于上述方案会导致部分样本标签有误,少量的这种错误对模型几乎没有影响,但是随着时间的推移错误的样本数量会累加,最终会影响模型效果。为了避免这个问题,我们额外开启一个Flink样本拼接的Job,该Job的窗口时间设置的比较大,这样可以确保所有的样本都是正确标注的,我们把该Job产生的样本定义为"高完整性低时效性"。相应的,我们把上述的第一个Job产生的样本定义为"低完整性高时效性"样本。

图3-9 混合训练模式模式

有了这些样本之后,我们使用混合训练模式,让我们训练出更加精准的模型。如图3-9所示,这种模式包括两种训练方式:全量训练和增量训练。全量训练使用的是"高完整性低时效性"的样本,这些样本标注都是正确的,训练出的模型非常精准,但是训练周期较长。增量训练采用实时模式,从消息队列获取"低完整性高时效性"的样本进行训练,训练出的模型可快速应用于线上服务。我们还会定期从全量训练中获取精准模型来进行校准,以确保增量模型的准确性和时效性。

4 游戏推荐系统的实践效果

4.1 实验设计

当前游戏中心推荐系统距离初始版本已经将近一年,为了验证当前推荐系统的效果,我们将当前线上流量的20%切给初版推荐策略和模型。来对当前版本和初始版本进行对比。实验设置如下:

实验组:当前版本的推荐系统

对照组:初始版本的推荐系统

流量占比:实验组vs对照组 = 80% vs 20%

实验周期:两周

评估指标:参考1.4节

当前推荐系统和初始版本推荐系统主要的区别包括特征源数据、召回、排序、重排和时效性几个方面,如表4-1所示:

组件

当前版本推荐系统

初版推荐系统

特征源数据

游戏中心数据
游戏SDK数据
游戏内数据
主站数据
广告投放数据
三方数据

游戏中心数据
游戏SDK数据

召回

热门召回
ICF
新游
双塔
标签
召回融合

热门召回
ICF
新游

排序

多目标优化
多阶特征交叉
注意力机制
行为序列建模

单目标优化
Deepfm特征交叉

重排

策略重排
MMR重排

策略重排

时效性

分钟级

天级

表4-1 推荐系统对比

4.2 实验结果

图4-1 实验结果

实验结果如图4-1所示,其中曝光点击率提升78%,曝光下载率提升76%,人均点击提升119%,人均下载提升146%。可以发现效果提升十分明显,这证明了游戏中心个性化推荐系统确实可以帮助业务提升效果。

5 总结与展望

5.1 游戏推荐系统建设的主要贡献

游戏推荐系统建设的主要贡献如下:

5.2 游戏中心推荐系统未来的发展方向

游戏中心推荐系统作为一种智能化的信息检索方式,能够帮助用户发现更适合自己的游戏,提高用户的满意度和留存率,为游戏开发者和运营者带来更多的收益。随着技术的进步和用户需求的变化,游戏推荐系统也面临着新的挑战和机遇,未来的发展方向主要有以下几个方面:

本期作者

王磊

哔哩哔哩资深算法工程师

洪升平

哔哩哔哩资深算法工程师

贺坤

哔哩哔哩资深算法工程师


网站题目:游戏中心个性化推荐系统实践
转载注明:http://www.turtgq.com/article/cohscig.html

其他资讯