推荐系统--相似性推荐

相似性推荐

没有历史数据的支持,对于新用户A,没有他的历史行为数据,在他点击了item-X的场景下,可以将与item-x最相似的item集合推荐给新用户A

问题转化为,如何用一种通用的方法,表达item之间的相似性

仍以电影推荐为例,新用户A进入了《我不是潘金莲》电影详情页,如何对A进行电影推荐?

  1. 对于一部电影《我不是潘金莲》,假设他有10个属性,则可以把它看作是一个十维空间的点:
    点N《我不是潘金莲》
    {
    导演:冯小刚
    女主:范冰冰
    男主:郭涛
    女配:张嘉译
    男配:大鹏
    类型:剧情
    地区:中国大陆
    语言:普通话
    日期:2016
    片长:140
    }

对于二维,三维中的点,可以直接用直线距离计算远近,10维空间{导演,女主,男主,女配,男配,类型,地区,语言,日期,片长}中的两个点的距离,需要重新定义一个距离函数,例如:
distance=f1(导演)+f2(女主)+…+f10(片长)
这个距离。就是每个维度贡献分值的总和

函数可以自定义

分值可以这么定义:
f1(导演)
{
如果两部电影导演相同,得1分;
如果导演不同,得0分;
}

例如,有另一个点M《芳华》
{
导演:冯小刚
女主:苗苗
男主:黄轩
女配:NULL
男配:NULL
类型:剧情
地区:中国大陆
语言:普通话
日期:2017
片长:140
}

要计算M《芳华》与N《我不是潘金莲》的距离
distance=f1(导演)+f2(女主)+…+f10(片长)=1+0+…+1=5

即:导演,类型,地区,语言,片长相同各得1分,其他维度不同得0分

遍历电影全集中的10w部电影,就能找到与点N《我不是潘金莲》最相近的3部电影,当用户点击《我不是潘金莲》的详情页时,直接推荐这3部最相近的电影即可

猜你喜欢

转载自blog.csdn.net/qq_29842929/article/details/79666026