美文网首页Neo4j
Neo4j 做推荐 (7)—— 基于内容的相似度量标准

Neo4j 做推荐 (7)—— 基于内容的相似度量标准

作者: 程序员imHou | 来源:发表于2019-08-18 16:54 被阅读0次

相似度量是用于生成个性化推荐的重要组件,这些推荐允许我们量化两个项目的相似程度(或者我们稍后会看到,两个用户偏好的相似程度)。

杰卡德指数-Jaccard 系数

Jaccard指数是0到1之间的数字,表示两组的相似程度。

两个相同集合的Jaccard指数是1.

如果两个集合没有公共元素,则Jaccard索引为0.

通过将两个集合的交集的大小除以两个集合的并集来计算Jaccard。

我们可以计算电影类型集的Jaccard指数,以确定两部电影的相似程度。

哪些电影是跟《盗梦空间》基于Jaccard指数最相似的?

MATCH (m:Movie {title: "Inception"})-[:IN_GENRE]->(g:Genre)<-[:IN_GENRE]-(other:Movie)

WITH m, other, COUNT(g) AS intersection, COLLECT(g.name) AS i

MATCH (m)-[:IN_GENRE]->(mg:Genre)

WITH m,other, intersection,i, COLLECT(mg.name) AS s1

MATCH (other)-[:IN_GENRE]->(og:Genre)

WITH m,other,intersection,i, s1, COLLECT(og.name) AS s2

WITH m,other,intersection,s1,s2

WITH m,other,intersection,s1+filter(x IN s2 WHERE NOT x IN s1) AS union, s1, s2

RETURN m.title, other.title, s1,s2,((1.0*intersection)/SIZE(union)) AS jaccard ORDER BY jaccard DESC LIMIT 100

分析:

首先查询出电影盗梦空间和与它流派相关性的电影集other

count(g) 其实就是电影盗梦空间和电影集other 的流派交集的数量(共同的流派)3. 

s1+filter(x IN s2 WHERE NOT x IN s1) AS union  此 union 即是s1 和 s2 的并集(集合s1 加上 s2中不包含s1 的那部分)

 ((1.0*intersection)/SIZE(union)) AS jaccard  根据上面的Jaccard指数公式计算所得的指数。

运算结果如下:

运算结果1

我们可以将这个相同的方法应用于电影的所有特征(如流派、演员、导演等):

MATCH (m:Movie {title: "Inception"})-[:IN_GENRE|:ACTED_IN|:DIRECTED]-(t)<-[:IN_GENRE|:ACTED_IN|:DIRECTED]-(other:Movie)

WITH m, other, COUNT(t) AS intersection, COLLECT(t.name) AS i

MATCH (m)-[:IN_GENRE|:ACTED_IN|:DIRECTED]-(mt)

WITH m,other, intersection,i, COLLECT(mt.name) AS s1

MATCH (other)-[:IN_GENRE|:ACTED_IN|:DIRECTED]-(ot)

WITH m,other,intersection,i, s1, COLLECT(ot.name) AS s2

WITH m,other,intersection,s1,s2

WITH m,other,intersection,s1+filter(x IN s2 WHERE NOT x IN s1) AS union, s1, s2

RETURN m.title, other.title, s1,s2,((1.0*intersection)/SIZE(union)) AS jaccard ORDER BY jaccard DESC LIMIT 100

运算结果2

Neo4j 做推荐 (1)—— 基础数据

Neo4j 做推荐 (2)—— 基于内容的过滤

Neo4j 做推荐 (3)—— 协同过滤

Neo4j 做推荐 (4)—— 基于内容的过滤(续)

Neo4j 做推荐 (5)—— 基于类型的个性化建议

Neo4j 做推荐 (6)—— 加权内容算法

Neo4j 做推荐 (7)—— 基于内容的相似度量标准

Neo4j 做推荐 (8)—— 协同过滤(利用电影评级)

Neo4j 做推荐 (9)—— 协同过滤(人群的智慧)

Neo4j 做推荐 (10)—— 协同过滤(皮尔逊相似性)

Neo4j 做推荐 (11)—— 协同过滤(余弦相似度)

Neo4j 做推荐 (12)—— 协同过滤(基于邻域的推荐)

相关文章

  • Neo4j 做推荐 (7)—— 基于内容的相似度量标准

    相似度量是用于生成个性化推荐的重要组件,这些推荐允许我们量化两个项目的相似程度(或者我们稍后会看到,两个用户偏好的...

  • Neo4j 做推荐 (2)—— 基于内容的过滤

    原文地址:Neo4j 做推荐 (2)—— 基于内容的过滤 基于内容的过滤(Content-based filter...

  • 相似性方法调研

    目录 时空轨迹相似性度量方法综述 基于轨迹点的相似性度量方法 全局匹配度量法局部匹配度量法 基于轨迹段的相似性度量...

  • Neo4j 做推荐 (4)—— 基于内容的过滤(续)

    Neo4j 做推荐 (2)—— 基于内容的过滤前文只是简单描述了内容过滤的概念和简单演示。 在此,我们将从具体实例...

  • 异常检测(四)——基于相似度的方法

    异常检测——基于相似度的方法 基于距离的度量 基于密度的度量 1.概述 “异常”通常是一个主观的判断,什么样的数据...

  • 基于内容推荐系统

    基于内容的推荐系统:利用item之间的相似度,为用户推荐与之前选择过的物品最相似的物品;能够解决冷启动的问题。 主...

  • 商品相似性计算

    场景 在推荐系统中基于内容相似性的商品推荐 论文查重系统里相似论文的比对 操作 对商品标题分词 生成词向量 遍历计...

  • 对比学习

    1、对比学习、度量学习、bert 自监督的度量学习 simclr moco swav 2、基于对比学习的推荐模型 ...

  • 度量——相似

    相似,这个词我觉得大家肯定不陌生。在日常生活中,有很多东西都是相似的。在平常,我们理解的相似其实就是两个比较像的...

  • 论文学习:A new user similarity model

    一.概要 本文重点介绍基于内存的协同过滤算法的推荐性能,提出了一种改进的启发式相似性度量模型,旨在提高预测精度。本...

网友评论

    本文标题:Neo4j 做推荐 (7)—— 基于内容的相似度量标准

    本文链接:https://www.haomeiwen.com/subject/jczrsctx.html