
文章插图
如果把上面介绍的SLIM和MF解结合起来,将物品的相似度矩阵
W分解成P*Q两个低维矩阵,用户对某物品的评分,等于他过去评分过的物品在P中对应的向量和
Q中该物品向量内积的和,这就是FISM算法 。相比SLIM的稀疏处理,变为分解降维 。最后再附上一张图,说明MF,SLIM和FISM之间的关系 。

文章插图
【化繁为简:推荐算法三视角】
视角二:图视角
把用户和物品看作顶点,用户的评分在用户和物品之间建立起边,就得到了一个二部图;在二部图的基础上添加更多的顶点和边,形成一个更为复杂的图,辅助二部图的计算 。在图的视角下,推荐问题转化成了在图上寻找高效的链接模式 。

文章插图
我们认为在同一个用户的历史行为中,那么两个物品之间有一条边,现在要计算两个物品之间的相似度,最朴素的思想就是数一数他们之间有多少条边 。考虑每一条边权重不一样,边是通过用户建立的,用户的点击的物品越多,对应边的权重就越小 。这就是Adamic/Adar算法的思想 。
阿里著名的协同过滤推荐算法swing,寻找图中更加稳固的形状,共同评分过两个物品的用户集合中,每两个用户和这个两个物品形成了一个四边形(下图红边为一个swing结构),统计有多少个这样的结构,每一个结构的权重是不同的,这个结构里两个用户共同评分过的物品的数量越多权重就越小 。

文章插图
从用户和物品的二部图出发进行构图,再结合隐因子模型(Latent Factor Model),就进入了Graph-Embedding的领域 。DeepWalk算法在图上随机游走深度优先遍历得到序列,然后和word2vec类似地使用Skip-Gram(A和B序列中相邻,用A的embedding作为特征最大化B的选中概率)进行训练 。Node2Vec算法在DeepWalk的基础上,考虑随机游走的方式,引入深度优先和广度优先的权衡,能够得到更好的更灵活的顶点隐式表示 。LINE算法考虑顶点的二阶相似,两个顶点有边为一阶相似,两个顶点有共同的邻居顶点为二阶相似,它虽不做随机游走,但可以看作是广度优先的采样 。Graph-Embedding取得了顶点的embedding,计算相似度可以得到用户物品距离,物品物品距离,用于推荐 。

文章插图
GCN(图卷积)接收拓扑图作为网络输入,可以计算每一个顶点更好的表示,相比graph-embedding可以有监督地为推荐目标而训练 。但GCN在运算时,每一层都要输入整个图,在推荐系统里,物品和用户都可以是百万级别以上,实际中无法使用 。GraphSAGE通过RandomWalk采样,解决了这个问题,用在推荐领域就是PinSage算法 。从某顶点出发,深度优先走k步,得到多个子图,组成一个batch进行训练,。然后按照采样的反方向做前向传播,这就是一个k层的图网络,下图是一个k为2的例子 。

文章插图
在用户和物品的二部图基础上,用户和用户根据社会关系建立起边来,这就是社会化推荐 。

文章插图
在用户和物品的二部图基础上,增加物品的属性作为顶点,建立新的边,就得到了一个异质信息网络 。比如一个电影推荐系统,除了用户和电影外,还有导演,演员,电影类型,导演拍摄电影,电影属于某种类型,演员出演电影,导演与演员合作,诸如此类就能建立很多边 。其中一类推荐算法叫做meta-path,通过专家经验人工挑选出一些图中路径,如用户->演员->电影,用户->导演->电影,这样的路径称之为meta-path,计算每一条meta-path的权重,将用户和物品间的所有meta-path联合计算评分 。

文章插图
视角三:时间线
把用户对物品的行为想象成一条时间线,我们已知当前时刻前用户的物品行为序列,推荐问题被转化成了预测下一个时刻用户发生行为的物品 。

文章插图
假设序列中下一个物品只与上一个物品有关,可以使用马尔科夫模型MC(Markov Chains),序列中相邻的物品间进行矩阵分解 。结合上文提到的用户和物品间矩阵分解MF,用户,当前行为物品和下一个物品三者之间两两进行矩阵分解,将三个值加起来拟合评分,就得到了FPMC(Factorizing Personalized Markov Chains)算法 。
推荐阅读
- linux run level 为何物
- 职业病耳聋的危害有哪些
- 农科院茶研所专家为三江县茶业发展传经送宝
- 屁股为什么会变大
- 职业规划|到处都是招聘海员的信息,为什么不愿意去做海员?原因可不简单
- 西安欲打造化女泉景区为泉及茶文化体验地
- 新楼地热为什么不热,新房的地暖需要清洗吗
- 淘宝开店如何装修 淘宝店铺不装修可以吗
- 老人脚肿为哪般?怎么治疗?
- 我以为,今生与茶无缘
