算法笔记-向量空间

我们平常都会听音乐。以网易云音乐为例,根据我们喜欢的音乐的风格,给我们每日推送音乐。相当多的时候,它推送的音乐正好是我们喜欢听的音乐。下面我们就总结这样一个只能推荐系统,是如何实现的。

算法分析

要解决这个问题,满足以下两点就可:
1:找到跟你口味偏好相似的人,将他们喜欢的音乐推送给你。
2:找到你喜欢的音乐相似的类型,把这些音乐推送给你。

下面就根据上面两个思路实现算法。

  • 基于相似用户的推荐
    在这里插入图片描述

基于上面的图标,我们将用户对歌曲的喜欢程度用 0,1 来表示。1 代表用户喜欢,0 代表用户不喜欢。根据上面的图标,我们可以统计出每个用户喜欢的音乐有哪些。然后,遍历这些用户,找到一个跟你喜欢的音乐相同数量最大的那个用户,把他喜欢的音乐推送给你就可以了。

上述的过程虽然也实现了推荐功能,但是粒度太过粗糙,推荐的质量并不高。接下来,对上面的过程进行优化。我们将用户对歌曲的喜欢,细化为程度,通过用户的行为,定义用户对音乐的喜欢程度。

在这里插入图片描述

上图将用户行为量化为喜欢的程度分值。

在这里插入图片描述

将用户行为量化为分值后,再次计算两个用户的相似程度的时候,我们用欧几里得距离来表示。下图表示欧几里得距离计算公式:
在这里插入图片描述

我们把每个用户对所有歌曲的喜爱程度,都用一个向量表示,计算出两个向量之间的欧几里得距离,作为两个用户的口味相似程度的度量。由下图计算过程,得出小明与你的口味最相似。

在这里插入图片描述

  • 基于相似歌曲的推荐

基于相似歌曲的推荐其实与上述的基于相似用户的推荐几乎一样。相似用户推荐中,我们基于用户的行为,对歌曲进行打分。在相似歌曲推荐中,我们基于歌曲的标签,由用户来评分。

对一首歌,定义多种标签,然后由用户对该歌曲归属于那一类标签进行分数的评估。最后,将用户的打分作为向量,求出欧几里得距离作为歌曲的相似度。如图所示:
在这里插入图片描述

总结

黑名单过滤方法中,用到了布隆过滤器,但是布隆过滤器会有误判的情况。为了减少误判带来的错误估计,我们可以采用上述三种方法一同验证骚扰电话和垃圾短信,降低误判带来的风险。

本文创作灵感来源于 极客时间 王争老师的《数据结构与算法之美》课程,通过课后反思以及借鉴各位学友的发言总结,现整理出自己的知识架构,以便日后温故知新,查漏补缺。

初入算法学习,必是步履蹒跚,一路磕磕绊绊跌跌撞撞。看不懂别慌,也别忙着总结,先读五遍文章先,无他,唯手熟尔~
与诸君共勉

关注本人公众号,第一时间获取最新文章发布,每日更新一篇技术文章。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值