正如题目所说,这篇文章学到是user profiling。而这个user profiling最后被用在了so-called user activity type prediction当中(这部分不是重点,负责形成闭环)。

具体做法,

(1)利用user-poi type关系可以为每个用户构建一个活动graph,这个graph可以用矩阵的形式表达出来(方便输入)。

(2)利用autoEncode可为上述每个用户的vec学到一个中间隐层表达,这个即使所谓的user profiling。也有一个重构的(1)中的向量

(3)当然,我们不能单纯的从(2)中得到user profiling,需要加入一些有意思的考虑,共同学习和调整这个user profiling。这个考虑就是题目中的子图结构。

(4)所谓的子图结构,我们是通过一个现有的算法挖掘出来的(deep first search)——我们把他当做真实的ground-truth。挖掘出来的子图同样可以用矩阵(向量)的形式表达出来

(5)此时我们需要学出一个生成对抗网络当中的G(generator)和D(discriminator),而这个G用来学习“(4)”中个ground-truth(输入是“(2)”中的重构的vec——与autoEncode发生了联系,当然这其中有一个pre-train的过程,输入是“(1)”中的vec),而D负责辨别这些子图结构(输入为“(4)”中生成的,和G生成的)是来自于“(4)”还是来自于G。

(6)自此,这个模型就可以一起快乐协同地学习参数了。最后回到(2)中的中间隐层user profilling可以当做用户特征去学习一个NN用来估计用户的activity type分布。

 



留言

登录 请先登陆, 再留言!