推荐算法CB

推荐方法

• 基于内容Content Based

• 基于协同Collaboration Filtering

    – User Based CF

    – Item Based CF

基于内容(ContentBased)

• 引入Item属性的Content Based推荐

《推荐算法CB》

用户进入优酷查看某电影,进入该电影的播放页面,周围会有相关item推荐比如广告、相似电影、演员相关、花絮之内的

内容分析:

比如某item的正排表–根据名字等元数据进行中文分词得到关键词(不是标签,可以通过关键词得到,有时候标签和关键词不一样,但更能表现出item的特性)及其权重

《推荐算法CB》

当然也可以对其他的元数据进行中文分词得到正排表,比如name/title、desc、影评、导演、主题、年代、地域、标签

item内容属性索引:

做倒排表,然后放进NOSql里面去

《推荐算法CB》

倒排表

《推荐算法CB》

用户浏览数据

相关性计算、排序

user点击了某item(站在数据挖掘工程师的角度就是等于元数据信息),然后推荐系统根据itemA找到其他的item1、item2、item3。但是这种方案比较耗时。

两种方案

(1):itemA->元数据信息->内容分析(关键词)->关键词提取token1、token2、token3->通过倒排表查询得到最终的top(N)->item1、item2

(2):item-item矩阵查询得到,提前拿到网站所有的item,得到所有正排表和倒排表,加权去重。如果遇到新增的item,如图所示,一般都是通过storm或者spark streamming等实时流处理框架来进行处理,并入库。红色为倒排表–需要实时合并、更新,合并、更新倒排表token时要注意新旧排序与权重的比较

《推荐算法CB》

  以token为纽带进行关联,所以解释性很强,相关性很强,但是缺点也很明显,比如张三和李四同时进来点击这一个item,但是以后推荐的却是同一套东西,然后每个人的喜好都是有区别的。因此,要改进该推荐系统,只能引入用户画像。

引入User属性的Content Based推荐

《推荐算法CB》《推荐算法CB》

user用户画像表

《推荐算法CB》

对最近一周看的电影item1 item2 item3做一个正排表

《推荐算法CB》

当用户点击了item4时,从NOSQL中取出user-item和item list信息,通过token进行推荐,同时注意更新token和权重。所以引入user属性的推荐方案有两种。(1)通过user item和item list进行推荐;(2)通过用户画像(user:token:score…)和token(item,item…)列表进行推荐

则需要对用户user推荐怎样的个性化列表?

举个简单的小例子
我们已知道
• 用户u1喜欢的电影是A,B,C
• 用户u2喜欢的电影是A, C, E, F
• 用户u3喜欢的电影是B,D
我们需要解决的问题是:决定对u1是不是应该推荐F这部电影
基于内容的做法:要分析F的特征和u1所喜欢的A、B、C的特征,需要知道的信息是A(战争片),B(战争片),C(剧情片),如果F(战争片),那么F很大程度上可以推荐给u1,这是基于内容的做法,你需要对item进行特征建立和建模。

• Mr. John Doe likes “Cars”

• “Ferrari” is a car

• John Doe may like “Ferrari”

• 面向用户兴趣的新闻推荐(Item2User)

《推荐算法CB》

• 例子:通过相似度得到item与item,user与user之间的score,然后按照由高到低排序

相似度的参考文章:余弦距离、欧氏距离和杰卡德相似性度量的对比分析

《推荐算法CB》

    原文作者:贫僧洗头爱飘柔
    原文地址: https://blog.csdn.net/ForgetThatNight/article/details/80315038
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