协同过滤扩展性
A. 协同过滤算法有哪些 slope
协同过滤算法是这一领域的主流。作为基于内容的算法执行方式,协同过滤在准确专性上具有相属当的优势,但无法冷启动、同质化和运算效率低使其依然存在很多不足。
协同过滤算法的名称来源于化学上的过滤操作。
原理
利用物质的溶解性差异,将液体和不溶于液体的固体分离开来的一种方法。如用过滤法除去粗食盐中少量的泥沙
过滤实验仪器
漏斗、烧杯、玻璃棒、铁架台(含铁圈)、滤纸。
过滤操作要领
要做到“一贴、二低、三靠”。
一贴
即使滤纸润湿,紧贴漏斗内壁,中间不要留下气泡。(防止气泡减慢过滤速度。)
二低
1.滤纸边缘略低于漏斗边缘。
2.液面低于滤纸边缘。(防止液体过滤不净。)
三靠
1.倾倒时烧杯杯口要紧靠玻璃棒上。
2.玻璃棒下端抵靠在三层滤纸处。
3.漏斗下端长的那侧管口紧靠烧杯内壁。
过滤注意事项
1.烧杯中的混合物在过滤前应用玻璃棒搅拌,然后进行过滤。
2.过滤后若溶液还显浑浊,应再过滤一次,直到溶液变得透明为止。
3.过滤器中的沉淀的洗涤方法:用烧瓶或滴管向过滤器中加蒸馏水,使水面盖没沉淀物,待溶液全部滤出后,重复2~3次。
希望我能帮助你解疑释惑。
B. 个性化推荐系统的基本框架
个性化推荐系统的基本框架如下:
参考国内最具代表性的百分点推荐系统框架来讲,个性化推荐系统的推荐引擎在个性化算法的框架基础之上,还引入场景引擎、规则引擎和展示引擎,形成全新的百分点推荐引擎的技术框架,系统通过综合并利用用户的兴趣偏好、属性,商品的属性、内容、分类,以及用户之间的社交关系等等,挖掘用户的喜好和需求,主动向用户推荐其感兴趣或者需要的商品。
基于云计算的个性化推荐平台。消除数据孤岛,建立基于用户全网兴趣偏好轨迹的精准云计算分析模型,打通用户在多个网站的兴趣偏好,形成成用户行为偏好大数据中心。
多种智能算法库。基于多维度的数据挖掘、统计分析,进行算法模型的建立和调优。综合利用基于内容、基于用户行为和基于社交关系网络的多种算法,为用户推荐其喜欢的商品、服务或内容。
电子商务推荐系统的主要算法有:
(1) 基于关联规则的推荐算法(Association Rule-based Recommendation)
(2) 基于内容的推荐算法 (Content-based Recommendation)
内容过滤主要采用自然语言处理、人工智能、概率统计和机器学习等技术进行过滤。
通过相关特征的属性来定义项目或对象,系统基于用户评价对象的特征学习用户的兴趣,依据用户资料与待预测项目的匹配程度进行推荐,努力向客户推荐与其以前喜欢的产品相似的产品。如新闻组过滤系统News Weeder。
基于内容过滤的系统其优点是简单、有效。尤其对于推荐系统常见的冷启动(Cold Start)问题,Content-based方法能够比较好的进行解决。因为该算法不依赖于大量用户的点击日志,只需要使用待推荐对象(item)本身的属性、类目、关键词等特征,因此该方法在待推荐对象数量庞大、变化迅速、积累点击数稀少等应用场景下有较好的效果。但该方法的缺点是对推荐物的描述能力有限,过分细化,推荐结果往往局限与原对象相似的类别中,无法为客户发现新的感兴趣的资源,只能发现和客户已有兴趣相似的资源。这种方法通常被限制在容易分析内容的商品的推荐,而对于一些较难提取出内容的商品,如音乐CD、电影等就不能产生满意的推荐效果。
(3) 协同过滤推荐算法 (Collaborative Filtering Recommendation)
协同过滤是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
与传统文本过滤相比,协同过滤有下列优点:
1)能够过滤难以进行机器自动基于内容分析的信息。如艺术品、音乐;
2)能够基于一些复杂的,难以表达的概念(信息质量、品位)进行过滤;
3)推荐的新颖性。 正因为如此,协同过滤在商业应用上也取得了不错的成绩。Amazon,CDNow,MovieFinder,都采用了协同过滤的技术来提高服务质量。
协同过滤推荐算法,可进一步细分为基于用户的协同过滤(user-based collaborative filtering)和基于物品的协同过滤(item-based collaborative filtering)。
基于用户的协同过滤的基本思想是:根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K- 邻居”的算法;然后,基于这 K 个邻居的历史偏好信息,为当前用户进行物品的推荐。
基于物品的协同过滤的基本原理也类似,该方法根据用户和物品直接历史点击或购买记录,来计算物品和物品之间的相似度,然后根据用户的历史偏好的物品信息,将挖掘到的类似的物品推荐给用户
基于用户的协同过滤和基于物品的协同过滤各自有其适用场景。总的来看,协同过滤方法的缺点是:
1)稀疏性问题:如果用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确;
2)可扩展性问题:随着用户和商品的增多,系统的性能会越来越低;
3)冷启动问题:如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐。
4)长尾问题:对微小市场的推荐。
因此,现在的电子商务推荐系统都采用了几种技术相结合的推荐技术。
C. 协同过滤的算法简介
电子商务推荐系统的一种主要算法。
协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
与传统文本过滤相比,协同过滤有下列优点:
(1)能够过滤难以进行机器自动基于内容分析的信息。如艺术品、音乐;
(2)能够基于一些复杂的,难以表达的概念(信息质量、品位)进行过滤;
(3)推荐的新颖性。
正因为如此,协同过滤在商业应用上也取得了不错的成绩。Amazon,CDNow,MovieFinder,都采用了协同过滤的技术来提高服务质量。
缺点是:
(1)用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(即稀疏性问题);
(2)随着用户和商品的增多,系统的性能会越来越低;
(3)如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐(即最初评价问题)。
因此,现在的电子商务推荐系统都采用了几种技术相结合的推荐技术。
案例: AMAZON个性化推荐系统先驱 (基于协同过滤)
AMAZON是一个虚拟的网上书店,它没有自己的店面,而是在网上进行在线销售。它提供了高质量的综合节目数据库和检索系统,用户可以在网上查询有关图书的信息。如果用户需要购买的话,可以把选择的书放在虚拟购书篮中,最后查看购书篮中的商品,选择合适的服务方式并且提交订单,这样读者所选购的书在几天后就可以送到家。
AMAZON书店还提供先进的个性化推荐功能,能为不同兴趣偏好的用户自动推荐尽量符合其兴趣需要的书籍。 AMAZON使用推荐软件对读者曾经购买过的书以及该读者对其他书的评价进行分析后,将向读者推荐他可能喜欢的新书,只要鼠标点一下,就可以买到该书;AMAZON能对顾客购买过的东西进行自动分析,然后因人而异的提出合适的建议。读者的信息将被再次保存,这样顾客下次来时就能更容易的买到想要的书。此外,完善的售后服务也是AMAZON的优势,读者可以在拿到书籍的30天内,将完好无损的书和音乐光盘退回AMAZON,AMAZON将原价退款。当然AMAZON的成功还不止于此,如果一位顾客在AMAZON购买一本书,下次他再次访问时,映入眼帘的首先是这位顾客的名字和欢迎的字样。
D. 协同过滤算法属于自然语言处理方向吗
协同来过滤算法是这一领源域的主流。作为基于内容的算法执行方式,协同过滤在准确性上具有相当的优势,但无法冷启动、推荐同质化和运算效率低使其依然存在很多不足。
协同过滤算法的名称来源于化学上的过滤操作。
原理
利用物质的溶解性差异,将液体和不溶于液体的固体分离开来的一种方法。如用过滤法除去粗食盐中少量的泥沙
过滤实验仪器
漏斗、烧杯、玻璃棒、铁架台(含铁圈)、滤纸。
过滤操作要领
要做到“一贴、二低、三靠”。
一贴
即使滤纸润湿,紧贴漏斗内壁,中间不要留下气泡。(防止气泡减慢过滤速度。)
二低
1.滤纸边缘略低于漏斗边缘。
2.液面低于滤纸边缘。(防止液体过滤不净。)
三靠
1.倾倒时烧杯杯口要紧靠玻璃棒上。
2.玻璃棒下端抵靠在三层滤纸处。
3.漏斗下端长的那侧管口紧靠烧杯内壁。
过滤注意事项
1.烧杯中的混合物在过滤前应用玻璃棒搅拌,然后进行过滤。
2.过滤后若溶液还显浑浊,应再过滤一次,直到溶液变得透明为止。
3.过滤器中的沉淀的洗涤方法:用烧瓶或滴管向过滤器中加蒸馏水,使水面盖没沉淀物,待溶液全部滤出后,重复2~3次。
希望我能帮助你解疑释惑。
E. 协同过滤中的可扩展性问题是什么
协同过滤算法能够容易地为几千名用户提供较好的推荐,但是对于电子商务网站,往往需要给成百上千万的用户提供推荐,这就一方面需要提高响应时间的要求,能够为用户实时地进行推荐;另一方面还应考虑到存储空间的要求,尽量减少推荐系统运行的负担。
1.3 可扩展性问题
在协同过滤推荐算法中,全局数值算法能及时利用最新的信息为用户产生相对准确的用户兴趣度预测或进行推荐,但是面对日益增多的用户,数据量的急剧增加,算法的扩展性问题(即适应系统规模不断扩大的问题)成为制约推荐系统实施的重要因素。虽然与基于模型的算法相比,全局数值算法节约了为建立模型而花费的训练时间,但是用于识别“最近邻居”算法的计算量随着用户和项的增加而大大增加,对于上百万的数目,通常的算法会遇到严重的扩展性瓶颈问题。该问题解决不好,直接影响着基于协同过滤技术的推荐系统实时向用户提供推荐问题的解决,而推荐系统的实时性越好,精确度越高,该系统才会被用户所接受。
基于模型的算法虽然可以在一定程度上解决算法的可扩展性问题,但是该类算法往往比较适于用户的兴趣爱好比较稳定的情况,因为它要考虑用户模型的学习过程以及模型的更新过程,对于最新信息的利用比全局数值算法要差些。
分析以上协同过滤在推荐系统实现中面临的两个问题,它们的共同点是均考虑到了最近邻居的形成问题(包括用户信息获得的充分性、计算耗费等)。但是应该看到协同过滤在推荐系统的实现中,要获得最近邻居用户,必须通过一定的计算获得用户之间的相似度,然后确定最佳的邻居个数,形成邻居用户集。而在这一过程中,如果对全部数据集进行相似性计算,虽然直接,但是运算量和时间花费都极大,无法适应真实的商务系统。如果通过对训练集数据(整个数据集的某一子集)进行实验获得,虽然不必对整个数据集进行计算,但是必须通过将多次实验结果统计出来才可能得到,这无疑也增加了推荐结果获得的代价和误差。并且如果考虑到数据集的动态变化,这一形成最近邻居用户集技术的实际应用价值越来越小。因此,考虑使用更为有效的最近邻居用户形成办法,对于协同过滤的应用非常必要。
F. 协同过滤中的实时性定义及解决思路
自从第一台IoT设备于1990年问世以来,物联网已经有了长足的发展,这是一种可以在互联网上开启和关闭的烤面包机。27年之后,联网设备已经从新奇产品变成了日常生活中必不可少的一部分。
最近的预估显示,成年人平均每天花在智能手机上的时间超过4个小时,只能手机也是一种装有物联网传感器数据的设备。目前,81%的成年人拥有智能手机。想象一下,当81%的成年人拥有智能汽车和智能家居时,我们将会收到多少数据。
今天,IoT设备的大部分数据都在云中处理,这意味着全球所有角落产生的数据都被集中发送到数据中心的少数计算机上。然而,随着IoT设备的数量预计将在2020年猛增至200亿,通过互联网发送数据的体积和速度对云计算方法提出了严峻的挑战。
越来越多的设备连接将迫使IoT制造商在2018年将云计算模式从云计算模式转移到一种称为“雾计算”的新模式。
越来越多的数据访问,云计算问题明显
物联网和人工智能的发展将带来价值数以亿计的数据。分布广泛的传感器、智能终端等每时每刻都在产生大量的数据。尽管云计算拥有“无限”的计算和存储资源池,但云数据中心往往是集中化的且距离终端设备较远,当面对大量的分布广泛的终端设备及所采集的海量数据时,云不可避免地遇到了三大难题:
网络拥塞,如果大量的物联网和人工智能应用部署在云中,将会有海量的原始数据不间断地涌入核心网络,造成核心网络拥塞;
高延迟,终端设备与云数据中心的较远距离将导致较高的网络延迟,而对实时性要求高的应用则难以满足需求;
可靠性无法保证,对可靠性和安全性要求较高的应用,由于从终端到云平台的距离远,通信通路长,因而风险大,云中备份的成本也高。
因此,为满足物联网和人工智能等应用的需求,作为云计算的延伸扩展,雾计算(Fog Computing)的概念应运而生。雾计算最早由思科提出,它是一种分布式的计算模型,作为云数据中心和物联网设备 / 传感器之间的中间层,它提供计算、网络和存储设备,让基于云的服务可以离物联网设备和传感器更近。
雾计算主要使用边缘网络中的设备,可以是传统网络设备,如网络中的路由器、交换机、网关等,也可以是专门部署的本地服务器。这些设备的资源能力都远小于一个数据中心,但是它们庞大的数量可以弥补单一设备资源的不足。
在物联网中,雾可以过滤、聚合用户消息,匿名处理用户数据以保证隐秘性,初步处理数据以便实时决策,提供临时存储以提升用户体验,而云则可以负责大运算量或长期存储任务,与雾计算优势互补。通过雾计算,可以将一些并不需要放到云上的数据在网络边缘层直接进行处理和存储,提高数据分析处理的效率,降低时延,减少网络传输压力,提升安全性。雾计算以其广泛的地理分布、带有大量网络节点的大规模传感器网络、支持高移动性和实时互动以及多样化的软硬件设备和云在线分析等特点,迅速被物联网和人工智能应用领域的企业所接受并获得广泛应用,例如,M2M、人机协同、智能电网、智能交通、智能家居、智能医疗、无人驾驶等应用。
与边缘计算(Edge Computing)不同的是,雾计算可以将基于云的服务 , 如 IaaS、 PaaS、 SaaS,拓展到网络边缘,而边缘计算更多地专注于终端设备端。雾计算可以进行边缘计算,但除了边缘网络,雾计算也可以拓展到核心网络,也就是边缘和核心网络的组件都可以作为雾计算的基础设施。
“云”和“雾”典型案例和应用场景
融合云平台和雾计算,一方面可通过云降低传统 IT采购、管理和运维的开支,将 IaaS、 PaaS、 SaaS作为云服务输出;另一方面,通过雾计算可保证边缘端数据的实时搜集、提取和分析速度,提高网络资源部署使用和管理效率,有助于提高人机协同效率,为企业业务创新、服务品质提升提供技术支持。以下是四个行业“云”和“雾”的典型案例和应用场景。
工业
GE基于 Pivotal Cloud Foundry打造了 Predix 物联网 PaaS平台,结合戴尔智能仿真技术,实现了“数据双胞胎”。基于云计算,GE 实现了飞机发动机生产过程中的调优,同时,基于雾计算,GE 实现了飞机飞行过程中的“自愈”。
GE Predix 作为物联网 PaaS 平台,还助力制造企业将大数据、物联网和人工智能转化为智能制造能力,实现数据创新。GE Predix 平台,融合云计算和雾计算以及”数字双胞胎“,帮助制造企业实现“虚拟 - 现实”的设计生产融合,并为其提供云计算服务。
农业
Chitale Dairy是一家乳制品厂。基于戴尔科技虚拟化技术,Chitale Dairy实现了 ERP云部署。他们基于雾计算,通过为奶牛装上传感器,进行近实时数据采集分析、处理,实现精细化运营,保证乳制品生产全流程的监控、管理、优化。同时,Chitale Dairy 通过基于云的乳业生命周期管理平台,实现了乳制品生产流程自动化管理,通过物联网和大数据分析,对每头奶牛从食料、喂养、健康、牛奶质量和产量进行全流程监控分析,实现精细化和自动化乳业生产。
将云的整体业务管理和雾端的优化农场间协作以及奶源监控管理紧密连接起来,在提高乳制品生命周期管理效率的同时,提升了协同和协作效率,加速企业业务创新的速度。
服务业
TopGolf 是一家高尔夫俱乐部。通过采用戴尔科技的虚拟化和超融合技术,形成了高尔夫数字化高端服务输出能力。他们通过向数字化转型,打破了传统高尔夫的业务模式。通过物联网,将 RFID 芯片嵌入高尔夫球里,实现对每次击球、每个队员和赛事进行实时监控,并基于雾计算,实时跟踪和分析每个击球动作和球的路径,实现实时积分。
TopGolf 的业务模式融合了云计算和雾计算,实现了跨数据中心、云和边缘应用的实时数据监控、交互和管理,满足赛事实时监控、场上场下互动、赛前球员积分分析、社交媒体、会员个性化数据管理等大数据分析的需求。
交通业
在智能交通中,可通过传感器搜集信息,进行实时数据分析和交通部署,以提高公共安全。通过雾计算,智能交通控制系统中的一个雾节点可以共享收集到的交通信息,以缓解高峰时段的交通拥堵、定位交通事故,并可以通过远程控制缓解交通拥堵区域的交通状况。同时,在每个用户的电话和公共交通中,基于雾计算的应用程序允许用户在没有持续网络连接的情况下,共享并通过附近的用户下载内容。
此外,自动化车辆的安全系统、道路上的监控系统以及公共交通的票务系统,都可以从传感器和视频数据中收集大量信息。聚合后的数据将传输到云上,根据用户的需求进行数据提取和分析,再基于雾计算实现边缘数据实时分析,从而为用户快速提供精准信息,以保障公共交通的畅通和安全。
未来雾计算将扮演重大角色
从商业运营模式到工作生活方式,智能物联网技术正深刻改变着人类社会。要让物联网拥有无处不在的智能,就必须充分利用网络环境中分散存在的计算、存储、通信和控制等能力,通过资源共享机制和协同服务架构来有效提升生产效率或用户体验。
当前,雾计算技术的研究和标准化工作刚刚起步。我们面临的主要技术挑战和研究热点为:如何在雾计算节点之间建立信任关系,如何在它们之间推动资源充分共享,如何在云—雾—边缘等多层次之间实现高效通信和紧密协作,如何在异构节点之间完成复杂任务的公平按需分配等。
可以预见,随着雾计算技术的不断发展成熟和普及应用,智能物联网将越来越便捷、越来越真实地借鉴和映射人类社会的组织架构和决策机制,从而能用更自然和更熟悉的方式为每个人提供触手可及、无处不在的智能服务。
G. 矩阵分解在协同过滤推荐算法中的应用
矩阵分解在协同过滤推荐算法中的应用
推荐系统是当下越来越热的一个研究问题,无论在学术界还是在工业界都有很多优秀的人才参与其中。近几年举办的推荐系统比赛更是一次又一次地把推荐系统的研究推向了高潮,比如几年前的Neflix百万大奖赛,KDD CUP 2011的音乐推荐比赛,去年的网络电影推荐竞赛,还有最近的阿里巴巴大数据竞赛。这些比赛对推荐系统的发展都起到了很大的推动作用,使我们有机会接触到真实的工业界数据。我们利用这些数据可以更好地学习掌握推荐系统,这些数据网上很多,大家可以到网上下载。
推荐系统在工业领域中取得了巨大的成功,尤其是在电子商务中。很多电子商务网站利用推荐系统来提高销售收入,推荐系统为Amazon网站每年带来30%的销售收入。推荐系统在不同网站上应用的方式不同,这个不是本文的重点,如果感兴趣可以阅读《推荐系统实践》(人民邮电出版社,项亮)第一章内容。下面进入主题。
为了方便介绍,假设推荐系统中有用户集合有6个用户,即U={u1,u2,u3,u4,u5,u6},项目(物品)集合有7个项目,即V={v1,v2,v3,v4,v5,v6,v7},用户对项目的评分结合为R,用户对项目的评分范围是[0, 5]。R具体表示如下:
推荐系统的目标就是预测出符号“?”对应位置的分值。推荐系统基于这样一个假设:用户对项目的打分越高,表明用户越喜欢。因此,预测出用户对未评分项目的评分后,根据分值大小排序,把分值高的项目推荐给用户。怎么预测这些评分呢,方法大体上可以分为基于内容的推荐、协同过滤推荐和混合推荐三类,协同过滤算法进一步划分又可分为基于基于内存的推荐(memory-based)和基于模型的推荐(model-based),本文介绍的矩阵分解算法属于基于模型的推荐。
矩阵分解算法的数学理论基础是矩阵的行列变换。在《线性代数》中,我们知道矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为A=PEQ=PQ(E是标准阵)。
矩阵分解目标就是把用户-项目评分矩阵R分解成用户因子矩阵和项目因子矩阵乘的形式,即R=UV,这里R是n×m, n =6, m =7,U是n×k,V是k×m。直观地表示如下:
高维的用户-项目评分矩阵分解成为两个低维的用户因子矩阵和项目因子矩阵,因此矩阵分解和PCA不同,不是为了降维。用户i对项目j的评分r_ij =innerproct(u_i, v_j),更一般的情况是r_ij =f(U_i, V_j),这里为了介绍方便就是用u_i和v_j内积的形式。下面介绍评估低维矩阵乘积拟合评分矩阵的方法。
首先假设,用户对项目的真实评分和预测评分之间的差服从高斯分布,基于这一假设,可推导出目标函数如下:
最后得到矩阵分解的目标函数如下:
从最终得到得目标函数可以直观地理解,预测的分值就是尽量逼近真实的已知评分值。有了目标函数之后,下面就开始谈优化方法了,通常的优化方法分为两种:交叉最小二乘法(alternative least squares)和随机梯度下降法(stochastic gradient descent)。
首先介绍交叉最小二乘法,之所以交叉最小二乘法能够应用到这个目标函数主要是因为L对U和V都是凸函数。首先分别对用户因子向量和项目因子向量求偏导,令偏导等于0求驻点,具体解法如下:
上面就是用户因子向量和项目因子向量的更新公式,迭代更新公式即可找到可接受的局部最优解。迭代终止的条件下面会讲到。
接下来讲解随机梯度下降法,这个方法应用的最多。大致思想是让变量沿着目标函数负梯度的方向移动,直到移动到极小值点。直观的表示如下:
其实负梯度的负方向,当函数是凸函数时是函数值减小的方向走;当函数是凹函数时是往函数值增大的方向移动。而矩阵分解的目标函数L是凸函数,因此,通过梯度下降法我们能够得到目标函数L的极小值(理想情况是最小值)。
言归正传,通过上面的讲解,我们可以获取梯度下降算法的因子矩阵更新公式,具体如下:
(3)和(4)中的γ指的是步长,也即是学习速率,它是一个超参数,需要调参确定。对于梯度见(1)和(2)。
下面说下迭代终止的条件。迭代终止的条件有很多种,就目前我了解的主要有
1) 设置一个阈值,当L函数值小于阈值时就停止迭代,不常用
2) 设置一个阈值,当前后两次函数值变化绝对值小于阈值时,停止迭代
3) 设置固定迭代次数
另外还有一个问题,当用户-项目评分矩阵R非常稀疏时,就会出现过拟合(overfitting)的问题,过拟合问题的解决方法就是正则化(regularization)。正则化其实就是在目标函数中加上用户因子向量和项目因子向量的二范数,当然也可以加上一范数。至于加上一范数还是二范数要看具体情况,一范数会使很多因子为0,从而减小模型大小,而二范数则不会它只能使因子接近于0,而不能使其为0,关于这个的介绍可参考论文Regression Shrinkage and Selection via the Lasso。引入正则化项后目标函数变为:
(5)中λ_1和λ_2是指正则项的权重,这两个值可以取一样,具体取值也需要根据数据集调参得到。优化方法和前面一样,只是梯度公式需要更新一下。
矩阵分解算法目前在推荐系统中应用非常广泛,对于使用RMSE作为评价指标的系统尤为明显,因为矩阵分解的目标就是使RMSE取值最小。但矩阵分解有其弱点,就是解释性差,不能很好为推荐结果做出解释。
后面会继续介绍矩阵分解算法的扩展性问题,就是如何加入隐反馈信息,加入时间信息等。
H. 求基于用户的协同过滤算法matlab代码
什么是推荐算法
推荐算法最早在1992年就提出来了,但是火起来实际上是最近这些年的事情,因为互联网的爆发,有了更大的数据量可以供我们使用,推荐算法才有了很大的用武之地。
最开始,所以我们在网上找资料,都是进yahoo,然后分门别类的点进去,找到你想要的东西,这是一个人工过程,到后来,我们用google,直接搜索自己需要的内容,这些都可以比较精准的找到你想要的东西,但是,如果我自己都不知道自己要找什么肿么办?最典型的例子就是,如果我打开豆瓣找电影,或者我去买说,我实际上不知道我想要买什么或者看什么,这时候推荐系统就可以派上用场了。
推荐算法的条件
推荐算法从92年开始,发展到现在也有20年了,当然,也出了各种各样的推荐算法,但是不管怎么样,都绕不开几个条件,这是推荐的基本条件
根据和你共同喜好的人来给你推荐
根据你喜欢的物品找出和它相似的来给你推荐
根据你给出的关键字来给你推荐,这实际上就退化成搜索算法了
根据上面的几种条件组合起来给你推荐
实际上,现有的条件就这些啦,至于怎么发挥这些条件就是八仙过海各显神通了,这么多年沉淀了一些好的算法,今天这篇文章要讲的基于用户的协同过滤算法就是其中的一个,这也是最早出现的推荐算法,并且发展到今天,基本思想没有什么变化,无非就是在处理速度上,计算相似度的算法上出现了一些差别而已。
基于用户的协同过滤算法
我们先做个词法分析基于用户说明这个算法是以用户为主体的算法,这种以用户为主体的算法比较强调的是社会性的属性,也就是说这类算法更加强调把和你有相似爱好的其他的用户的物品推荐给你,与之对应的是基于物品的推荐算法,这种更加强调把和你你喜欢的物品相似的物品推荐给你。
然后就是协同过滤了,所谓协同就是大家一起帮助你啦,然后后面跟个过滤,就是大家是商量过后才把结果告诉你的,不然信息量太大了。。
所以,综合起来说就是这么一个算法,那些和你有相似爱好的小伙伴们一起来商量一下,然后告诉你什么东西你会喜欢。
算法描述
相似性计算
我们尽量不使用复杂的数学公式,一是怕大家看不懂,难理解,二是我是用mac写的blog,公式不好画,太麻烦了。。
所谓计算相似度,有两个比较经典的算法
Jaccard算法,就是交集除以并集,详细可以看看我这篇文章。
余弦距离相似性算法,这个算法应用很广,一般用来计算向量间的相似度,具体公式大家google一下吧,或者看看这里
各种其他算法,比如欧氏距离算法等等。
不管使用Jaccard还是用余弦算法,本质上需要做的还是求两个向量的相似程度,使用哪种算法完全取决于现实情况。
我们在本文中用的是余弦距离相似性来计算两个用户之间的相似度。
与目标用户最相邻的K个用户
我们知道,在找和你兴趣爱好相似的小伙伴的时候,我们可能可以找到几百个,但是有些是好基友,但有些只是普通朋友,那么一般的,我们会定一个数K,和你最相似的K个小伙伴就是你的好基友了,他们的爱好可能和你的爱好相差不大,让他们来推荐东西给你(比如肥皂)是最好不过了。
I. 协同过滤,基于内容推荐有什么区别
举个简单的小例子,我们已知道
用户喜欢的电影是A,B,C
用户u2喜欢的电影是A, C, E, F
用户u3喜欢的电影是B,D
我们需要解决的问题是:决定对u1是不是应该推荐F这部电影
基于内容的做法:要分析F的特征和u1所喜欢的A、B、C的特征,需要知道的信息是A(战争片),B(战争片),C(剧情片),如果F(战争片),那么F很大程度上可以推荐给u1,这是基于内容的做法,你需要对item进行特征建立和建模。
协同过滤的办法:那么你完全可以忽略item的建模,因为这种办法的决策是依赖user和item之间的关系,也就是这里的用户和电影之间的关系。我们不再需要知道ABCF哪些是战争片,哪些是剧情片,我们只需要知道用户u1和u2按照item向量表示,他们的相似度比较高,那么我们可以把u2所喜欢的F这部影片推荐给u1。
根据数据源的不同推荐引擎可以分为三类
1、基于人口的统计学推荐(Demographic-based Recommendation)
2、基于内容的推荐(Content-based Recommendation)
3、基于协同过滤的推荐(Collaborative Filtering-based Recommendation)
基于内容的推荐:
根据物品或内容的元数据,发现物品或内容的相关性,然后基于用户以前的喜好记录推荐给用户相似的物品
基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(当然,只根据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C。
J. 个性化推荐算法——协同过滤
有三种:协同过滤
用户历史行为
物品相似矩阵