专栏名称: 茶叶蛋酱
野生互联网从业者
目录
相关文章推荐
Linux就该这么学  ·  代码质量堪忧!Win11 升级弹窗直接卡死崩溃 ·  19 小时前  
程序猿  ·  华为,纯血鸿蒙,三分天下有其一 ·  昨天  
程序猿  ·  最受欢迎的男友职业排行榜Top1 ·  3 天前  
OSC开源社区  ·  做开源商业化创业3年,一点小感悟 ·  昨天  
Linux就该这么学  ·  支付宝 P0 事故,太炸裂了。。。 ·  昨天  
51好读  ›  专栏  ›  茶叶蛋酱

推荐系统的常用算法

茶叶蛋酱  · 简书  ·  · 2017-08-11 09:20

正文


系统根据用户属性(基本资料or兴趣等)建模。根据这些基础特征计算用户的相似度。

eg. 用户A和用户C相似,则将用户A喜欢的内容推荐给用户C


a.不需要依赖历史数据,没有冷启动的问题;

b.不依赖于内容属性,可以无缝接入。

不足:

算法粗糙,效果不好,只适合简单的推荐。


系统根据内容(标签、属性等)建模。根据这些类型特征作为属性进行相似度。

eg. 用户A和喜欢看内容A,内容A和内容D内容相似,则可以将内容D推荐给用户A。


a.对用户兴趣可以很好的建模,并通过对内容属性维度的增加,获得更好的推荐精度。


a.内容的标签属性,很难得到更多数据;

b.内容相似度的衡量标准只考虑到了内容本身,有一定的片面性;

c.需要所有内容的历史标签、属性数据,有冷启动的问题。



基于用户对内容的偏好找到相邻的邻居用户,然后将邻居用户喜欢的推荐给当前用户

将一个用户对所有内容的TGI作为一个向量来计算用户之间的相似度,然后找到相邻用户,根据相邻用户的相似权重以及他们对内容的偏好,预测当前用户有没有偏好的未涉及内容,计算得到一个排序的内容列表作为推荐;

对于用户A,根据用户的历史偏好,计算得到一个邻居用户C,然后将用C喜欢的内容D推荐给用户A



基于内容对内容的偏好找到相邻的内容,然后根据用户的历史偏好。推荐相似内容给当前用户。

将所有用户对某个内容的TGI作为一个向量来计算内容之间的相似度,得到内容的相似内容后,根据用户历史的偏好预测当前用户还没有表示偏好的内容,计算得到一个排序的内容列表作为推荐;

对于内容A,根据所有用户的历史偏好,喜欢内容A的用户都喜欢内容C,得出内容A和内容C比较相似,而用户C喜欢内容A,那么可以推断出用户C可能也喜欢内容C



User CF:适合社交产品,加上社会网络信息,可以增加用户对推荐解释的信服程度。

Item CF:适合非社交产品,内容内在的联系尤为重要,能有效的引导用户浏览的重要手段


a 它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。

b 这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好


a 方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。

b 推荐的效果依赖于用户历史偏好数据的多少和准确性。

c 在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

d 对于一些特殊品味的用户不能给予很好的推荐。

e 由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。