基于游戏虚拟社交空间的玩家时空序列预测

课题背景

时间序列预测问题是一个经久不衰的问题,在游戏中针对整个游戏、服务器的相关指标,如物品、货币等的价值预测已经取得不错的效果,但是由于用户行为的随机性和动态性,针对用户的时间序列预测存在很多挑战。在这其中预测用户的在线时间对于分析用户的游戏模式及生命周期具有十分重要的意义。

在逆水寒等大型MMORPG,社交是维持用户游戏粘性的重要因素,因此游戏用户社交网络可以有效的提高用户在线时间预测的效果。图网络和时间序列预测结合的问题,如时空序列预测(spatial-temporal prediction)问题已经得到了广泛的研究,并且已经应用到交通流量、水电用量预测等服务中。在这里不同于时空序列预测问题,用户的社交图是动态变化的,同时用户的预测指标如在线时长也是动态变化的,因此基于动态社交图的用户在线时间预测问题存在许多挑战和重要的研究意义。

问题定义

游戏中的社交图是多关系的同时也是动态变化的,如图1所示,设定 NptN_p^t 为 时间步时的游戏在线人数,每两个玩家之间可以存在 NrelaN_{rela} 种关系(如聊天、交易、组队、好友等),每个玩家在该时间步可以得到 NattrN_{attr} 种属性值,因此每个时间步有这样的一个多关系的属性带权图 Gt=(vt,ϵt,Wt,At)G^t = (v^t,{\epsilon}^t,W^t,A^t) ,其中 vtv^t 表示节点集合(代表玩家), vt=Npt|v^t|=N_p^tϵt{\epsilon}^t 表示边的集合(代表了不同关系), WtRNpt×Npt×NrelaW^t \in R^{N_p^t \times N_p^t \times N_{rela}} 表示不同关系的带权邻接矩阵, AtRNpt×NattrA^t \in R^{N_p^t \times N_{attr}} 表示每个玩家的属性矩阵,其中包括玩家在该时间步的在线时长,如图2所示,玩家在线时长也是动态变化的。

图1:多关系动态社交图
图2:玩家在线时长时间序列曲线

基于社交网络的用户在线时间预测可以定义为:给定一个一段时间的多关系带属性的社交图序列,学习得到一个函数 hs()h_s(\cdot) 预测未来一段时间每个玩家的在线时长属性。

hs([GtM+1,,Gt])[Aonlinetimet+1,,Aonlinetimet+H]h_s([G^{t-M+1},\cdots,G^t])\rightarrow [A_{onlinetime}^{t+1},\cdots,A_{onlinetime}^{t+H}]

问题挑战

基于社交网络的用户在线时长预测问题主要存在以下几个挑战:

  • 如何将动态社交图和时间序列有效结合。

  • 如何解决游戏过程中新用户的冷启动问题。

  • 如何有效解决玩家当天没上线导致该玩家节点在当天聊天、组队、交易图中变成孤立点问题。

评价指标

用户在线时间预测主要通过以下指标进行评估:

  • 在线时间准确率:RMSE、MSE、R Squared

数据集描述

数据集按照天进行分割,其中每天数据包括下面五部分:用户该天属性数据(包括画像和在线时长)、该天聊天数据、该天交易数据、该天组队数据、该天好友数据。

  • 用户属性数据

字段
描述

role_id

玩家id

login_cnt

当天登录次数

online_time

当天在线时间

total_yuan_bao

最新的累计兑换元宝数(用来筛选玩家)

server

服务器

role_class

职业

role_gender

性别

role_level

等级

create_time

账号创建时间

role_base_score

基础评分

role_talisman_score

法宝评分

role_skill_score

技能评分

role_practice_score

修炼评分

role_equip_score

装评

role_total_score

战斗力

role_wuxue_score

武学修为

not_binded_charged_yuanbao

不绑定元宝

hstb

元宝票

bdyb

绑定元宝

yin_liang

铜钱

yin_piao

交子

ck_yin_liang

仓库铜钱

bhgx

帮会贡献

sjtxjf

试剑天下积分

kjjf

科举积分

liang_shi

良师值

jj

军阶

ttsw

论文声望

role_cor

根骨

role_agi

身法

role_int

气海

role_sta

耐力

role_str

力量

finished_task_acm_cnt

累计完成任务次数

watch_movie_acm_pct_avg

累计观看剧情平均百分比

npc_interact_acm_tms

累计NPC交互次数

punish_cnt

被惩罚次数

f_bl_task_acm_num

累计完成的支线任务个数

acm_get_free_yuanbao_amt

玩家累计获得的免费元宝数

acm_get_recharge_yuanbao_amt

玩家累计获得的直充元宝数

acm_get_charge_yuanbao_amt

玩家累计获得的收费元宝数

acm_get_yl_amt

玩家累计获得的铜钱数

acm_get_yp_amt

玩家累计获得的交子数

acm_use_free_yuanbao_amt

玩家累计消耗的免费元宝数

acm_use_recharge_yuanbao_amt

玩家累计消耗直充元宝数

acm_use_charge_yuanbao_amt

玩家累计消耗的收费元宝数

acm_use_yl_amt

玩家累计消耗的铜钱数

acm_use_yp_amt

玩家累计消耗的交子数

learned_production_num

玩家已学习的生活技能数

lear

当前职业技能平均等级

  • 该天聊天数据

字段
描述

playera

聊天发起者

playerb

聊天接受者

server

服务器id

count

聊天次数

  • 该天交易数据

字段
描述

playera

交易发起者

playerb

交易收取者

server

服务器id

money

交易涉及金钱数

tradetype

交易类型

其中交易类型:

1-3为面对面交易:1正常交易,2乞讨,3赠与

4:摆摊

5:玩家商店

6:红包交易

  • 该天组队数据

字段
描述

playera

组队玩家a

playerb

组队玩家b

server

服务器id

count

同在一个队伍次数

  • 该天好友数据

字段
描述

playera

好友发起者

playerb

好友接受者

server

服务器id

status

状态,1=新增,0=删除

relationship

关系类型

sub_relationship_type

子关系类型

sub_relationship_value

子关系值

关系类型:

1-好友 2-师徒 6-临时好友 7-临时仇敌 8-仇敌 9-黑名单 10-别人加我为好友。

子关系类型/值对应:

如果主关系是师徒,子关系类型是2,子关系值true表示师傅,false表示徒弟。

如果主关系是好友,子关系类型是3,子关系值true表示双向好友,false表示单向好友。

如果主关系是仇敌,子关系类型是4,子关系值true表示该仇敌置顶,false表示未置顶。

相关学术论文

Fuxi-UP团队针对该问题,从多任务学习角度,提出了通过Attention结合图数据的时空序列预测框架GMTL,工作已发表在CIKM'2019

Tao, Jianrong, Linxia Gong, Changjie Fan, Longbiao Chen, Dezhi Ye, and Sha Zhao. "GMTL: A GART Based Multi-task Learning Model for Multi-Social-Temporal Prediction in Online Games." In Proceedings of the 28th ACM International Conference on Information and Knowledge Management, pp. 2841-2849. ACM, 2019.

联系我们

有任何问题,请联系 lihao01@corp.netease.com

Last updated

Was this helpful?