浅谈推荐系统之内容推荐

news2024/9/25 13:26:23

推荐系统概念相关

维基百科定义:

推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”。
推荐系统近年来非常流行,应用于各行各业。推荐的对象包括:电影、音乐、新闻、书籍、学术论文、搜索查询、分众分类、以及其他产品。也有一些推荐系统专门为寻找专家、合作者、笑话、餐厅、美食、金融服务、生命保险、网络交友,以及Twitter页面设计。

通俗定义

推荐系统可以把那些最终会在用户(User)和物品(Item)之间产生的连接提前找出来。
常见的有
1,社交产品,从已知的用户好友关系,帮助推荐感兴趣的人,可能认识的人。
2,资讯阅读产品,根据用户过去都点击阅读了哪些内容,以及停留时间等操作,来推荐感兴趣的内容
3,电商平台,用户刚买过什么,常买什么,你正在浏览什么,这些都是用户和物品之间已经存在的连接,用这些连接去预测还会买什么,还会看什么也是推荐系统。

推荐系统分类

根据推荐算法所用数据的不同分为基于内容的推荐、协同过滤的推荐以及混合的推荐

基于内容的推荐

基于内容推荐利用一些列有关物品的离散特征,推荐出具有类似性质的相似物品

通过算法将“标的物”与人关联起来,“标的物”包含很多自己的属性,用户通过与“标的物”的交互会产生行为日志,这些行为日志可以作为衡量用户对“标的物”偏好的标签,通过这些偏好标签为用户做推荐就是基于内容的推荐算法。比如:你在抖音中观看的感兴趣的视频,有各自的标签,通过系统推荐,下次打开时候,会主动给你推送你感兴趣的视频。

协同过滤的推荐

协同过滤方法根据用户历史行为(例如其购买的、选择的、评价过的物品等)结合其他用户的相似决策建立模型。这种模型可用于预测用户对哪些物品可能感兴趣(或用户对物品的感兴趣程度)

用户在产品上的交互行为为用户留下了标记,我们可以利用“物以类聚,人以群分”的朴素思想来为用户提供个性化推荐。一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐,通常需要用到UI矩阵的信息。

基于混合的推荐

对以上算法的融合,既有基于内容的推荐也有协同过滤的推荐。

内容推荐方法

基于内容的推荐向用户根据用户喜爱物品的直接推荐物品。

内容表示物品的描述。一般是自动从文档或无结构的文本描述中获得。因为在实际环境中对物品的专业描述需要专业人员的人工标注,这个费用是高昂的。

内容表示:物品的内容表示一般是维护每个物品特征的详细列表,例如属性集、特征集、物品记录。

基于内容的推荐的工作原理一般是评估用户还没看到的物品与当前用户过去喜欢的物品的相似程度。用到的典型的相似度方法是Dice系数,每物品Bi由一组关键词keyword(Bi)描述,Dice计算物品bi与bj之间的相似度:
在这里插入图片描述
基于内容的推荐一般使用出现在文档中的相关关键词,用不同的方法转换文档内容到关键词列表中。

简单的布尔型方法:

文档所有词语为一个列表,1表示出现,0表示没有出现,这种方法词语在文档中的重要性相等。

TF-IDF转换形式

TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)

TF

就是词频,在要提取关键词的文本中出现的次数
计算公式

       TF = 某个词在文章中出现的次数/文章的总次数 
       TF = 某个词在文章中出现的次数/该文出现的最多的词的次数

IDF

是提前统计好的,在已有的所有文本中,统计每一个词出现在了多少文本中,记为 n,也就是文档频率,一共有多少文本,记为 N。
计算公式

       IDF = log(N/(n+1))

TF-IDF

计算出 TF 和 IDF 后,将两个值相乘,就得到每一个词的权重

      TF-IDF = TF * IDF

筛选方式

