函数调用图是一种有向图,每个节点代表一个函数,节点间有向边是对执行过程中控制流的描述。对于函数调用图的学习,目标是对实现某类功能的函数组合执行的过程进行理解,并将这一过程的特征嵌入到每个函数节点中。为了能够训练出更准确、高效的模型来完成函数节点的嵌入,我选择了两类三种模型作为备选项,并进行深入分析。
基于图的推荐算法
两种最流行的方法是基于因子分解(MF)和基于图的模型,前者通过将观察到的用户-物品的直接交互因子化来获取用户偏好,后者从用户-项目交互构建的图中提取间接偏好。这篇文章Query-based Music Recommendations via Preference Embedding提出了一个统一的和有效的方法,综合了这两种方法。该方法通过在图上随机浏览,从每个用户的邻域物品中获取高阶信息。我们的方法没有对转移矩阵进行分解,而是引入了一个置信加权参数来同时模拟所有的高阶信息,为此我们维护了一个稀疏的用户-物品交互矩阵,并使用随机游动来丰富每个用户的矩阵。
协同过滤通常用于利交互数据进行推荐,因为它能在不同的推荐策略具有较好表现,且不需要领域知识。有两种主流的 CF 模型:基于分解思想的潜在因素模型(Latent Factor)和基于图的模型。潜在因子模型通过分解用户-项目矩阵来发现用户和项目之间的交互作用中的共享潜在因子,矩阵分解模型是这类方法中最具代表性的。基于图的模型研究用户-项目二部图中固有的节点之间的高阶接近性(high-order proximity)。基于图的方法在某种程度上是基于分解方法的扩展,因为它们在交互二部图中显式地建模了用户和项目之间的高阶亲近度。
构建了一个统一的框架 HOP-Rec,该框架:
(1)在给定的用户-项交互矩阵中获取高阶偏好信息
(2)通过在相应的交互图上进行随机浏览来获得大规模的真实世界数据集
关键在于K阶近邻的定义,其中p反映了从当前节点u到其k近邻用户节点的转移概率。利用转移概率与衰变因子(decay factor)的乘积来显式地衡量两个节点之间的近邻关系。i即正例,表示从当前用户u的采样序列中采样得到的物品(根据k阶概率分布进行采样),跟当前用户存在k阶近邻关系