维基百科推荐算法阅读总结
作者:18届 cyl
日期:2021-08-20
一、推荐算法概述
推荐系统是信息过滤领域的重要课题。我们通常使用的音乐或视频播放软件、新闻浏览软件、网购软件等等软件都有他的身影。这些推荐系统的输入既可以为单一输入(音乐或视频)也可以为多输入(同平台或跨平台的多种数据),最终为用户提供精选内容,提高用户满意度与软件点击率。目前,推荐系统甚至被应用在寻找研究文章与相关专家、金融服务等领域。
二、推荐系统种类
2.1 协同过滤
定义:协同过滤算法假设人们在将来对事物所表现出来的偏好与过去所表现出来的偏好相同。该算法仅使用有关不同用户或项目的评级概况信息生成推荐。它首先寻找与当前用户A(项目)历史偏好相同的用户B(项目),然后将B历史偏好中有但A没有的偏好推荐给A。
重点:寻找相似用户(如使用KNN或Pearson相关性评价用户相似度)
数据:分为显式和隐式两种数据。其中显式是指用户打分、用户对自己的喜好进行排列等;隐式数据则是用户平时的使用习惯、浏览记录、购买记录、购物车记录等等
优点:无需进行复杂的机器分析,因此即使算法本身可能并不理解不同电影的内容之间的区别和偏好但仍然可以为不同用户推荐电影。
缺点:
- 慢启动:当面对一个新的用户或者商品,早期没有足够的数据来提供准确的推荐。(解决方法:多臂老虎机算法)
- 拓展性:系统往往需要大量的算力来处理源源不断的数据并为用户提供个性化推荐。
- 稀疏性:商品总量往往很大,然而用户可能只关注其中一小部分。
2.2 基于内容过滤
定义:基于内容过滤的推荐算法首先分析被推荐物品的特点,然后将这些物品进行分类或建立相关性网络。当用户选择物品A时向用户推荐与A特性相似的B。系统通常会为用户建立一个基于内容的配置文件——加权特征向量,其中权重代表每个特征的重要性。
重点:
物品特性提取及分类(需要专业人士对物品进行大量的分析及分类工作)
用户偏爱项目类型分析(统计并分析用户点击足迹或购买收藏足迹)
数据:
专家对物品的特性分析及分类
用户偏好数据(浏览、点击、收藏、购买等足迹)
用户与推荐系统的交互(对推荐物品的满意度反馈
优点:无需用户登录也可以建立基于用户点击的临时偏好配置文件。(无慢启动问题)
缺点:
- 需要大量专家对相关物品做特征提取与分析分类。
- 系统总是被受限于推荐用户经常浏览的同一类型的物品。而这类推荐系统的价值会低于可以提供不同类型物品推荐服务的系统。比如:根据用户的新闻浏览数据向用户推荐新的新闻是有效的,但是如果也可以推荐音乐、视频等各类文章将会更好。为了克服这个缺点,大多数基于内容过滤的推荐系统通常也使用一些其他形式的混合系统。
2.3 基于对话的推荐系统
这些推荐系统使用用户对话的数据来生成推荐。亚马逊与油管则使用这类推荐系统。这类系统通常基于生成序列模型(RNN、Transformer等)来根据用户对话提取偏好。
2.4强化学习
推荐问题可以看作是强化学习问题的一个特殊实例,其中用户是代理的环境,推荐系统在其上采取行动而用户的电机与参与视为奖励。这与依赖于不太灵活的监督学习方法的传统学习技术形成对比,强化学习推荐技术允许潜在地训练可以直接根据参与度和用户兴趣指标进行优化的模型。
2.5多标准推荐系统MCRS
正如名字所说,MCRS融合多种标准进行推荐。用户 u 对项目 i 的整体偏好,这些系统尝试通过利用影响该整体偏好值的多个标准的偏好信息来预测对 u 未探索项目的评级。通常MCRS问题也被当做多标准决策问题MCDM,使用MCDM来解决推荐领域的多标准问题。
2.6风险感知推荐系统
在某些特定情况下为用户推送可能会惹恼用户(深夜、会议期间等)。因此,推荐系统的性能也依赖与避免风险能力。管理此问题的一种选择是 DRARS,这是一种将上下文感知推荐建模为强盗问题的系统。该系统结合了基于内容的技术和上下文老虎机算法。
2.7移动推荐系统
在智能手机上获取位置信息已经相当容易,因此将位置信息纳入推荐系统是十分明智的。如美团的外卖餐馆推荐、滴滴的上车地点推荐等等。
2.8 混合推荐系统
大多数推荐系统现在使用混合方法,结合协作过滤、基于内容的过滤和其他方法。毕竟,在百花齐放的现在没有理由只使用一种策略。Netflix 是使用混合推荐系统的一个很好的例子。 该网站通过比较相似用户的观看和搜索习惯(即协同过滤)以及提供与用户评价很高的电影具有共同特征的电影(基于内容的过滤)来提出建议。
混合方法:
- 加权:为不同推荐方法所得出的评分加权求和来得到综合预测分数
- 选择:在不同推荐方法中选择最好的一种
- 混合:将不同推荐方法所得出的推荐同时交给用户
- 特征组合:来自不同知识源的特征组合在一起并提供给单个推荐算法
- 特征增强:计算一个特征或一组特征,然后将其作为下一项技术输入的一部分。
- 级联:推荐者被给予严格的优先级,较低优先级的推荐者在较高的评分中打破平局
三、算法评估
3.1评估方法
离线评估:通过训练集、测试集、验证集的形式在已有数据集上进行精确率或召回率测试。
用户测试:通过用户问卷调查的方式进行测试
在线测试:(内测)小范围用户测试,大多使用A/B测试,即双盲对照实验。
3.2评估标准
多样性:要求推荐系统可以为用户提供多种不同类型的物品
推荐持久化:要求推荐系统能够重复推荐同一种商品。(这次没点击,下次会点击)
隐私:保护用户隐私。尤其可能因为用户隐私问题爆发大规模抵制。
用户人口统计:推荐系统通常会对不同用户进行统计。例如老年人口更喜欢推荐系统。
安全稳健性:避免欺诈问题
巧合惊喜性:要为用户推荐能使其眼前一亮的物品
信任性:推荐系统可以向用户解释为什么向其推荐该物品
标签:用户对推荐满意度会受到标签影响。(标记为“赞助商”的推荐点击率低于“有机”的点击率低于无标签商品)
3.3算法可再现性
大概在顶会顶刊上只有约40%的论文可再现。
四、思考
- 为不同领域推荐不同的推荐标准
- 为不同用户使用不同的推荐方法
- 考虑时效性 对热点信息的推荐问题
维基百科推荐算法阅读总结相关推荐
- slope one matlab代码,经典推荐算法之 Slope one
title: 经典推荐算法之 Slope one date: 2017/5/16 15:29:24 tags: 推荐系统 Machine Learning categories: 推荐系统 Slope ...
- 维基百科上的算法和数据结构链接很强大
突然发现维基百科上的算法和数据结构比百度百科强多啦,图文并茂. 其实这个网站不错:http://www.sorting-algorithms.com 冒泡排序: bubble冒泡的意思 http:// ...
- 【推荐算法论文阅读】LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
这篇文章是基于NGCF提出的改进,NGCF相关的工作参考[推荐算法论文阅读]Neural Graph Collaborative Filtering 一.背景 通过严格的对照实验(在相同的数据集和评估 ...
- ML之prophet:利用prophet算法对维基百科页面的日志每日页面浏览量实现回归预测(时间序列的趋势/周季节性趋势/年季节性趋势)案例
ML之prophet:利用prophet算法对维基百科页面的日志每日页面浏览量实现回归预测(时间序列的趋势/周季节性趋势/年季节性趋势)案例 目录 利用prophet算法对维基百科页面的日志每日页面浏 ...
- java爬虫实时采集小说+springboot推荐算法+实现在线小说免费阅读推荐系统
总结,本文从系统建设涉及到的技术介绍到框架搭建,对系统涉及到的商品推荐算法给出了详细的设计流程及核心代码块,从整体上完成了本应用商品推荐系统的开发过程. 如何针对互联网各大小说阅读网站的小说数据进行实 ...
- 一些算法学习的推荐博文阅读(数论居多,图论没有)
上面是自己的学习笔记,下面是推荐博文阅读 关于每个知识点的阅读顺序若不加序号一般是并列的,有序号的话一般是推荐看(当然一知半解的话可以从头看起也可以从中间开始) 另外,有的链接放在推荐的下面了 另另外 ...
- 长尾推荐算法论文阅读笔记合集(papers / literatures for long tail recommendation)
写在前面: (1)我将长尾推荐系统相关论文做了一个整理,主要包括:论文题目.发表的会议/期刊(出处).发表时间.被引量(主要是google scholar),有的论文将对其内容进行简单介绍.最后提供这 ...
- 维基百科联手谷歌翻译,结果“惨不忍睹”!
作者 | 琥珀 出品 | AI科技大本营 作为前沿科技新闻报道的一线工作者,我们经常会碰到各种陌生难懂.语言不通的词句. 这直接导致我们在引用和查找信息时,往往辅助以维基百科和谷歌翻译为代表的两大信息 ...
- windows下使用word2vec训练维基百科中文语料全攻略!(三
全文共1552个字,7张图,预计阅读时间8分钟. 训练一个聊天机器人的很重要的一步是词向量训练,无论是生成式聊天机器人还是检索式聊天机器人,都需要将文字转化为词向量,时下最火的词向量训练模型是word ...
最新文章
- 【硬件基础】个人感悟+C语言 引入头文件时引号括号的区别
- 读书笔记:怪侠一枝梅 看后感
- jmeter 线程组与参数_jmeter接口测试基础篇之初步认识及参数化请求
- Get 与 Post 【总结】 (实例:从a.html到b.aspx传值)
- C# 中的回车换行符 表示
- Linux中安装nc(netcat)常见问题
- mysql语言和php语言_MySQL如何与PHP编程语言一起使用?
- Opencv2.X以上Mat类型与IplImage*的转换
- php社工源码,社工库源码搜集
- 易如意php,易如意网络验证系统1.1【开源】
- 图书馆借阅系统java参考文献_基于java的图书馆管理系统
- ps如何把自己的图与样机结合_样机在ps里面怎么用|ps怎么把图片放在书本样机图中...
- 网线制作ppt_ppt模板网线
- 虚拟机vmware的完全卸载
- 一个案例入门tableau——NBA球队数据可视化实战解析
- java中wint是什么意思,Java线程的同步演示代码,java线程演示,package Wint
- 倍福--实现和西门子的profinet
- 进阶实验5-3.2 新浪微博热门话题 (字符串操作)
- 基于RT-Thread的光照强度传感器BH1750FVI 软件包
- 老是未能连接一个window服务器,未能连接一个Windows服务 怎么回事
热门文章
- pom.xml中解决Provides transitive vulnerable dependency maven:org.yaml:snakeyaml:1.33警告
- 虚拟机上的Linux系统如何联网?
- Linux虚拟机命令行联网
- React.SetStateAction<never[]>
- TP-LINK 企业路由器 PPTP 配置
- 区块链时代的大数据生态
- JSON.stringify() 详解
- Mac电脑Tomcat下载及安装(详细)
- 二叉树——中序遍历(递归/非递归)
- 列表(ListNode)