根据该权重筛选关键词的方式有
1)TOP N的方式
2)大于平均值
3)对一些关键词过滤,例如只保留名词或者动词等操作
相关开源 sklearn TfidfVectorizer

TextRank

算法的基本思想是将文档看作一个词的网络,该网络中的链接表示词与词之间的语义关系

  1. 文本中,设定一个窗口宽度,比如 K
    个词,统计窗口内的词和词的共现关系,将其看成无向图。图就是网络,由存在连接关系的节点构成,所谓无向图,就是节点之间的连接关系不考虑从谁出发,有关系就对了;
  2. 所有词初始化的重要性都是 1;
  3. 每个节点把自己的权重平均分配给“和自己有连接“的其他节点;
  4. 每个节点将所有其他节点分给自己的权重求和,作为自己的新权重;
  5. 如此反复迭代第 3、4 两步,直到所有的节点权重收敛为止。

通过 TextRank 计算后的词语权重,呈现出这样的特点:
那些有共现关系的会互相支持对方成为关键词。

相关开源 https://gitee.com/mirrors_summanlp/textrank

中文分词组件jieba

jieba,做最好的Python中文分词组件

支持三种分词模式:

  1. 精确模式,试图将句子最精确地切开,适合文本分析;
  2. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  3. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率
  4. 适合用于搜索引擎分词。
  5. 支持繁体分词
  6. 支持自定义词典

相关开源 jieba
TextRank4ZH

To Be Continue

内容分类
聚类
词嵌入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vmware: 磁盘加载问题导致,emergency mode: login incorrect 滚动打印

文章目录问题调试&解释异常日志为什么进入Emergency shell 呢为什么local-fs.target 失败为什么storage.mount 超时服务单元的依赖关系那最后进入emergency mode 为什么会滚Login Incorrect 日志呢plymouthsystemd-sulogin-shellsulogin解决问题 VM虚拟机启动不正常。正常…

[附源码]计算机毕业设计作业查重系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]计算机毕业设计疫情管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

JS高级:Git

目录 集中式版本控制 ​编辑 分布式版本控制 Git 安装 bash-cmd-gui 基本使用 文件状态 git忽略文件 版本回退 远程仓库 gitee 凭证 SSH秘钥 管理远程仓库 开源协议 github git标签 git 分支 master 分支 分支操作 集中式版本控制 分布式版本控制 Git 安装 G…

景联文科技:一文读懂火爆全网的AIGC和背后的数据标注技术!

“在过去的几个月中,AIGC发展速度惊人,DALL-E、Midjourney和Stable Diffusion等技术的快速发展,创作出了许多由AI生成的艺术品。本文中,我们将为您阐述AIGC技术和背后所涉及的数据标注技术。" 今年八月,美国的一位…

计算机网络学习笔记(I)——概述

文章目录第一章—概述1.1、什么是Internet?从具体构成角度:什么是协议?从服务角度:1.2、网络边缘网络结构:网络边缘:网络边缘:采用网络设施的面向连接服务网络边缘:采用基础设施的无…

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示 1、官网示例 官网示例-地图信息框——https://maptalks.org/examples/cn/ui-control/ui-map-infownd/#ui-control_ui-map-infownd 效果 代码 index.html <!DOCTYPE ht…

Vue 官方文档2.x教程学习笔记 1 基础 1.3 Vue 实例 1.3.1 创建一个Vue 实例 1.3.2 数据与方法

Vue 官方文档2.x教程学习笔记 文章目录Vue 官方文档2.x教程学习笔记1 基础1.3 Vue 实例1.3.1 创建一个Vue 实例1.3.2 数据与方法1 基础 1.3 Vue 实例 1.3.1 创建一个Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的&#xff1a; var vm new Vue({/…

阿里云ACP云计算的实验考的是什么?

目前阿里云ACP云计算实验共计四个 1 使用负载均衡实现https与http的混合访问 本实验使用负载均衡配置监听&#xff0c;利用Nginx实现HTTP请求向HTTPS请求的转化&#xff0c;从而完成HTTP和HTTPS的混合访问。 实验概述 互联网巨头雅虎官方对外发布消息&#xff0c;承认在201…

