原文链接:MDSMT
目的:使用多源数据流解决流失预测的问题和付费多少预测的问题(多任务)。
数据源:Player portrait(静态属性);Behavior Sequence(行为序列的动态属性);Social Network(社交网络)
定义玩家流失:如果玩家7天没有上线就判定流失;定义payment:把玩家7天付出的总金额当作total payment label
用户被分为三组:流失;没有流失没付钱;未流失还付钱了
根据数据的实验分析:得到不同组玩家的行为序列和其流失及消费的关联性(e.g. 流失的用户会疯狂消耗其令牌);
创新点一:他这个Portrait居然也是动态的,他是将一段时间内portrait的变化进行embedding。
创新点二:我还是不明白为什么要用Conv1D,但是把用户的行为序列做成了一个embedding就很厉害啊
创新点三:使用GCN将玩家的三种数据源进行结合,这就很迷,他后面还使用了GCN单独进行预测进行比较。
这篇文章重点让我认识到网易数据源的丰富性和多任务吧,别的倒是没有特别突出的地方
最后放上我觉得比较好的一些GCN和GAT理解资料:
GCN是鼻祖,需要提前知道邻接矩阵A,最重要的是可以提前计算,然后缩减运算量。
GraphSage:GraphSage实现;GraphSage解析
GraphSage使用了两个优化技巧,第一个是聚集不同hop的embeddings(递归),第二个是使用Sampling,大大缩短了运算量,算是GCN在工程上的实现。
GAT:直接看原文就好,这个东西比较简单,就是用了多头注意力,原有的GCN考虑节点间影响的时候认为度数和其有关系,没有考虑到node之间的embeddings之间的相似性。
然后就使用了muti-Attention 的机制,这里面要注意一点,就是Attention的时候要注意掩码的设置,
和节点相邻的部分,我们才将其设为1,否则就是一个很大的负数,这样在softmax时候,其无线接近0。其最后一层并不是简单的concat,而是将各个head的特征值进行平均,然后再输出Cla's's