本发明涉及信息,尤其涉及一种基于随机游走的多关系链年龄预测方法、装置及设备。
背景技术:
1、年龄预测在进行营销或者投放广告时是非常重要的一个变量,但实际应用中,该特征值经常缺省。为了解决该问题,则需要对用户的年龄进行预测,最原始的处理方式是用上下文平均值、中位数进行填充。
2、目前还有一种较为常见的方法是,基于用户各种行为构建一个关系链,然后基于关系链的一度人脉、二度人脉进行相似度加权等一系列方法进行年龄预测。但是这种方式存在如下缺点:
3、计算量非常大,计算时间长,当用户量上亿时,构建出来的单个关系链会非常大,在进行一度人脉、二度人脉的计算时无法并行计算,且复杂性大;当新增关系时,需要重新重构一遍关系链,工作量大,对业务变化适应性差;用户行为每天产生,意味着关系链每天都发生变化,但是变化频率不一致,这时如果一起按固定频率更新,则出现浏览的信息未及时反映到链中,分享的链比较稳定无需更新造成重复计算的问题。综上,目前的年龄预测方法存在计算量大、计算效率低,对业务变化适应性差的问题。
技术实现思路
1、本发明实施例提供了一种基于随机游走的多关系链年龄预测方法、装置及设备,用以降低年龄预测时的计算量、提高计算效率和对业务变化的适应性。
2、第一方面,本发明实施例提供了一种基于随机游走的多关系链年龄预测方法,所述方法包括:
3、对获取到的用户行为日志进行用户分析,为每种用户行为分别构建一个关系链;
4、针对每个关系链,对所述关系链中的每个年龄未知节点执行以下过程:在所述关系链中筛选所述年龄未知节点的一度人脉和二度人脉,所述一度人脉和所述二度人脉均为年龄已知节点;从所述年龄未知节点出发,采用随机游走算法在所述一度人脉和二度人脉中进行游走,将游走过的年龄已知节点加入遍历序列,直至达到终止条件,得到所述年龄未知节点的最终遍历序列;根据所述最终遍历序列中所有年龄已知节点的年龄值,确定所述年龄未知节点在所述关系链中的年龄初始预测值;
5、针对每个年龄未知节点,将所述年龄未知节点在每个关系链中的年龄初始预测值输入到年龄预测模型中进行预测,得到所述年龄未知节点的最终预测年龄。
6、进一步地,所述从所述年龄未知节点出发,采用随机游走算法在所述一度人脉和二度人脉中进行游走,将游走过的年龄已知节点加入遍历序列包括:
7、根据所述一度人脉和所述二度人脉,确定所述年龄未知节点的多条邻边,一条所述邻边中至少包括一个一度人脉和一个二度人脉;
8、从所述年龄未知节点出发,采用随机游走算法选择一条未走过的邻边进行游走,将游走过的邻边对应的年龄已知节点加入遍历序列。
9、进一步地,所述根据所述最终遍历序列中所有年龄已知节点的年龄值,确定所述年龄未知节点在所述关系链中的年龄初始预测值包括:
10、将所述最终遍历序列中所有年龄已知节点的年龄值的平均值,确定为所述年龄未知节点在所述关系链中的年龄初始预测值。
11、进一步地,所述将所述年龄未知节点在每个关系链中的年龄初始预测值输入到年龄预测模型中进行预测,得到所述年龄未知节点的最终预测年龄包括:
12、将所述年龄未知节点在每个关系链中的年龄初始预测值输入到年龄预测模型;
13、利用所述年龄预测模型中保存的每种用户行为对应的权重值,和所述年龄未知节点在每个关系链中的年龄初始预测值进行加权求和,得到所述年龄未知节点的最终预测年龄;
14、其中所述年龄预测模型中保存的每种用户行为对应的权重值通过对机器学习模型训练得到。
15、进一步地,所述年龄预测模型的训练过程包括:
16、获取样本用户行为日志,为每种用户行为分别构建一个关系链;所述样本用户行为日志中包括样本节点和所述样本节点的真实年龄;
17、针对每个关系链,假设所述样本节点为年龄未知节点,在所述关系链中筛选所述样本节点的一度样本人脉和二度样本人脉,采用随机游走算法在所述一度样本人脉和二度样本人脉中进行游走,将游走过的年龄已知节点加入遍历序列,直至达到终止条件,得到所述样本节点的样本遍历序列;根据所述样本遍历序列中所有年龄已知节点的年龄值,确定所述样本节点在所述关系链中的样本年龄初始预测值;
18、将所述样本节点在每个关系链中的样本年龄初始预测值,和所述真实年龄输入到待训练的机器学习模型中进行迭代训练,得到每个关系链的模型参数;
19、将所述每个关系链的模型参数确定为每种用户行为对应的权重值,并将包含所述每个关系链的模型参数的机器学习模型作为年龄预测模型。
20、进一步地,所述机器学习模型为xgboost模型。
21、进一步地,所述用户行为包括浏览、点击、捐款、和分享。
22、第二方面,本发明实施例提供了一种基于随机游走的多关系链年龄预测装置,所述装置包括:
23、关系链构建模块,用于对获取到的用户行为日志进行用户分析,为每种用户行为分别构建一个关系链;
24、随机游走模块,用于针对每个关系链,对所述关系链中的每个年龄未知节点执行以下过程:在所述关系链中筛选所述年龄未知节点的一度人脉和二度人脉,所述一度人脉和所述二度人脉均为年龄已知节点;从所述年龄未知节点出发,采用随机游走算法在所述一度人脉和二度人脉中进行游走,将游走过的年龄已知节点加入遍历序列,直至达到终止条件,得到所述年龄未知节点的最终遍历序列;根据所述最终遍历序列中所有年龄已知节点的年龄值,确定所述年龄未知节点在所述关系链中的年龄初始预测值;
25、年龄预测模块,用于针对每个年龄未知节点,将所述年龄未知节点在每个关系链中的年龄初始预测值输入到年龄预测模型中进行预测,得到所述年龄未知节点的最终预测年龄。
26、第三方面,本发明实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行存储器中存储的计算机程序时实现上述基于随机游走的多关系链年龄预测方法中任一所述方法的步骤。
27、第四方面,本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述基于随机游走的多关系链年龄预测方法的步骤。
28、由于本发明实施例中对获取到的用户行为日志进行用户分析,为每种用户行为分别构建一个关系链;针对每个关系链,对该关系链中的每个年龄未知节点执行以下过程:在该关系链中筛选该年龄未知节点的一度人脉和二度人脉,一度人脉和二度人脉均为年龄已知节点;从该年龄未知节点出发,采用随机游走算法在一度人脉和二度人脉中进行游走,将游走过的年龄已知节点加入遍历序列,直至达到终止条件,得到该年龄未知节点的最终遍历序列;根据最终遍历序列中所有年龄已知节点的年龄值,确定该年龄未知节点在该关系链中的年龄初始预测值;然后针对每个年龄未知节点,将该年龄未知节点在每个关系链中的年龄初始预测值输入到年龄预测模型中进行预测,得到该年龄未知节点的最终预测年龄。该发明中为每种用户行为分别构建了一个关系链,当新增用户行为等关系时,只需为新增关系构建一条单独的关系链,无需重构已有关系链,能够更好地适应业务变化,且每个关系链表示的用户行为变化频率具有一致性,因此可以降低计算量以及提高计算效率,并且通过采用随机游走策略可以避免节点选择的问题,还可以提高年龄预测准确性。