参考:http://www.sohu.com/a/204747088_617676
应用主要有两个方面:
- 借助于图,通过分析人与行为的关系,进行行为预测,比如欺诈,羊毛党。
- 借助于图,通过分析人与物的关系,进行推荐。
1. 用图进行行为预测
1.1 业内使用图进行反欺诈的场景
根据一度关系和二度关系是否触及了欺诈用户、经济行为是否关联到了异常的商家、一机多人、多头贷款,使用pagerank算法对与借款用户相关的用户进行排名、识别组团欺诈、寻找失联用户的社交网络。
1.2 使用 neo4j 进行行为预测
2. 用图进行推荐
2.1 推荐算法概述
1)基于内容的推荐
这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐。这类推荐算法可以找到用户独特的小众喜好,而且还有较好的解释性。比如你看了哈利波特I,基于内容的推荐算法发现哈利波特II-VI,与你以前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你。
2)协同过滤推荐
协同过滤是推荐算法中目前最主流的种类,花样繁多,在工业界已经有了很多广泛的应用。它的优点是不需要太多特定领域的知识,可以通过基于统计的机器学习算法来得到较好的推荐效果。最大的优点是工程上容易实现,可以方便应用到产品中。目前绝大多数实际应用的推荐算法都是协同过滤推荐算法。
3)混合推荐
这个类似我们机器学习中的集成学习,博才众长,通过多个推荐算法的结合,得到一个更好的推荐算法,起到三个臭皮匠顶一个诸葛亮的作用。比如通过建立多个推荐算法的模型,最后用投票法决定最终的推荐结果。混合推荐理论上不会比单一任何一种推荐算法差,但是使用混合推荐,算法复杂度就提高了,在实际应用中有使用,但是并没有单一的协同过滤推荐算法,比如逻辑回归之类的二分类推荐算法广泛。
4)基于规则的推荐
这类算法常见的比如基于最多用户点击,最多用户浏览等,属于大众型的推荐方法,在目前的大数据时代并不主流。
2.2 协同过滤
一般来说,协同过滤推荐分为三种类型:
- 基于用户(user-based)的协同过滤;
- 基于项目(item-based)的协同过滤;
- 基于模型(model based)的协同过滤。
前面两种在有些文章中叫做基于邻域的方法(Neighborhood-based)。
1)基于用户(user-based)的协同过滤主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分,就可以找到评分最高的若干个物品推荐给用户。
2)基于项目(item-based)的协同过滤和基于用户的协同过滤类似,只不过这时我们转向找到物品和物品之间的相似度,只有找到了目标用户对某些物品的评分,那么我们就可以对相似度高的类似物品进行预测,将评分最高的若干个相似物品推荐给用户。比如你在网上买了一本机器学习相关的书,网站马上会推荐一堆机器学习,大数据相关的书给你,这里就明显用到了基于项目的协同过滤思想。
3)基于模型的协同过滤作为目前最主流的协同过滤类型,其相关算法可以写一本书了,当然我们这里主要是对其思想做有一个归类概括。我们的问题是这样的m个物品,n个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。
基于模型(model based)的协同过滤也有多种方法,其中用矩阵分解做协同过滤是目前使用很广泛的一种方法。