HI,下午好,新媒易不收取任何费用,公益非盈利机构
24小时服务热线: 4000-162-306
请扫码咨询

新媒易动态

NEWS CENTER

我们完成了对一组用户与物品的相似度计算

2019-05-13

此致我们完成了对一组用户与物品的相似度计算,后续只需要把物品1轮流替换成需要比对的物品即可,完成后得到用户与一组物品的相似度。大家其实算下来有感觉到,余弦相似公式在计算标签的运用上视乎有些“浪费”,因为不管怎么算,用户的词频只会是1和0。所以可以看出余弦相似公式在计算文章内容的相似度或者某些元素非可控集合的相似度中更能突显出其价值。文章中某个关键词出现5次,那么该关键词的词频将会是5,计算结果将会大大的不同。

那么对于我们上面介绍的方法,我们也是可以把词频拿来灵活运用的,因为词频就类似于权重,我们可以通过调整词频来达到提高某个标签的权重。

如上述情况,用户对城市极为敏感,那么我们可以把城市的词频从1提升到2或3。如果是某些必须相同的标签,我们可以在提供匹配的物品列表中先进行筛选。其中可以灵活运用的方式还有很多很多,等待大家的挖掘和探索。

三. 实践中对算法的改造

细心的朋友可能会发现,我这里使用的方法和传统意义上的基于物品的协同过滤算法有所不同,传统基于物品的协同过滤算法不会直接使用用户标签,而是提前维系好物品与相似物品之前的相似度关联。而再用用户行为判断用户对当前物品的喜好度。

也就是说,传统的基于物品协同过滤算法,即便没有用户,物品与推荐的物品就已经有了相似度推荐的关系存在。

这也是ItemCF非常大的缺点之一:如果网站的物品很多,那么计算物品相似度矩阵代价很大。

而我使用的是改造版本,即是把物品赋予用户标签的与物品计算相似度。这样的好处是我不用维系庞大的物品相似度关系表,同时具有更大的灵活性。当用户产生浏览行为后,根据分析用户的标签,再进行相似度计算。

这个时候大家也就会有疑问,如果没有提前准备好物品相似度矩阵。那么用户在第一次进来的时候,或者用户行为不足以分析的时候。我们就无法给用户进行推荐了。确实是的,这也是这个方法存在的缺陷,在推荐系统中称为“冷启动”。

四. 推荐系统冷启动问题

正如我上面描述的情况,用户第一次使用或者用户行为不足的时候,我们无法通过用户行为计算出用户的标签,也讲无法通过基于邻域的协同过滤算法进行推荐/个性化推送。那么此时我们该怎么解决这个问题呢?其实冷启动分为三种,即为用户冷启动,物品冷启动,系统冷启动。我们刚才所描述的问题是用户冷启动,也是最常见的一种。

相关推荐