一种基于多示例多标记学习的手机游戏道具推荐方法
【专利摘要】本发明公开了一种基于多示例多标记学习的手机游戏道具推荐方法,包括如下步骤:首先将游戏原始运营数据转化为MIML的形式,生成MIML训练数据集合;然后根据训练数据集合训练推荐模型;将测试用户数据转化为MIML的形式,用得到的推荐模型进行预测,输出相关的标记排序作为推荐结果。本发明提出的方法有效利用了玩家行为数据中的大量事件上下文、玩家行为数据中与道具购买并不直接相关的事件,推荐的结果更加准确。
【专利说明】
一种基于多示例多标记学习的手机游戏道具推荐方法
技术领域
[0001] 本发明涉及手机游戏道具推荐方法,特别涉及一种基于多示例多标记学习的游戏 道具推荐机制。
【背景技术】
[0002] 随着移动计算设备和移动互联网的迅速发展,手机游戏成为了人们日常生活中的 一项重要的娱乐活动。在游戏中销售虚拟道具是手机游戏提供商获得收益的主要途径。设 计良好的道具推荐装置能够通过为用户提供个性化的道具推荐,增加用户的游戏道具购买 从而提高游戏营收。游戏道具推荐成功的关键在于,充分利用游戏运营数据,从中挖掘出精 准的用户与游戏道具的喜好关联。目前的推荐装置主要利用用户日志数据转化成的用户_ 物品矩阵来进行推荐。矩阵中的值表示用户对于物品的喜好程度,基于"相似的用户喜爱相 似的物品"这一假设来给用户提供推荐。但是手机游戏运营数据中有很多信息无法通过用 户-物品矩阵来表示,却同样包含了丰富的用户与游戏道具的关联信息,目前的推荐方法难 以有效地对这些信息加以利用。这些信息主要包括:玩家行为数据中的大量事件上下文、玩 家行为数据中与道具购买并不直接相关的事件。游戏设计师的经验告诉我们,这些信息与 预测玩家对于游戏道具的购买息息相关,若能够有效地利用这些信息,游戏道具推荐的结 果能够更加准确。因此,一种能够针对游戏运营数据特性的道具推荐方法亟待提出。
【发明内容】
:
[0003] 发明目的:针对目前的推荐方法难以有效地对所有的有用信息加以利用的问题, 本发明提出一种基于多示例多标记学习的手机游戏道具推荐方法,有效利用了玩家行为数 据中的大量事件上下文、玩家行为数据中与道具购买并不直接相关的事件。
[0004] 技术方案:本发明提出一种基于多示例多标记学习的手机游戏道具推荐方法,包 括如下步骤:
[0005] (1)将游戏原始运营数据转化为MIML的形式,生成MIML训练数据集合,具体过程 为:
[0006] (1.1)将游戏原始运营数据按照N位用户分为N组数据;
[0007] (1.2)用每组数据中的用户购买记录数据来给用户进行标记,有过购买记录的道 具标记为1,没有购买记录的道具标记为〇;
[0008] (1.3)对于每组数据中的所有事件,每个事件都通过一个向量来描述,作为描述该 用户的示例;
[0009] (1.4)将每组示例与其对应的标记组合在一起,得到MML形式的训练数据。
[0010] (2)根据训练数据集合训练推荐模型,训练模型可以表示为:
[0011] 其具体的训练过程为:
[0012] (2.1)初始化推荐模型,包括对模型参数W和V赋初值,保证它们每一列的均值为0, 且标准差为1/力,其中W是一个LX 100大小的矩阵,而V是一个dX 100大小的矩阵,d表示用 户行为的示例维度,L表示可供购买的游戏道具总数,所述推荐模型依据公式1确定,向用户 Xi推荐使得最大化的道具y:
[0013] fy(xi)=ffyVTxi (1)
[0014] 其中,Wy表示W的第y行,fy(Xl)表示用户示例Xl与标记y的相关程度;
[0015] (2.2)从训练数据集合中随机采样一位用户X,从该用户感兴趣的道具集合Y中随 机选择一个标记y,并为y从集合X中选出代表示例x,具体过程为:
[0016] (2.2.1)在训练用户数据集合中随机抽取一位用户X,其共包含n个示例{X1,…, x n},该用户感兴趣的道具标记集合Y共包含m个标记{yi,…,ym};
[0017] (2.2.2)从Y中随机抽取一个标记y;
[0018] (2.2.3)初始化变量i,令i = 1,开始对X中的示例计数;
[0019] (2.2.4)根据公式1对示例11计算其与标记7的相关程度以义 1);
[0020] (2.2.5)计算i = i+l,判断i是否大于n,如果大于则X中的示例已经遍历完,跳向步 骤2.2.6,否则返回步骤2.2.4;
[0021 ] (2.2.6)比较所有计算出来的f y (Xi)值,选择值最大的示例作为代表示例。
[0022] (2.3)从用户X不感兴趣的道具标记集合r中一个一个地随机采样标记,直到遇到 一个排在y前面的不感兴趣的道具标记心并为其确定代表示例S,具体过程为:
[0023] (2.3.1)根据公式1计算示例1与标记7的相关程度心&);
[0024] (2 ? 3 ? 2)初始化指示变量,令Q = 0,i = 1;
[0025] (2 ? 3 ? 3)用户不感兴趣的道具标记集合P共包含t个标记{沉,…,执},为疠计算 4(A)值,比较两个标记y和运的顺序,若知(七)€///(?~将Q赋值为i,表示在第i次采样找到 了一个违反顺序的不感兴趣的道具标记,将找到的不感兴趣的道具标记及其代表示例分别 记录为S和S,并结束,否则进入步骤2.3.4,其中%为涵的代表示例;
[0026] (2.3.4)计算i = i+l,判断i是否大于t,若是,则结束,否则返回步骤2.3.3。
[0027] (2.4)通过梯度下降法更新模型,其目标损失函数为:
[0031] X:是第i个用户的多示例表示,是第i个用户是否拥有道具j的标记指示,fdXO 表示用户i与标记的yij相关程度,R(Xi,yij)是每个标记的错排损失,errrank(Xi,yij)是对于 某一样本在某个标记上的错排损失,整体目标损失函数f是训练集上的整体错排损失; [0032] 其具体过程为:
[0033] (2.4.1)判断是否采样到了违反顺序的标记,若是,则进入步骤2.4.2,否则结束;
[0034] (2.4.2)根据指示变量Q的值估计感兴趣的道具标记y的排名r,具体计算公式如 下:
㈧
[0036] 其中,t为y中标记的个数,卜」符号表示向下取整;
[0037] (2 ? 4 ? 3)模型变量W是一个矩阵参数,其第y行表示为向量a,第f行记录为向量b,分 别按照式(4)更新W的第y行,按式(5)更新W的第則于,并按式(6)更新V:
[0041 ]其中,y为随机梯度下降算法的步长。
[0042] (2.5)判断是否达到要求,若是,则结束训练过程,返回步骤2.2。
[0043] (3)将测试用户数据转化为MIML的形式,用步骤2得到的推荐模型进行预测,输出 相关的标记排序作为推荐结果。
[0044] 当要为某位用户进行游戏道具推荐时只需忽略其对应的标记,就可得到MML形式 的测试数据。
[0045] 有益效果:本发明提出的方法有效利用了玩家行为数据中的大量事件上下文、玩 家行为数据中与道具购买并不直接相关的事件,推荐的结果更加准确。
【附图说明】
[0046] 图1是本发明的手机游戏道具推荐方法的工作流程图;
[0047] 图2是本发明的将游戏运营数据转化为MIML形式的流程图;
[0048] 图3是本发明的采样用户及确定其感兴趣的道具标记及确定其代表示例的流程 图;
[0049] 图4是本发明的采样不感兴趣的道具标记及确定其代表示例的流程图;
[0050] 图5是本发明的训练推荐模型的流程图;
[0051 ]图6是本发明的更新推荐模型的流程图。
【具体实施方式】
[0052]下面将结合附图,对本发明实施例中的技术方案进行清楚完整地描述。
[0053]本发明基于机器学习中的多示例多标记学习(简称MML)框架,把游戏运营数据中 的每一条日志事件当作一个示例,先用一个用户拥有的所有示例来描述该用户,再从这些 示例中选择一个当前模型最认可的代表示例来表示该用户,从而能够充分利用游戏运营数 据中的信息。用户的所有标记表示该用户对于所有游戏道具的购买情况,购买(有购买兴 趣)为1,没有购买(无购买兴趣)为0。在推荐模型的训练过程中,本发明利用随机梯度下降 算法进行在线学习,在保证了推荐模型训练效率的同时也能够利用更多的训练样本。模型 训练主要基于以下的思想:对于任意一位用户,推荐模型应该将该用户感兴趣的道具标记 排在不感兴趣的道具标记之前,如果这样一种顺序违反了,就利用梯度下降方法对模型做 出相应调整,并且相关标记被排到越靠后,模型受到的惩罚就越大。本发明迭代训练推荐模 型,在训练的每一轮,随机采样一位用户,一个他感兴趣的道具标记和一个他不感兴趣的道 具标记,如果当前模型把感兴趣的道具标记排在不感兴趣的道具标记之前,则不更新模型, 否则对模型参数进行梯度下降,使得感兴趣的道具标记排序提前,而不感兴趣的道具标记 排序则会退后。训练结束后,推荐模型将在整个游戏运营数据上将游戏道具对应的标记按 照用户的兴趣程度由强到弱排序。此时只要给推荐模型输入描述一位用户的多个示例,它 就能为该用户输出一个个性化的道具推荐列表。
[0054]图1所示为基于多示例多标记学习的手机游戏道具推荐方法的具体过程,包括以 下一系列步骤:(1)将游戏运营数据的日志信息转化为MML形式,以一条日志事件为一个示 例,用一个用户拥有的所有示例来描述该用户,用所有标记表示该用户对于所有游戏道具 的购买情况;(2)从数据集合中随机选择一位用户以及一个该用户感兴趣的道具标记,并确 定该标记的代表示例;(3)通过随机采样获得一个排在已选标记前面的用户不感兴趣的道 具标记,并确定该标记的代表示例;(4)针对该用户,感兴趣的道具标记以及不感兴趣的道 具标记构成的三元组进行梯度下降更新模型;(5)返回(2)或结束并输出推荐模型。
[0055]图2所示为图1中生成MML输入表示特征的具体过程。首先将游戏原始运营数据按 照N位用户分为N组数据。接着,用每组数据中的用户购买记录数据来给该用户进行标记,有 过购买记录的道具标记为1,没有购买记录的道具标记为0。而每组数据中的所有事件,每个 事件都通过一个向量来描述,作为描述该用户的示例。将每组示例与其对应的标记组合在 一起,便得到了MML形式的训练数据。当要为某位用户进行游戏道具推荐时,只需忽略其对 应的标记,就可得到MML形式的测试数据。
[0056]图3所示为图1中游戏道具推荐模型训练的具体过程。由步骤1开始,步骤2对推荐 模型进行初始化,主要包括对两个矩阵W和V赋初值。假设描述用户行为的示例维度为d,总 共有L个可供购买的游戏道具,则W是一个LX 100大小的矩阵,而V是一个dX 100大小的矩 阵。这里的数值100可以根据用户需要换成其它值,通常选择较大的值会提高推荐的准确 度,而较小的值则会加快速度。W和V被赋予随机值并保证它们每一列的均值为0,且标准差 为1//5。步骤3从训练数据集合中随机采样一位用户X,假设其感兴趣的道具标记集合为Y, 不感兴趣的道具标记集合为Y:。装置从Y中随机选择一个标记,假设为y,并为y从集合X中选 出代表示例x,具体过程见图4。步骤4从本用户不感兴趣的道具标记集合f中一个一个的随 机采样标记,直到遇到一个被排在y前面的不感兴趣的道具标记办并为其确定代表示例免, 具体过程见图5。步骤5进行梯度下降更新模型,具体过程见图6。步骤6判断模型是否达到要 求,是则结束训练过程,否则回到步骤3。这里判断模型是否达到标准可以采用机器学习或 模式识别教科书中常用的方法,比如迭代轮数达到用户指定的次数。
[0057]图4所示为图3中步骤3的具体过程。步骤40为开始动作。步骤41中,在训练用户数 据集合中随机抽取一位用户X,假设其共包含n个示例{X1,…,Xn},用户感兴趣的道具标记集 合Y共包含m个标记{yi,…,y m}。步骤42从Y中随机抽取一个标记y。步骤43初始i为1,开始对X 中的示例计数。步骤44判断i是否大于n,如果大于则X中的示例已经遍历完,跳向步骤47,否 则进入下一步骤45中。步骤45对示例xi计算下式所示的值:
[0058] fy(xi) =ffyVTXi (1)
[0059]其中,Wy表示W的第y行,fy(Xl)可以理解为示例^与标记y的相关程度。步骤46将计 数i加1,再返回步骤44。步骤47比较所有计算出来的fy(Xl)值,并选择值最大的示例作为代 表示例,假设为X,相应的fy(x)可以理解为这位用户与道具标记y的相关程度。整个过程结 束于步骤48。
[0060] 图5所示为图3中步骤4的具体过程。假设用户不感兴趣的道具标记集合歹共包含t 个标记{奶,…,级丨。步骤50为起始动作。步骤51按照式(1)为标记y计算值f y(x),这里我们假 设x是y的代表示例。步骤52初始化i为1,开始计数,并引入一个指示变量Q,初始化为0。步骤 53判断是否t个不相关标记都已遍历完,若i>t则跳到步骤58结束,否则进入下一步。步骤 54按照式(1)为标记级计算/&.(為),这里我们假设西为:运的代表示例。步骤55比较两个标记y 和访的顺序,如果./k (而)$九(4,则进入步骤56,将计数i加一并返回步骤54;如果不感兴趣 的道具标记级排在了感兴趣的道具标记y的前面,即允(.V; >九(/),则跳到步骤57,将Q赋值 为i,表示在第i次采样找到了一个违反顺序的不感兴趣的道具标记,并将找到的不感兴趣 的道具标记及其代表示例分别记录为⑤和*,然后进入步骤58结束。
[0061] 图6所示为图3中通过梯度下降更新模型的具体过程。步骤60为起始动作。步骤61 判断在步骤4中是否采样到了违反顺序的标记,也就是Q是否大于0。如果Q = 0,表示没有采 样到违反顺序的标记,直接进入步骤65结束,否则进入步骤62,根据Q值来估计感兴趣的道 具标记y的排名r,具体计算公式如下:
[0063]其中,t为F中标记的个数小」符号表示向下取整。步骤63将模型变量W的第y行记录 为a,第#行记录为b。步骤64分别按照式(4)更新W的第y行,按式(5)更新W的第射于,并按式 (6)更新V。
[0067]其中,y为随机梯度下降算法的步长,其取值可以按照机器学习或模式识别教科 书中常用的方法设置。更新完模型变量之后,整个过程结束于步骤65。
【主权项】
1. 一种基于多示例多标记学习的手机游戏道具推荐方法,其特征在于,包括如下步骤: (1) 将游戏原始运营数据转化为MML的形式,生成MML训练数据集合; (2) 根据训练数据集合训练推荐模型; (3) 将测试用户数据转化为MIML的形式,用步骤2得到的推荐模型进行预测,输出相关 的标记排序作为推荐结果。2. 根据权利要求1所述的基于多示例多标记学习的手机游戏道具推荐方法,其特征在 于,所述步骤1生成MML训练数据集合的具体过程为: (1.1) 将游戏原始运营数据按照N位用户分为N组数据; (1.2) 用每组数据中的用户购买记录数据来给用户进行标记,有过购买记录的道具标 记为1,没有购买记录的道具标记为0; (1.3) 对于每组数据中的所有事件,每个事件都通过一个向量来描述,作为描述该用户 的示例; (1.4) 将每组示例与其对应的标记组合在一起,得到MML形式的训练数据。3. 根据权利要求1所述的基于多示例多标记学习的手机游戏道具推荐方法,其特征在 于,所述步骤2生成训练推荐模型的具体过程为: (2.1) 初始化推荐模型,包括对模型参数W和V赋初值,保证它们每一列的均值为0,且标 准差为1/vQ,其中W是一个LX 100大小的矩阵,而V是一个dX 100大小的矩阵,d表示用户行 为的示例维度,L表示可供购买的游戏道具总数,所述推荐模型依据公式1确定,向用户乂^隹 荐使得m'g my以&)最大化的道具y: fy (Xi) =WyV1Xi (1) 其中,Wy表示W的第y行,fy(Xl)表示用户示例X1与标记y的相关程度; (2.2) 从训练数据集合中随机采样一位用户X,从该用户感兴趣的道具集合Y中随机选 择一个标记y,并为y从集合X中选出代表示例X; (2.3) 从用户X不感兴趣的道具标记集合?中一个一个地随机采样标记,直到遇到一个 排在y前面的不感兴趣的道具标记如并为其确定代表示例 (2.4) 通过梯度下降法更新模型,其目标损失函数: 其MX1是第i个用户的多示例表示,yu是第i个用户是否拥有道具j的标记指示,^"^表示 用户i与标记的yij相关程度,R(Xi,yij)是每个标记的错排损失,errrank(Xi,yij)是对于某一 样本在某个标记上的错排损失,整体目标损失函数P是训练集上的整体错排损失; (2.5) 判断是否达到要求,若是,则结束训练过程,返回步骤2.2。4. 根据权利要求3所述的基于多示例多标记学习的手机游戏道具推荐方法,其特征在 于,所述步骤2.2的具体过程为: (2.2.1)在训练用户数据集合中随机抽取一位用户X,其共包含η个示例Ix1,…,χη},该 用户感兴趣的道具标记集合Y共包含m个标记{yi,…,ym}; (2.2.2) 从Y中随机抽取一个标记y; (2.2.3) 初始化变量i,令i = 1,开始对X中的示例计数; (2.2.4) 根据公式1对示例X1计算其与标记y的相关程度fy(Xl); (2.2.5) 计算i = i + l,判断i是否大于n,如果大于则X中的示例已经遍历完,跳向步骤 2.2.6,否则返回步骤2.2.4; (2.2.6) 比较所有计算出来的fy (Xi)值,选择值最大的示例作为代表示例。5. 根据权利要求3所述的基于多示例多标记学习的手机游戏道具推荐方法,其特征在 于,所述步骤2.3的具体过程为: (2.3.1) 根据公式1计算示例X与标记y的相关程度fy(x); (2.3.2) 初始化指示变量,令9=0,1 = 1; (2.3.3) 用户不感兴趣的道具标记集合f共包含共包含t个标记{也,…,访:h为纽计算 Λ,(Λ)值,比较两个标记y和&的顺序,若·feiA) S八心'),将Q赋值为i,表示在第i次采样找到 了一个违反顺序的不感兴趣的道具标记,将找到的不感兴趣的道具标记及其代表示例分别 记录为?7和力,并结束,否则进入步骤2.3.4,其中而为猛:的代表示例; (2.3.4) 计算i = i+l,判断i是否大于t,若是,则结束,否则返回步骤2.3.3。6. 根据权利要求3所述的基于多示例多标记学习的手机游戏道具推荐方法,其特征在 于,所述步骤2.4的具体过程为: (2.4.1) 判断是否采样到了违反顺序的标记,若是,则进入步骤2.4.2,否则结束; (2.4.2) 根据指示夺量Q的倌估计感兴趣的道具标记y的排名r,具体计算公式如下:(3) 其中,tSr中标记的个数士」符号表示向下取整; (2.4.3) 模型变量W是一个矩阵参数,其第y行表示为向量a,第对于记录为向量b,分别按 照式(3)更新W的第y行,按式(4)更新W的第f行,并按式(5)更新V:其中,γ为随机梯度下降算法的步长。 (4) (5) (6)
【文档编号】G06Q30/06GK105894350SQ201610188765
【公开日】2016年8月24日
【申请日】2016年3月29日
【发明人】周志华, 唐俊, 詹德川
【申请人】南京大学