推荐系统对受众对象是用户
背景:信息过载
- 以前物质短缺的时候,供不应求,比如去一个百货商店,就几百样商品,简单分分类就可以了。但是因为物资的丰富,供大于求,比如去一个大超市,物品有成千上万种,如果用户不知道自己要买什么,或者她要买的东西藏很难找到角落里,那她要逛比较长的时间(相比于那些超市的熟客)才能买到自己想要物品,久而久之,要想提升超市的盈利就要改善这种不好的用户体验。
但是大家都知道用户的活跃度是符合长尾分布的,"熟客"只占很小一部分,如何把那些"生客"获得他们感兴趣的物品,甚至转化为"熟客",是业界的主要方向之一。
互联网早已进入了信息爆炸的时代,面对着每天铺天盖地新闻、商品、活动。人已经不可能做到面面俱到了。
基于内容的推荐算法
https://blog.youkuaiyun.com/greedystar/article/details/80813057
基于内容推荐的基本思想是为用户推荐与他感兴趣的内容相似的物品,比如用户喜欢励志类电影,那么系统会直接为他推荐《阿甘正传》这部电影,这个过程综合考虑了用户兴趣和电影内容,因此不需要提供用户的历史行为数据,这能够很好地解决新用户的冷启动问题。基于内容推荐的关键问题是对用户兴趣特征和物品特征进行建模,主要方法由向量空间模型、线性分类、线性回归等。
基于内容推荐需要预先提供用户和物品的特征数据,比如电影推荐系统,需要提供用户感兴趣的电影类别、演员、导演等数据作为用户特征,还需要提供电影的内容属性、演员、导演、时长等数据作为电影的特征,这些需要进行预处理的数据在实际应用中往往有很大的困难,尤其是多媒体数据(视频、音频、图像等),在预处理过程中很难对物品的内容进行准确的分类和描述,且在数据量很大的情况下,预处理效率会很低下。针对以上不足,[25]提出了基于标签的推荐方法,可以由专家或用户为物品打标签,实现对物品的分类。
基于内容产生的推荐往往和用户已经处理的物品具有很大的相似度,不利于用户在推荐系统中获得惊喜,这也是推荐系统的一个重要研究方向。
基于用户行为特征的推荐算法
最简单的就是各种排行榜(如百度搜索热点排行榜),基于简单的用户行为统计:
仅仅基于用户行为特征设计的推荐算法一般称为协同过滤算法
协同过滤算法包括:
- 基于邻域的方法
-
UserCF(给用户推荐和她兴趣相似的用户喜欢的物品)
-
ItemCF(给用户推荐和她之前喜欢的物品相似的物品)
- 基于隐语义的方法:
- LFM
- 基于图随机游走的方法:
基于标签的推荐算法
标签的生成(标注、关键词抽取)
关键词抽取:
jieba(杰巴)分词的三种模式
jieba(结巴)是一个强大的分词库,完美支持中文分词,做为最好的Python中文分词组件。
安装:pip install jieba
特点
支持三种分词模式:
1.精确模式,试图将句子最精确地切开,适合文本分析;
import jieba strings = '今天天气真好' seg = jieba.cut(strings,cut_all=False) print(','.join(seg))
output : 今天天气,真,好
cut_all参数默认为False,所有使用cut方法时默认为精确模式
2.全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
import jieba strings = '今天天气真好' seg = jieba.cut(strings,cut_all=True) print(','.join(seg))
output : 今天,今天天气,天天,天气,真好
3.搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
import jieba strings = '今天天气真好' seg = jieba.cut_for_search(strings) print(','.join(seg))
output : 今天,天天,天气,今天天气,真,好
基于标签的推荐系统
第三种重 要的方式是通过一些特征(feature)联系用户和物品,给用户推荐那些具有用户喜欢的特征的物 品。这里的特征有不同的表现方式,比如可以表现为物品的属性集合(比如对于图书,属性集合 包括作者、出版社、主题和关键词等),也可以表现为隐语义向量(latent factor vector),这可以 通过前面提出的隐语义模型习得到。本章将讨论一种重要的特征表现方式——标签。
基于上下文的推荐算法
时间效应
偏好迁移(小时候,长大了,短期,长期)
生命周期(热门新闻)
季节效应()
节日选择(粽子、月饼)
地域和热度
兴趣本地化
活动本地化
基于点击率预估的推荐算法
算法分类:(选择什么样的算法要由具体的业务场景和需求决定)
传统:热度推荐、CF、CB、基于标签、关联挖掘等
主流:点击率预估算法:GBDT、LR、FM、FFM、XGBoost、深度学习
?艺术家与标签的相关度 怎么来的?
UGC:用户打标签
两个问题:
1、如何利用用户打标签的行为为其推荐物品
2、如何在用户打标签时为其推荐适合该物品的标签
标签的流行度分布也符合经典的长尾分布
用户打的标签时形形色色的
推荐系统的多样性为所有用户推荐列表多样性的平均值。
至于推荐结果的新颖性,我们简单地用推荐结果的平均热门程度(AveragePopularity)度量。
目的是得到user_item,像链式法则
user_tag * tag_item
这一结果表明,适当惩罚热门标签和热门物品,在增进推 荐结果个性化的同时并不会降低推荐结果的离线精度