内容推荐系统

简介: 何为内容推荐系统

我曾在不同公司⾥都听到过,他们的产品经理或者⼤佬问过这样的问题:我们的推荐系统标签够不够?


相信你也遇到过类似的问题。这其实是⼀个很⼤的误区:基于内容的推荐系统,标签只是很⼩⼀部分。


⽽且就算是标签,衡量质量的⽅式也不是数⽬够不够;所以,今天我要讲的内容,就是说⼀说脱离标签定式思维的内容推荐。


为什么要做好内容推荐

所谓的基于内容推荐,通俗⼀点来讲,就是⼀个包装成推荐系统的信息检索系统。这听上去有点残酷,但通常⼀个复杂的推荐系统很可能是从基于内容推荐成⻓起来的。


可以说,基于内容的推荐系统是⼀个推荐系统的孩童时代,所以,我们不能让⾃⼰的推荐系统输在起跑线上,得富养才⾏。那么,⾸先我就来讲⼀讲如何养成⼀个基于内容的推荐系统。


为什么基于内容的推荐系统这么重要呢?因为内容数据⾮常易得,哪怕是在⼀个产品刚刚上线,⽤⼼找的话总能找到⼀些可以使⽤的内容,不需要有⽤户⾏为数据就能够做出推荐系统的第⼀版。


内容数据尤其是⽂本,只要深⼊挖掘,就可以挖掘出⼀些很有⽤的信息供推荐系统使⽤。


另外,著名的流媒体⾳乐⽹站Pandora,其⾳乐推荐系统背后的“⾳乐基因⼯程”,实质上就是⼈⼯为⾳乐标注了各种维度的属性,这样,即便使⽤基于内容推荐的⽅式,也做出了很好的推荐效果。


听上去,上⾯这段话特别像是在安慰还处在冷启动阶段的你,事实上呢,其实并不全是,内容推荐的⽅式还有它的必要性。推荐系统总是需要接⼊新的物品,这些新的物品在⼀开始没有任何展示机会,显然就没有⽤户反馈,这时候只有内容能帮它。


基于内容的推荐能把这些新物品找机会推荐出去,从⽽获得⼀些展示机会,积累⽤户反馈、⾛上巅峰、占据热⻔排⾏榜。要把基于内容的推荐做好,需要做好“抓、洗、挖、算”四⻔功课。它们分别是对应了下⾯的内容。

1.抓:⼤⼚们从来不公开说的⼀件事是,他们⼀直在持续抓数据丰富⾃⼰的内容,所以做好⼀个基于内容的推荐,抓取数据补充内容源,增加分析的维度,两者必不可少。


2.洗:抓来的数据,相当于捡别⼈掉地上的东⻄吃,我们也得注意卫⽣,洗洗更健康,数据也⼀样,冗余的内容、垃圾内容、政治⾊情等敏感内容等等都需要被洗出去。


3.挖:不管是抓来的数据,还是⾃家的数据,如果不深⼊挖掘,那就和捧着⾦饭碗去要饭⼀样,浪费了⼤好资源。可以说,很多推荐系统提升效果并不是⽤了更复杂的推荐算法,⽽是对内容的挖掘做得更加深⼊。


4.算:匹配⽤户的兴趣和物品的属性,计算出更合理的相关性,这是推荐系统本身的使命,不仅仅是基于内容的推荐才要做的。


内容推荐系统框架


image.png

内容这⼀端:内容源经过内容分析,得到结构化的内容库和内容模型,也就是物品画像。⽤户这⼀端:⽤户看过推荐列表后,会产⽣⽤户⾏为数据,结合物品画像,经过⽤户分析得到⽤户画像。


以后对于那些没有给⽤户推荐过的新内容,经过相同的内容分析过程后就可以经过推荐算法匹配,计算得到新的推荐列表给⽤户。如此周⽽复始,永不停息。


内容源

在互联⽹中,抓数据是⼀件可做不可说的事情,哪怕是市值⼏千亿的⼤⼚,也有专⻔的⼩分队抓数据,补充推荐系统每天的内容消耗。因为,只有当内容有多样性了,⼀个推荐系统才有存在的合法性,所以⼤⼚职⼯们抓数据也是为了保住⾃⼰的饭碗。


爬⾍技术本身⾮常复杂、⾮常有学问,⽐推荐算法难多了,这⾥就不展开讲了。


不论是抓来的数据还是⾃家⽤户产⽣的数据,都离不开清洗数据。由于各家都在相互借鉴来借鉴去,所以抓到重复的内容也是很有可能的,去重与识别垃圾内容、⾊情内容、政治敏感内容等都是必修课。


关于这个环节的边⻆算法,我们在后⾯的⽂章中会专⻔花⼀些篇幅来讲。


内容分析和⽤户分析

基于内容的推荐,最重要的不是推荐算法,⽽是内容挖掘和分析。内容挖掘越深⼊,哪怕早期推荐算法仅仅是⾮常硬的规则,也能取得不俗的效果。举个例⼦,如果推荐物品是短视频,我们分⼏种情况看:

1.如果短视频本身没有任何结构化信息,如果不挖掘内容,那么除了强推或者随机⼩流量,没有别的合理曝光逻辑了;


2.如果对视频的⽂本描述,⽐如标题等能够有内容分类,⽐如是娱乐类,那么对于喜欢娱乐的⽤户来说就很合理;


3.如果能够进⼀步分析⽂本的主题,那么对于类似主题感兴趣的⽤户就可能得到展示;


4.如果还能识别出内容中主⻆是吴亦凡,那就更精准锁定⼀部分⽤户了;


