天天看点

图数据库在食谱推荐中的应用

作者:闪念基因

图数据库

图数据库在食谱推荐中的应用

常用使用场景

  • 社交应用场景:好友推荐,社交关系梳理(粉丝关注),怎么通过最少的人认识特朗普?
  • 知识图谱:把错乱的关系网,快速的搜索出你需要的东西
  • 推荐场景:

    零售、电商、内容等个性推荐,挖掘用户需求,提升用户体验

  • 导航城市规划:最短路径
  • 金融领域:资产交易图
  • 节点画像:设备画像,用户画像等

基本概念

  • 节点(V):人、电影、食谱、食材
  • 节点属性(VP):人的岁数、身高、年龄、职业
  • 关系(E):人和电影之间的关系(喜欢 ,点赞,评分等)
  • 关系属性(EP):人对电影的评分的分值
  • 标签(Label):对节点和关系进行分类的 用户(user),设备(device)

比关系型数据库更适合做关系数据库

主体:用户---食谱

图数据库在食谱推荐中的应用

常见的推荐逻辑

  • item ==> item
    • 根据内容推荐相似食谱(食材、营养、标签等)
  • user ==> item ==> user
    • 推荐制作记录推荐相似用户
  • user ==> item ==> user ==> item
    • 根据相似度最高的用户推荐他常用的食谱

图数据库库中常用的推荐

  • 内容过滤
  • 协同过滤
    • 余弦相似度
    • 皮尔逊相似度
  • 领域推荐

内容推荐

顾名思义是根据内容来做为推荐

食谱食材内容相似推荐:I2I

小鸡炖蘑菇和香菇炖鸡相同食材

图数据库在食谱推荐中的应用

可以找到和香菇炖鸡食材相同的食谱排序

图数据库在食谱推荐中的应用

还可以用食谱标签、食谱营养成分等内容作为推荐

Jaccard距离 u2i2u

公式:

图数据库在食谱推荐中的应用

根据制作过相同食谱的用户推荐相似用户

并集:取的是全量食谱

交集:取得是相同制作过的食谱

余弦相似度 u2i2u

公式:

图数据库在食谱推荐中的应用

样本数据:

图数据库在食谱推荐中的应用

用户A和用户B算余弦相似度

合集余弦:(正确的余弦相似度)

图数据库在食谱推荐中的应用

交集余弦:(有一定缺失的余弦相似度)

由于图数据库逻辑合并取参数逻辑,损失一部分值的余弦相似度计算方法

图数据库在食谱推荐中的应用

精确度问题

A与C的情况怎么办?

图数据库在食谱推荐中的应用

制作相同过食谱后

图数据库在食谱推荐中的应用

扩大食谱样本

图数据库在食谱推荐中的应用

就是说只发生在新用户已经少量制作的用户上,也就是合集较少的情况,在食谱样本扩大的时候以及用户制作过相同食谱之后,两个影响差值会缩小,也就是说用户越做推荐的越准确。经常制作的用户,样板偏差会被拉小。

皮尔逊相似度 u2i2u

公式:

图数据库在食谱推荐中的应用

样本数据:

图数据库在食谱推荐中的应用

用户A和用户B算皮尔逊相似度

空值预期为用户制作的平均次数

合集皮尔逊:

图数据库在食谱推荐中的应用

交集皮尔逊:

图数据库在食谱推荐中的应用

对比余弦相似度:

两个公式差距就是空值预期(零、平均数),公式是可以互推的

领域推荐 u2i2u2i

根据相似度最高的用户推荐食谱(拿余弦相似度作为参考)

图数据库在食谱推荐中的应用

用户之间的相似度:

用户A--->用户B--->0.617

用户A--->用户C--->0.954

用户A--->用户D--->0.796

==》取到前两个相似用户C、用户D

==》红烧肉 =8x0.954+0x0.796=7.632

==》辣椒炒肉 =1x0.954+1x0.796=1.75

==》也就是加权求和排序,加权和大的在前面

良好推荐期望值:

  • 功能全面个性化推荐
  • 效果精准
  • 性能快

实际的推荐场景里,功能、效果、性能三者相辅相成、也彼此互相影响,很多时候要进行折中的考虑

一、选取相似度算法问题

性能:余弦相似度>>皮尔逊相似度

准确度:余弦相似度<皮尔逊相似度

在阿里云GDB初始阶段我们会使用余弦相似度来做为用户之间相似度系数

二、数量级别过大全量计算过慢(数据筛选)

根据相似度最高的用户推荐食谱

采用数据过滤的方式

万/十万/百万 ==> 找到相同制作食谱最多的人

千/万==> 协同过滤

十/百==> 加权求和

三、冷数据问题

图数据库在食谱推荐中的应用

四、超时截断

超时后选取热门数据进行补足

作者:xiaospace

来源-微信公众号:九阳技术团队

出处:https://mp.weixin.qq.com/s/cq5GNDeT495xVwdAUTavvQ

继续阅读