Yolo算法检测之NMS(非极大值抑制)原理详解

刚开始学习算法的时候&#xff0c;nms非极大值一直学不明白&#xff0c;今天终于搞明白了&#xff0c;大致总结一下。 首先我们简单看一下NMS使用的这个背景 按照yolo目标检测算法的初步思想来说&#xff0c;把图片分成19*19网格之后&#xff0c;理论上这个19*19个网格里面包含…

JavaWeb(二)

下面的知识主要就是Servlet&#xff0c;JSP&#xff0c;EL这个顺序去总结&#xff0c;把基础打扎实 Servlet 首先咱们肯定一直听说Servlet&#xff0c;经常说servlet容器&#xff0c;但是具体Servlet是个啥呢。咱们今天就去深入探讨一下。 咱们看一下菜鸟权威教程的解释 Java…

高通平台稳定性分析-CFI failure

一、查看 dmesg_TZ.txt中的错误: Kernel panic - not syncing: CFI failure (target: 0xffffff804323a848) Call trace: dump_backtrace.cfi_jt+0x0/0x8 dump_stack_lvl+0x94/0xe0 panic+0x1a0/0x468 cfi_module_add+0x0/0x24 find_check_fn+0x0/0x258 cam_subdev_ioct…

Kanzi:项目实例:智能灯光SmartControl界面设计

概述&#xff1a; 智能灯光是指&#xff1a;在满足一定条件下&#xff0c;自动显示一些 智能开关&#xff08;如&#xff1a;自动远光灯开关&#xff0c;延时下电开关&#xff0c;智能熄火开关&#xff0c;智能顶灯开关&#xff09;。 他们点亮的共同点是 1&#xff1a;标定…

[附源码]JAVA毕业设计红河旅游信息服务系统(系统+LW)

[附源码]JAVA毕业设计红河旅游信息服务系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

[附源码]计算机毕业设计springboot项目管理系统的专家评审模块

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【MySQL Router】使用 systemd 管理 MySQL Router

使用 systemd 管理 MySQL Router 文章目录使用 systemd 管理 MySQL Router排错过程升级操作系统内核未修改相关文件的属主&#xff0c;直接用 mysqlrouter 重新引导配置操作系统 limit 相关参数用户及其权限问题结语在之前的文章 【 InnoDB Cluster 】安装部署 MySQL Router 中…

Elasticsearch_第2章_ elasticsearch_进阶

Elasticsearch_第2章_ elasticsearch_进阶 文章目录Elasticsearch_第2章_ elasticsearch_进阶0.学习目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结1.3.RestAPI实现聚合1.3.1.API语法1.…

Conv2Former

又发现了一个说比Transformer好的,通过充分利用卷积探索一种更高效的编码空域特征的方式&#xff1a;通过组合ConvNet与ViT的设计理念&#xff0c;本文利用卷积调制操作对自注意力进行了简化&#xff0c;进而构建了一种新的ConvNet架构Conv2Former超简Transformer风格ConvNet&a…

Python基础之MySql数据库交互

Python基础之MySql数据库交互一、使用MySql进行持久化存储二、安装MySql数据库和Python库PyMySQL三、使用pymysql链接mysql数据库四、创建表五、插入数据六、后记一、使用MySql进行持久化存储 在任何应用中&#xff0c;都需要持久化存储。一般有 3 种基础的存储机制&#xff1…

oepncv c++ 连通组件扫描

1、概念 连通组件指在图像上通过四邻域或八邻域法&#xff0c;连接起来的像素值大于某一阈值的区域&#xff08;这些像素点被称为前景像素&#xff09;&#xff0c;而小于阈值的区域被称为背景。如下图的4个连通组件。 四邻域、八邻域&#xff1a; 2、常用算法 a&#xff09;基…