5.如果再对内容本身做到嵌⼊分析,那么潜藏的语义信息也全部抓住,更能表达内容了。举这个例⼦是为了说明:随着内容分析的深⼊,能抓住的⽤户群体就越细致,推荐的转化率就越⾼,⽤户对产品的好感度也就增加了。上⼀篇中我列举了⽂本数据——这也是内容数据最常⻅形式的分析⽅法。内容分析的产出有两个:

1.结构化内容库;

2.内容分析模型。


结构化的内容库,最重要的⽤途是结合⽤户反馈⾏为去学习⽤户画像,具体的⽅法在上⼀篇中已经介绍了。容易被忽略的是第⼆个⽤途,在内容分析过程中得到的模型,⽐如说:

1.分类器模型;

2.主题模型;

3.实体识别模型;

4.嵌⼊模型。


这些模型主要⽤在:当新的物品刚刚进⼊时,需要实时地被推荐出去,这时候对内容的实时分析,提取结构化内容,再于⽤户画像匹配。


内容推荐算法

对于基于内容的推荐系统,最简单的推荐算法当然是计算相似性即可,⽤户的画像内容就表示为稀疏的向量,同时内容端也有对应的稀疏向量,两者之间计算余弦相似度,根据相似度对推荐物品排序。


你别嫌糙,如果你内容分析做得深⼊的话,通常效果还不错,⽽且基于内容的推荐天然有⼀个优点:可解释性⾮常强。


如果再进⼀步,要更好地利⽤内容中的结构化信息,因为⼀个直观的认识是:不同字段的重要性不同。


⽐如说,⼀篇新闻,正⽂和标题中分析出⼀个⼈物名,评论中也分析出其他⽤户讨论提及的⼀些⼈物名,都可以⽤于推荐。直观上新闻的正⽂和标题中更重要。


那么,我们可以借鉴信息检索中的相关性计算⽅法来做推荐匹配计算:BM25F算法。常⽤的开源搜索引擎如Lucene中已经实现了经典的BM25F算法,直接拿来使⽤即可。


前⾯提到的两种办法虽然可以做到快速实现、快速上线,但实际上都不属于机器学习⽅法,因为没有考虑推荐的⽬标,⽽我们在之前的专栏中就专⻔强调了⽬标思维,那么,按照机器学习思路该怎么做呢?


⼀种最典型的场景:提⾼某种⾏为的转化率,如点击、收藏、转发等。那么标准的做法是:收集这类⾏为的⽇志数据,转换成训练样本,训练预估模型。


每⼀条样本由两部分构成:⼀部分是特征,包含⽤户端的画像内容,物品端的结构化内容,可选的还有⽇志记录时⼀些上下⽂场景信息,如时间、地理位置、


目录
相关文章
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
用python实现基于用户行为的内容推荐系统
用python实现基于用户行为的内容推荐系统
65 8
|
3月前
|
数据采集 存储 自然语言处理
基于网络爬虫的微博热点分析,包括文本分析和主题分析
本文介绍了一个基于Python网络爬虫的微博热点分析系统,使用requests和pandas等库收集和处理数据,结合jieba分词、LDA主题分析和snownlp情感分析技术,对微博文本进行深入分析,并利用matplotlib进行数据可视化,以洞察微博用户的关注点和情感倾向。
172 0
基于网络爬虫的微博热点分析,包括文本分析和主题分析
|
4月前
|
搜索推荐 算法 大数据
基于内容的推荐系统算法详解
【7月更文挑战第14天】基于内容的推荐系统算法作为推荐系统发展的初期阶段的重要技术之一,具有其独特的优势和广泛的应用场景。然而,随着大数据和人工智能技术的发展,传统的基于内容的推荐系统已经难以满足日益复杂和多样化的推荐需求。因此,未来的推荐系统研究将更加注重多种推荐算法的融合与创新,以提供更加精准、个性化的推荐服务。
|
6月前
|
人工智能 自然语言处理 机器人
NLP自学习平台中的文本摘要功能并不仅限于电商版
【1月更文挑战第20天】【1月更文挑战第100篇】NLP自学习平台中的文本摘要功能并不仅限于电商版
140 2
|
6月前
|
搜索推荐 算法
音乐推荐系统协同过滤算法解释
音乐推荐系统协同过滤算法解释
100 1
|
自然语言处理 算法 API
NLP自学习平台提供了一种称为“关键词提取”的功能
NLP自学习平台提供了一种称为“关键词提取”的功能
129 1
|
机器学习/深度学习 自然语言处理 算法
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
|
机器学习/深度学习 存储 自然语言处理
# 【推荐系统】:协同过滤和基于内容过滤概述
# 【推荐系统】:协同过滤和基于内容过滤概述
# 【推荐系统】:协同过滤和基于内容过滤概述
|
搜索推荐 安全 关系型数据库
基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic
最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的需求情况,以至于推荐效果差强人意。与此同时,这种信息数字化的新学习方法在给学生群体带来方便的同时,也带来了很多其他的问题,例如信息冗杂、形式让人眼花缭乱的问题,导致系统检索变得难以运行。 解决问题的关键是个性化学习推荐系统,它适合于各式各样的用户产生的各式各样的需求。
|
自然语言处理 搜索推荐 算法
推荐系统:基于内容的过滤
此图像包含用户喜欢的电影的描述。根据用户喜欢的电影向用户推荐电影,需要使用这些描述得到一个数学形式,即文本应该是可测量的,然后通过与其他电影进行比较来找到相似的描述。 我们有各种电影和关于这些电影的数据。为了能够比较这些电影数据,需要对数据进行矢量化。在向量化这些描述时,必须创建所有电影描述(假设 n)和所有电影(假设 m)中的唯一词矩阵。列中有所有唯一的单词,行中有所有电影,每个单词在交叉点的电影中使用了多少。这样,文本就可以被矢量化。
290 0