美文网首页
向量空间在推荐系统中的使用

向量空间在推荐系统中的使用

作者: 文景大大 | 来源:发表于2021-01-01 12:47 被阅读0次

推荐系统在很多场景都有使用,其中最常见的有如下两个场景:

  • 寻找到和你兴趣相同的用户;

    比如交友软件中的好友匹配、音乐软件中寻找口味相同的听友、QQ兴趣部落寻找兴趣类似的朋友等;

  • 寻找到和当前内容相类似的其它内容;

    比如音乐软件中基于当前喜欢的音乐找到其它可能喜欢的音乐,今日头条中基于当前喜欢的新闻寻找其它可能感兴趣的新闻等;

这些使用场景都需要用到推荐算法,而推荐算法中最为基础的一种就是今天要介绍的“向量空间”。

一、寻找兴趣相同的用户

我们以音乐软件中寻找口味相同的好友为例子。

假设现在我们的歌单中分别有15首歌曲,我们用下面的表格来表示你对每一首歌曲是否喜爱,然后遍历系统中所有的用户,找到系统中其它用户对这15首歌曲的喜爱情况。

如果和你拥有相同喜欢歌曲数量超过一个阈值,比如10,那么就代表他和你的口味就非常接近了。可以取前n个给你展示出来,越靠前就代表越和你的口味相同。

《红太阳》 《稻香》 《江南》 《素颜》 《丁香花》
自己 0 1 0 1 0
张三 0 1 0 1 0
李四 0 1 0 1 1
王五 1 1 0 1 0
赵六 0 0 1 0 0

这种方式比较粗糙简略,只是寻找和你具有相同喜欢歌曲数量尽可能多的用户。然而不同的用户对同一首歌曲的喜爱程度是不同的,不是非黑即白的喜欢和不喜欢,而是“感兴趣”、“喜欢”、“非常喜欢”、“超级喜欢”等多个程度。

如上例子中,张三虽然喜欢的歌曲和我们自己严格一致,但是他有可能对这几首喜欢的歌曲只是一般地“感兴趣”,我们却是“超级喜欢”,而另外一个用户李四,却和我们一样,对喜欢的歌曲都是“超级喜欢”的,所以事实上,李四才是和我们口味最接近的用户。

那么如何建立模型和算法来找到李四这样的用户呢?我们可以借助向量空间的概念。

首先,我们需要对用户喜爱一首歌曲的程度进行数字化建模,比如通过如下行为来衡量用户对一首歌曲的喜爱程度:

单曲循环 分享歌曲 收藏歌曲 搜索歌曲 完整听完 没听过 跳过
5 4 3 2 1 0 -1

然后,基于这种数字化来衡量如上各个用户对不同歌曲的喜爱程度:

《红太阳》 《稻香》 《江南》 《素颜》 《丁香花》
自己 0 5 0 5 -1
张三 0 2 0 2 0
李四 0 5 0 5 2
王五 5 1 0 1 0
赵六 0 0 5 0 0

我们将歌曲视为向量空间中维度,那么现在就是一个五维空间,衡量谁距离我最近,就要使用欧几里得距离。

欧几里得距离和曼哈顿距离都是用来衡量两个地点之间路径远近的一种指标,这个在以前的文章《路径搜索算法》中有过介绍。欧几里得距离是直线距离,是理论上的最短路径;曼哈顿距离是受制于现实障碍物情况下的最短路径。

不同维度空间下两点之间的欧几里得距离计算公式就为:

不同维度下欧几里得距离计算公式

那么,我们就可以基于计算结果找到最小值,最小值所代表的的用户就是和自己口味最相近的了。

二、寻找相似的内容

我们可以给内容定义很多的特征项,以歌曲举例,特征项可以有“流行歌曲”、“古典音乐”、“情歌”、“摇滚”等等,然后针对每首歌曲,对以上特征项进行打分,以此来通过多维欧几里得距离的方式来寻找到相似的音乐。

理论上确实可行,但是实际情况却有困难。首先,我们需要找到足够具有代表性的特征项,特征项找的太少,或者不具有代表性,会影响算法执行的效果。其次,如何给每首歌曲都就这些特征项打分呢?人工肯定不靠谱,歌曲太多了,而且人工打分具有很强的主观性,可能导致特征项的分数不准。

那么该如何找到一个可以实际操作的方案呢?其实和上面第一个问题的方法是一样的,只不过我们这次把维度变成用户。

自己 张三 李四 王五 赵六
《红太阳》 0 0 0 5 0
《稻香》 5 2 5 1 0
《江南》 0 0 0 0 5
《素颜》 5 2 5 1 0
《丁香花》 -1 0 2 0 0

这是什么道理呢?刚才我们是寻找口味相近的用户,那么倒置一下维度,就是寻找口味相同的歌曲,这些歌曲被某一类群体特别的喜欢,从而得出它们是相似的歌曲的结论。

如此,我们使用欧几里得距离的计算,就能寻找出和当前歌曲相似的其它歌曲。

相关文章

  • 向量空间在推荐系统中的使用

    推荐系统在很多场景都有使用,其中最常见的有如下两个场景: 寻找到和你兴趣相同的用户;比如交友软件中的好友匹配、音乐...

  • 向量的点乘的应用和定义_线性代数_day7

    使用cos判断向量的垂直,角度范围 判断两个向量的相似程度(推荐系统) 使用向量的点乘可以通过差值进行制作推荐系统...

  • 线性代数之——向量空间

    1. 向量空间和子空间 向量空间 由所有的 维向量 组成,向量中的每个元素都是实数。 向量空间 可以用 ...

  • 商品相似性计算

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

  • 标量、向量和特征空间

    标量、向量和空间 单个数字特征也称为标量。标量的有序列表成为向量。向量位于向量空间中。在绝大多数机器学习应用中,对...

  • 向量

    一.简介 向量是数组的抽象和泛化 向量使用地址连续的物理空间 在向量的末尾添加一个哨兵,可以更方便观察和测试向量 ...

  • 向量空间相关概念总结-基

    张成空间 之前的向量空间一节已经说过:向量空间对向量的线性组合封闭(相加和数乘),所以,向量空间可以通过“向量+线...

  • Android 默认字体大小 sp和dp显示大小不一样

    在使用TextView及相关控件的时候,设置字体大小时Google推荐sp。设置空间的宽高推荐dp。当修改系统字体...

  • 支持向量机(三)

    使用支持向量机 我们不推荐自己编写相关代码实现支持向量机的代价函数最小化。因此,我们可以使用现有的支持向量机的软件...

  • Maven教程(五)坐标的概念以及依赖管理

    1、什么是坐标? ①、数学中的坐标 在平面上,使用 X 、Y 两个向量可以唯一的定位平面中的任何一个点 在空间中,...

网友评论

      本文标题:向量空间在推荐系统中的使用

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