单值预测算法
A. 求教单值图像处理算法
将A中奇数位的像厅正简素点取代图片B中相应位置的点,B中其他点不变。将A中偶数位的像素点取代图片C中相应位置的点,C中其他点不变。还原的时候只要挑出B中清物的奇数位和C中的偶数位。类似的方法:按行,按列,分块,只要将A分成2部分,最后合起来。
再给你出个主意。B图像不变。C图像的点作为标扮裤记。A中的像素与B中相应位置点颜色一致的,在C中用黑色标记,不一样的用白色标记。还原也很方便,对照C修改B就得到A。推广用1副图隐藏A,同理,但是不用B来做原图了,自己写个片段:白黑白白黑白黑黑白黑,我只是举个例子。让这个片段无限循环下去,就是B图片的作用了。
B. 销售业绩的平均单值怎么计算
单日销售量累加=月销量,你说小计,没说小计的差激时限。月销售量/天数=月平均销售量
单日销售额累加=月销额衫乎, 月销额虚塌袜/天数= 月平均销售额
C. CPK的计算方法
信息安全领域的定义:CPK是“Combined Public Key”的缩写,即中文名为组合公钥,是一种加密算法,以很小的资源,生成大规模密钥。
工程领域的定义:CPK是“Process Capability Index” 的缩写。CPK的中文定义为:制程能力指数,是现代企业用于表示制程能力的指标,也即某个工程或制程水准的量化反应,也是工程评估的一类指标。
计算公式
CPK=Cp*(1-|Ca|)
Ca (Capability of Accuracy):制程准确度;在衡量“实际平均值”与“规格中心值”之一致性。对于单边规格,因不存在规格中心,因此不存在Ca;对于双边规格,Ca=(ˉx-U)/(T/2)。
Cp (Capability of Precision):制程精密度;在衡量“规格公差宽度”与“制程变异宽度”之比例。对于单边规格,只有上限和中心值,Cpu = | USL-ˉx | / 3σ 或 只有下限和中心值,Cpl = | ˉx -LSL | / 3σ;对于双边规格:Cp=(USL-LSL) / 6σ=T/6σ
注意: 计算Cpk时,取样数据至少应有20组数据,而且数据要具有一定代表性。
D. 求单值极点模式模式搜索算法最优参数是什么
还得耐拍看三个参数有昌局羡没有关系。
如果没有关系,则腊瞎分别得到最优的三个参数,即为总体最优
如果有关系,则每次只能优化一个的方法,不能得到全局最优
E. 低估差补估计量方差的方法
1、均值插补。数据的属性分为定距型和非定距型。如果缺失值是定距型的,就以该属性存在值的平均值来插补缺失的值。如果缺失值是非局大蔽定距型的,就根据统计学中的众数原理,用该属性的众数(即出桐州现频率最高的值)来补齐缺失的值。
2、利用同类均值插补。同均值插补的方法都仿慎属于单值插补,不同的是,它用层次聚类模型预测缺失变量的类型,再以该类型的均值插补。假设X=(X1,XXp)为信息完全的变量,Y为存在缺失值的变量,那么首先对X或其子集行聚类,然后按缺失个案所属类来插补不同类的均值。如果在以后统计分析中还需以引入的解释变量和Y做分析,那么这种插补方法将在模型中引入自相关,给分析造成障碍。
3、极大似然估计(MaxLikelihood,ML)。在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计(LittleandRubin)。这种方法也被称为忽略缺失值的极大似然估计,对于极大似然的参数估计实际中常采用的计算方法。
F. plc毕业设计开题报告
plc毕业设计开题报告
我们眼下的社会,报告使用的次数愈发增长,报告中提到的所有信息应该是准确无误的。你所见过的报告是什么样的呢?下面是我整理的plc毕业设计开题报告,仅供参考,欢迎大家阅读。
plc毕业设计开题报告1
1、选题意义和背景。
可编程序逻辑控制器(Programmable Logic Controller, PLC)具有可靠性高、抗干扰能力强、功能丰富等强大技术优势,已经成为目前自动化领域的主流控制系统。然而,从目前的应用情况来看,PLC还大都只是承担最基本的控制功能,如顺序控制、数据采集和PID反馈控制。各个PLC厂家也在其产品中设计了PID模块。虽然PID算法控制有很高的稳定性,但对于一些复杂控制系统,PID控制很难满足控制要求,这也使PLC的发展面临着一种挑战。随着越来越多的PLC产品与IEC1131-3标准兼容,PLC控制系统越来越开放,将先进控制算法嵌入PLC常规控制系统成为可能。本课题从工业控制实际应用角度出发,对PLC的控制功能进行深入的研究和探讨,以提高和扩展PLC控制器的应用水平和应用范围。本课题:PLC先进控制策略的研究与应用,其目的是通过研究使一些先进控制算法在PLC及组态系统上得以实现,并开发相应的应用程序,经过验证后最终应用到工业过程控制中去。
在PLC组态系统中实现先进控制算法,包括预测控制算法和模糊逻辑控制算法,形成具有人工智能的控制模块及网络系统,能大大提高系统的控制水平,改善控制质量。从经济角度来看,目前PLC生产商的一些产品具备先进控制模块,如模糊模块。但它们的价格十分昂贵,且封闭性较强,不适合我国中小型企业的工业改造。因此开发较为通用的先进算法实现技术,对于我国中小型企业的工业改造具有很大的意义,既可降低生产成本,又可提高经济效益。
模糊控制与预测控制是智能控制陵态罩中技术较为成熟的分支,因此,研制和开发出适合工业环境的实时先进控制开发工具,实现模糊控制、预测控制嵌入PLC,与常规控制集成运行,让先进控制从教授、专家手中走出来,实现先进闭氏控制的工程化、实用化、转化为社会生产力,对缩短控制系统开发周期,加快先进控制技术的广泛应用,提高我国的工业自动化水平有着重大的意义。
2、论文综述/研究基础。
在过程工业界,从40年代开始,采用PID控制规律的单输入单输出简单反馈控制回路己成为过程控制的核心系统。目前,PID控制仍广泛应用,即便是在大量采用DCS控制的最现代的工业生产过程中,这类回路仍占总回路80%-90%.这是因为PID控制算法是对人的简单而有效操作的总结和模仿,足以维护一般过程的平稳操作与运行,而且这类算法简单且应用历史悠久,工业界比较熟悉且容易接受。
然而,单回路PID控制并不能适用于所有的过程和不同的要求[4}0 50年代开始,逐渐发展了串级、比值、前馈、均匀和Smith预估控制等复杂控制系统,即当时的先进控制系统,在很大程度上满足了单变量控制系统的一些特殊的控制要求。在工业生产过程中,仍有10%-20%的控制问题采用上述控制策略无法奏效,所涉及的被控过程往往具有强藕合性、不确定性、非线性、信息不完全性和大纯滞后等特性,并存在着苛刻的约束条件,更重要的是它们大多数是生产过程的核心部分,直接关系到产品的质量、生产率和成本等有关指标。随着过程工业日益走向大型化、连续化,对工业生产过程控制的品质提出了更高的要求,控制与经济效益的矛盾日趋尖锐,迫切需要一类合适的先进控制策略。自50年代末发展起来的以状态空间方法为主体的现代控制理论,为过程控制带来了状态反馈、输出反馈、解疆控制、自适应控制等一系列多变量控制系统设计方法}s}.上述多变量控制策略有其自身的不足之处,工业过程的复杂性使得建立其正确的数学模型比较困难。同时,计算机技术的持续发展使得尺闹计算机控制在工业生产过程中得到了广泛的应用,强大的计算能力可以用来求解过去认为是无法求解的问题,这一切都孕育着过程控制领域的新突破。
整个80年代,出现了许多约束模型预测控制的工程化软件包。通过在模型识别、优化算法、控制结构分析、参数整定和有关稳定性和鲁棒性研究等一系列工作,基于模型控制的理论体系己基本形成,并成为目前过程控制应用最成功,也最有前途的先进控制策略。近年来,人工智能技术有了长足的长进并在许多科学与工程领域中取得了较广泛的应用。就过程控制而言,专家系统、神经网络、模糊系统是最有潜力的三种工具。专家系统可望在过程故障诊断、监督控制、检测仪表和控制回路有效性检验中获得成功应用。神经网络则可以为复杂的非线性过程的建模提供有效的方法,进而可用于过程软测量和控制系统的设计上。模糊系统不仅是行之有效的模糊控制理论基础,而且有望成为表达确定性和不确定性两类混合并提炼这些经验使之成为知识进而改进以后的控制,也将是先进控制的重要内容。
由于先进控制受控制算法的复杂性和计算机硬件两方面因素的影响,早期的先进控制算法通常是在PC机和UNIX机上实施的。随着DCS功能的不断增强,更多的先进控制策略可以与基本控制回路一起在DCS控制站上实现。国外发达国家几乎所有企业都采用了DCS系统或其它智能化设备来实现对生产过程的控制,并在此基础上通过实施先进控制与优化较大的提升了系统的性能。可以说,高性能控制系统,尤其是DCS系统的普及为先进控制的应用提供了强有力的硬件和软件平台。国外从70年代末就开始了先进控制技术商品化软件的开发及应用,并在DCS的基础上实现先进控制和优化。如爱默生公司的DeltaV和Honeywell公司的TDC3000,其先进控制软件RMPGT和RPID等在现场的实际应用都集中在自己的DCS系统上。传统的PLC由于不支持浮点运算以及先进控制所必须的精确的时间,因此,除了模糊逻辑控制外,其他的先进控制并没有在PLG平台上实现。然而,在过程工业中大多系统使用先进灵活的PLC控制系统,因此1996年Barnes提出了一种基于PC-PLC通讯的混合方式,通过控制网络实现计算机与PLG的通讯,从而实现先进控制。
3、参考文献。
[1]基希林,曲非非。PLC的发展[J].微计算机信息,20xx, 18(9):1-2
[2]陈夕松,张景胜。过程控制发展综述与教学研讨[J].南京工程学报,20xx,2(1):49-52
[3]Ohaman Martin, Johansson,Stefan, Arzen, Karl-Erik. Implementation aspects of the PLC standard IEC 1131-3 [J].Control Engineering Practice, 1998,6(8):547-555
[4]范宗海,黄步余,唐卫泽。先进过程控制在聚丙烯装置上的应用[J].石油化工自动化,1999, (6):7-12
[5]王跃宣。先进控制策略与软件实现及应用研究[M].浙江大学博士论文,20xx,(1):8-20
[6]褚健。现代控制理论基础[M].杭州:浙江大学出版社,1995: 9-15
[7]沈平,赵宏,孙优贤。过程控制理论基础[M].杭州:浙江大学出版社,1991:31-38
[8]张志辉一套常减压先进控制的应用与开发“M].陕西:西安交通大学硕士论文,20xx:20-25
[9]薛美胜,吴刚,孙德敏,王永。工业过程的先进控制[J].化工自动化及仪表,20xx,29(2):1一9
[10] Kolokotsa D.,Stavrakakis,G S二Genetic algoritluns optimized fuzzy controller for the indoor environmental management in buildings implemented using PLC and local operating networks[J].Engineering Applications of Artificial Intelligence,20xx,15(5):417-428
[11]黄丽雯。新型PLC的特点及应用[J].新特器件应用,1999 , (6) : 27-29
[12]杨昌馄。可编程序控制器发展趋势概述[J],基础自动化,1998 , (2) :1-5
[13]蔡伟,巨永锋。PLC分布式控制系统[J].西安公路交通大学学报,1996,16(3):20-25
[14]胡惠延。用PLC实现的一种集散型控制系统[J].煤矿自动化,20xx, (4) : 22-24
[15]陈勇,赵勇飞,徐莉。工控机与PLC分布式测控系统的设计[J].西安公路交通大学学报,1999 , (6) : 41-43
[16]任俊杰,钱琳琳,刘泽祥。基于SIMATIC S7 PLC的现场总线控制系统[J],电工技术杂志,20xx,(9):40-42
[17〕田红芳,李颖宏。PLC与上位机的串行通讯[J].微计算机信息,20xx,17(3):36-37
[18]姚锡凡,彭永红,陈统坚,李伟光。基于模糊芯片的加工过程智能控制[J].组合机床与自动化加工技术,20xx, (2):26-29
[19]汪小澄,方强。基于PLC的模糊控制研究[J].武汉大学学报,20xx, 35(3):79-81
[20]肖汉光。模糊控制在悬挂链同步控制中的应用[M].广州:华南理工大学硕士论文,20xx: 20-31
[21]成晓明,柳爱美,田淑杭,PLC的炉温多级模糊控制的优化与实现[J].自动化仪器与仪表,20xx,(1) : 20-22
[22]李敬兆,张崇巍。基于PLC直接查表方式实现的模糊控制器研究[J].电子技术杂志,20xx,(9):18-21
[23]张玺,刘勇,张小兵。二次开发Wincc模糊控制算法[J].计算机应用,20xx,(1):69-71
[24]孙东卫,周立峰。预测模糊控制在渠道系统中的应用[J].现代电子技术,20xx,(4):82-85
[25]石红瑞,孙洪涛,马智宏。二次开发RSView32嵌入广义预测控制算法[J] .测控技术,20xx 23(9) : 52-54
[26”西门子公司。西门子57-300系统参考手册[M].北京:西门子自动化与驱动集团,20xx: 10-200
[27”西门子公司。STEP? V5.1编程手册[M].北京:西门子自动化与驱动集团,20xx:40-60
[28]王磊,王为民。模糊控制理论及应用[M].北京:国防工业出版社,1997: 17-29
[291章为国,杨向忠。模糊控制理论与应用[M].陕西:西北工业大学出版社,1999:15一19
[30]蔡自兴。智能控制一基础与应用[M].北京:国防工业出版社,1998: 35-37
[31]孙增折。智能控制理论与技术[M].北京:清华大学出版社,1997; 55-62
[32]齐蓉,林辉,李玉忍,谢利理,通用模糊控制器在PLC上的实现[[J].工业仪表与自动化装置,20xx, (4):23-25
[33]闻新,周露,李东江,贝超。MATLAB模糊逻辑工具箱的分析与应用〔M].北京:科学出版社,20xx: 44-45
[34]许建平,刘添兵。PLC控制软件的模块化设计[J].九江职业技术学校学报,20xx,(3):13一14
[35]张运波。PLC梯形图设计中的关键技术[J].长春工程学院学报,20xx,1(1):30-32
[36] Richalet J, Rault A. Model Predictive Heuristic Cortrol:Application to Instrial Process[J] .Automatica, 1978,14(1):413-428
[37] Rouhani R,Mehra R K. Model algorithmic control (MAC):Basic Theoretical Properties[J].Automatica,1982,18(4):401-414
[38] Culter C R,Ramaker B L .Dynamic Matrix :ontrol-A Computer Control Algorithm[M].San Francisco: American Automatic Control Council,1980:221-230
[39] Clarhe D W, Mohtadi C.Constrained receding hori:on predictive control[J].IEEProc-D, 1991,13 8(4) : 347-3 54
[40] Garica C E,Morari M. Internal Model Control-A Unifying Review and Some New Results[J] .Process DesDew, 1982,(21):308一32;5
[41]Richalet J .Predictive functional control-Appliation to fast and accurate robots[J].Proc Of 10“ IFAC World Congress, Munich, FRG, 1987, (1):25I-258
[42]许超,陈治钢,邵慧鹤。预测控制技术及应用发展综述[J].自动化及仪表,20xx,29(3):1一10
[43]舒迪前。预测控制系统及其应用[M].北京:机械工业出版社,1996: 225-228
[44]李绍勇,陈希平,王刚,范宗良,树龙,蔡颖。换热机组供水温度的广义预钡(控制[J].甘肃科学学报,20xx, 16(3):95-97
[45]俞树荣,祁振强,商建平。集中供热系统热力站二段换热机组系统建模及研究[J].甘肃工业大学学报,20xx, 28(2):57-61
4、论文提纲。
plc毕业设计开题报告2
第三章PLC模糊控制器的研究与实现
3.1模糊控制算法与系统
3.1.1模糊控制理论
3.1.2模糊控制系统
3.1.2.1模糊控制器的组成
3.1.2.2模糊控制算法
3.1.2.3模糊控制器的结构
3.2 PLC模糊控制器设计
3.2.1 PLC模糊控制器结构
3.2.2模糊控制器离线部分设计
3.2.2.1模糊控制器离线部分算法设计内容
3.2.2.2基于MATLAB模糊逻辑工具箱的设计
3.2.3 STEP7实现模糊控制器设计
3.2.3.1模糊算法流程图
3.2.3.2模糊算法的功能块
3.2.4 PLC模糊控制器的仿真验证
3.2.4.1仿真系统的建立
3.2.4.2仿真结果验证
第四章PLC预测控制器的研究与实现
4.1广义预测控制算法
4.1.1单值广义预测控制
4.1.2单值广义预测控制律计算
4.2 PLC单值广义预测控制器的设计与实现
4.2.1单值广义预测算法的实现步骤
4.2.2单值广义预测控制器的设计
4.3单值广义预测控制器的仿真验证
4.3.1仿真模型的建立
4.3.2仿真结果分析比较
第五章基于PLC的空调性能检测实验室计算机控制系统
5.1工艺流程与控制方案
5.1.1工艺过程简述
5.1.2控制要求
5.1.3控制方案设计
5.2控制系统结构及配置
5.3监控系统组态设计
5.4 57-300 PLC控制系统设计
5.4.1硬件系统组态
5.4.2 PLC控制程序设计
5、论文的理论依据、研究方法、研究内容。
目前,PLC的应用十分广泛,涉及到过程控制的方方面面。但在控制策略上,它依然沿用传统的PID控制。许多PLC开发商把PID算法做成模块,固化在PLC中。
但从长远角度看,对于一些复杂的控制系统,PID很难满足控制要求,这就需要把先进的控制算法嵌入到PLC的设计中。本课题以此为主要研究内容。
工业过程的复杂性以及对于控制日益提高的要求,各种先进控制算法越来越多地深入到控制领域,但由于PLC的编程目前还限于低级语言(如梯形图),所以,给在PLC上实现先进控制算法带来了困难。SIEMENS在PLC的编程系统STEP7中提供了比较丰富的功能模块,因此,本课题首先是通过对控制算法的研究与改进和对STEP?功能的开发,使先进控制策略在S7-300 PLC上得以较好的实现。本论文重点研究基于PLC的模糊控制器的实现,这一领域目前研究的比较多,因此在总结前人研究方法的基础上,设计出一个基于PLC的通用的模糊控制器,并使其固化在STEP7软件中。此外,对于PLC预测控制虽已有一些研究,但都仅限于理论方面,尚未给出PLC上实现的实例。本课题也想在此方面有所创新,开发出基于PLC的预测控制实现技术。
本论文第一章简要介绍了课题的来源背景、主要内容、目的意义以及国外相关工作的研究状况等。
第二章介绍了SIMATIC S7-300 PLC的主要特点,系统组成及控制系统的配置与实现,同时介绍了STEP?软件的功能及结构,组态环境,以及一些基本算法的实现方法。
第三章重点阐述了模糊控制的基本理论、模糊控制算法、模糊控制器的结构及设计方法。提出了基于PLC的模糊控制器的实现方法,即采用MATLAB离线设计,PLC在线查询的方式。给出了STEP?实现模糊算法的流程图及部分程序。
最后建立一个过程仿真系统,对PLC模糊控制器进行仿真验证。
第四章介绍了预测控制的基本理论,重点阐述了广义预测控制算法,并结合PLC的特点,提出了基于PLC的.单值广义预测控制器的设计方法,给出了STEP7实现单值广义预测算法的步骤与流程图。最后建立一个二阶大滞后的对象模型,构成仿真控制系统,与PID控制进行比较分析,验证PLC预测控制器的有效性。
第五章是作者在研究生期间参加的某空调性能检测实验室基于PLC实现的计算机控制系统,从系统控制方案的设计、系统配置和硬件构成、监控系统的设计等几个方面分别进行了详细的论述。
第六章结论与体会,总结自己在课题研究和项目研究的过程中的一些体会和心得,分析了工作中的不足,提出了以后工作的注意事项,改进方法。
6、研究条件和可能存在的问题。
I.尽快建立样板工程,把己经取得的研究成果应用到工程实际过程中,通过实践检验,发现问题以便不断改进和提高。
2. PLC预测控制器目前只应用了简单的单值广义预测算法,有其自身的局限性,如控制精度不高。目前,应用较为成熟的是MPC算法,因此可以把PLC-MPC控制器作为今后研究的一个重点。
3.对于PLC模糊控制器的改进,主要是在算法上,为了提高控制效果,单纯的模糊算法是不足的,改进型模糊算法如模糊PID可以改善控制器性能,因此可以开发PLC模糊PID控制器。
4.进一步挖掘STEP?软件的功能,开发过程对象仿真模块,给出基于PLC建立仿真系统的方法和步骤,为工业实阮应用缩短调试时间,保证系统的可靠性。
7、预期的结果。
1.通过对先进控制各种算法的分析比较,对先进控制理论有了进一步认识,从中学到了不少解决问题的方法,理解了传统控制方法与先进控制方法的区别。
2.基于PLC实现先进控制与基于PC实现先进控制相比较,最重要的一个优势在于PLC实现先进控制不需要通讯协议,而基于PC实现先进控制,在系统设计和运行之前必须正确的配置PC与PLC之间的通讯协议,因此可以降低系统得开发时间。其次,在系统运行时,在下位机上完成先进控制算法比在上位机完成更具有实时性。在可靠性方面,由于基于PC实现先进控制,现场的数据和信号要经过通讯传给上位机,这难免会出现数据的丢失和信号的误差,从而使系统的控制精度下降,而基于PLC实现先进控制避免了这类现象的发生。
3.西门子57-300 PLC功能强、处理速度快、模块化结构易于扩展,被广泛的应用于自动化控制系统中;其相应开发软件STEP7采用模块化编程方法,提供多种编程语言,丰富的功能模块,能实现较为复杂的功能和算法。因此二者结合 起来,为先进控制的设计与开发提供了很好的软硬件平台。
4. PLC模糊控制器采用MTALAB离线设计和PLC在线查表的方法,把复杂的模糊推理过程交给计算机离线完成,得到模糊控制量查询表供PLC在线调用。此方法将复杂琐碎的模糊控制系统的开发工作变得简单明了,大大缩短了开发周期,同时也提高的PLC控制的实时性,是目前被广泛采用且效果良好的PLC模糊控制器的设计方法。
5. PLC单值广义预测控制器采用简单实用的单值广义预测控制算法,它需要调整参数少、在线计算时间短,可适用于PLC类控制采样周期较短的快速动态过程系统。仿真结果表明:PLC单值广义预测控制器保持了预测控制的性能,控制效果较PID控制有很大改善,同时具有计算量小,响应迅速的优点。
8、论文写作进度安排。
20xx.05-20xx.06 开论文会议
20xx.06-20xx.07 确定论文题目
20xx.07-20xx.02 提交开题报告初稿
20xx.02-20xx.06 提交论文初稿
20xx.07-20xx.08 确定论文终稿
20xx.08-20xx.09 论文答辩
G. 矩阵分解的一点总结
------------------------------------------------------------------------------------------------------------------------------------------------
对于推荐系统来说存在两大场景即评分预测(rating prediction)与Top-N推荐(item recommendation,item ranking)。矩阵分解主要应用于评分预测场景。
推荐系统的评分预测场景可看做是一个矩阵补全的游戏,矩阵补全是推荐系统的任务,矩阵分解是其达到目的的手段。因此,矩阵分解是为了更好的完成矩阵补全任务(欲其补全,先其分解之)。之所以可以利用矩阵分解来完成矩阵补全的操作,那是因为基于这样的假设:假设UI矩阵是低秩的,即在大千世界中,总会存在相似的人或物,即物以类聚,人以群分,然后我们可以利用两个小矩阵相乘来还原它。
矩阵分解就是把原来的大矩阵,近似的分解成小矩阵的乘积,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。
具体来说就是,假设用户物品的评分矩阵A是m乘n维,即一共有m个用户,n个物品.通过一套算法转化为两个矩阵U和V,矩阵U的维度是m乘k,矩阵V的维度是n乘k。
这两个矩阵的要求就是通过下面这个公式可以复原矩阵A:
说起矩阵分解,我们第一个想起的就是SVD。
SVD分解的形式为3个矩阵相乘,左右两个矩阵分别表示用户/项目隐含橘巧因子矩阵,中间矩阵为奇异值矩阵并且是对角矩阵,每个元素满足非负性,并且逐渐减小。因此我们可以只需要前个K因子来表示它。
但SVD分解要求矩阵是稠密的,也就是说矩阵的所有位置不能有空白。有空白时我们的M是没法直接去SVD分解的。大家会说,如果这个矩阵是稠密的,那不就是说我们都已经找到所有用户物品的评分了嘛,那还要SVD干嘛! 的确,这是一个问题,传统SVD采用的方法是对评分矩阵中的缺失值进行简单的补全,比如用全局平均值或者用用户物品平均值补全,得到补全后的矩阵。接着可以用SVD分解并降燃伍逗维。
虽然有了上面的补全策略,我们的传统SVD在推荐算法上还是较难使用。因为我们的用户数和物品一般都是超级大,随便就成千上万了。这么大一个矩阵做SVD分解是非常耗时的。那么有没有简化版的矩阵分解可以用呢?我们下面来看看实际可以用于推荐系统的矩阵分解。
FunkSVD是在传统SVD面临计算效率问题时提出来的,既然将一个矩阵皮卖做SVD分解成3个矩阵很耗时,同时还面临稀疏的问题,那么我们能不能避开稀疏问题,同时只分解成两个矩阵呢?也就是说,现在期望我们的矩阵M这样进行分解:
SVD分解已经很成熟了,但是FunkSVD如何将矩阵M分解为P和Q呢?这里采用了线性回归的思想。目标是让用户的评分和用矩阵乘积得到的评分残差尽可能的小,也就是说,可以用均方差作为损失函数,来寻找最终的P和Q。
在实际应用中,为了防止过拟合,会加入一个L2的正则化项。加入了正则化系数,需要调参。对于这个优化问题,一般通过梯度下降法来进行优化得到结果。
在FunkSVD算法火爆之后,出现了很多FunkSVD的改进版算法。其中BiasSVD算是改进的比较成功的一种算法。BiasSVD假设评分系统包括三部分的偏置因素:一些和用户物品无关的评分因素,用户有一些和物品无关的评分因素,称为用户偏置项。而物品也有一些和用户无关的评分因素,称为物品偏置项。这其实很好理解。比如一个垃圾山寨货评分不可能高,自带这种烂属性的物品由于这个因素会直接导致用户评分低,与用户无关。
一个用户给一个物品的评分会由四部分相加:
从左到右分别代表:全局平均分、物品的评分偏置、用户的评分偏置、用户和物品之间的兴趣偏好
BiasSVD增加了一些额外因素的考虑,因此在某些场景会比FunkSVD表现好。
SVD++算法在BiasSVD算法上进一步做了增强,这里它增加考虑用户的隐式反馈。它是基于这样的假设:用户除了对于项目的显式历史评分记录外,浏览记录或者收藏列表等隐反馈信息同样可以从侧面一定程度上反映用户的偏好,比如用户对某个项目进行了收藏,可以从侧面反映他对于这个项目感兴趣,具体反映到预测公式为:
学习算法依然不变,只是要学习的参数多了两个向量:x和y。一个是隐式反馈的物品向量,另一个是用户属性的向量,这样在用户没有评分时,也可以用他的隐式反馈和属性做出一定的预测。
它是基于这样的假设:用户的兴趣或者偏好不是一成不变的,而是随着时间而动态演化。于是提出了timeSVD,其中用户的和物品的偏置随着时间而变化,同时用户的隐含因子也随着时间而动态改变,在此物品的隐含表示并未随时间而变化(假设物品的属性不会随着时间而改变)。
其中,t为时间因子,表示不同的时间状态。
通过之前构建目标函数之后,就要用到优化算法找到能使它最小的参数。优化方法常用的选择有两个,一个是随机梯度下降(SGD),另一个是交替最小二乘(ALS),在实际应用中,交替最小二乘更常用一些,这也是推荐系统中选择的主要矩阵分解方法。
找到两个矩阵P和Q,让它们相乘后约等于原矩阵R:
P和Q两个都是未知的,如果知道其中一个的话,就可以按照代数标准解法求得,比如知道Q,那么P就可以这样算:
也就是R矩阵乘Q矩阵的逆矩阵就得到了结果,反之,知道了P 再求Q 也一样,交替最小二乘通过迭代的方式解决这个鸡生蛋蛋生鸡的难题:
1)、初始化随机矩阵Q里面的元素值
2)、把Q矩阵当做已知的,直接用线性代数的方法求得矩阵P
3)、得到了矩阵P后,把P当做已知的,故技重施,回去求解矩阵Q
4)、 上面两个过程交替进行,一直到误差可以接受为止
使用交替最小二乘好处:
1.在交替的其中一步,也就是假设已知其中一个矩阵求解另一个时,要优化的参数是很容易并行的;
2.在不是很稀疏的数据集合上,交替最小二乘通常比随机梯度下降要更快的得到结果。
在很多推荐场景中,我们都是基于现有的用户和商品之间的一些数据,得到用户对所有商品的评分,选择高分的商品推荐给用户,这是funkSVD之类算法的做法,使用起来也很有效。但是在有些推荐场景中,我们是为了在千万级别的商品中推荐个位数的商品给用户,此时,我们更关心的是用户来说,哪些极少数商品在用户心中有更高的优先级,也就是排序更靠前。也就是说,我们需要一个排序算法,这个算法可以把每个用户对应的所有商品按喜好排序。BPR就是这样的一个我们需要的排序算法。
BPR根据像交替最小二乘那样完成矩阵分解,先假装矩阵分解结果已经有了,于是就计算出用户对于每个物品的推荐分数,只不过这个推荐分数可能并不满足均方根误差最小,而是满足物品相对排序最佳
得到了用户和物品的推荐分数后,就可以计算四元组的样本中,物品1和物品2的分数差,这个分数可能是正数,也可能是负数,也可能是0。如果物品1和物品2相对顺序为1,那么希望两者分数之差是个正数,而且越大越好;如果物品1和物品2的相对顺序是0,则希望分数之差是负数,且越小越好。
目标函数:
把这个目标函数化简和变形后,和把AUC当成目标函数是非常相似的,也正是因为如此,BPR模型宣称该模型是为AUC而生的。
SVDFeature 是由上海交大Apex Data & Knowledge Management Lab(APEX)开发的一个推荐系统工具包。他们提出了一种基于feature 的矩阵分解的框架。
它的目的是有效地解决基于特征的矩阵分解。新的模型可以只通过定义新的特征来实现。
这种基于特征的设置允许我们把很多信息包含在模型中,使得模型更加与时俱进。使用此工具包,可以很容易的把其他信息整合进模型,比如时间动态,领域关系和分层信息。除了评分预测,还可以实现pairwise ranking任务。
SVDFeature的模型定义如下:
输入包含三种特征<α,β,γ>,分别是用户特征,物品特征和全局特征。
SVD :要求矩阵是稠密的,时间复杂度高。不推荐使用。
FunkSVD :不在将矩阵分解为3个矩阵,而是分解为2个低秩的用户项目矩阵,同时降低了时间复杂度。
BiasSVD :考虑偏置项时使用,也就是用户的爱好。
SVD++ :考虑用户的隐式反馈时使用。主动点评电影或者美食的用户是少数,也就是说显示反馈比隐式反馈少,这个时候就可以根据用户的隐式反馈推荐。
timeSVD :考虑时间因素时使用。人是善变的,随着时间的流逝,兴趣也会发生变化。
ALS :考虑建模时间时使用。强烈推荐使用,这也是社交巨头 Facebook 在他们的推荐系统中选择的主要矩阵分解算法。
BPR :考虑排序结果时使用。
SVDFeature :当我们有多个特征时,可以使用。SVDFeature的目的就是解决基于特征的矩阵分解。
矩阵分解算法的缺点 :都没有解决冷启动问题
准确率表示预测正确的样本数占总样本数的比例。
TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正;
FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正;
FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负;
TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负.
精确率表示预测为正样本的样本中,正确预测为正样本的概率。
召回率表示正确预测出正样本占实际正样本的概率。
折中了召回率与精确率。
对于评分预测任务,一般都是根据原有的评分数据,利用矩阵分解等方法去拟合原评分,使得优化后的模型可以去预测新的评分,这里就要衡量你预测的评分和实际评分的差异了,指标也很简单,分为RMSE和MSE。
MSE 是指参数估计值与参数真值之差平方的期望值;
MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
RMSE :RMSE是MSE的算术平方根。
AUC 这个值在数学上等价于:模型把关心的那一类样本排在其他样本前面的概率。最大是 1,完美结果,而 0.5 就是随机排列,0 就是完美地全部排错。
这个非常适合用来评价模型的排序效果,很适合作为BPR的评价指标。得到一个推荐模型后,按照它计算的分数,可以把用户想要的物品排在最前面。
具体的计算过程可看我的另一篇 文章
其中Rel表示与用户 u 相关的商品集(测试集), Rec表示推荐给用户的前K个列表,二者的交集除以Rec的集合元素个数(其实就是K),得到Precision@K。一般是算出每个用户的Precision@K,然后取平均值。
其中Rel表示与用户u相关的商品集(测试集),Rec表示推荐给用户的前K个列表,二者的交集除以Rec的集合元素个数(也就是测试集中用户u评过分的商品数),得到Recall@K。一般是算出每个用户的Recall@K,然后取平均值。
MAP(Mean Average Precision):单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值。
主集合的平均准确率(MAP)是每个主题的平均准确率的平均值。
MAP 是反映系统在全部相关文档上性能的单值指标。
系统检索出来的相关文档越靠前(rank 越高),MAP就可能越高。如果系统没有返回相关文档,则准确率默认为0。
例如:
假设有两个主题,主题1有4个相关网页,主题2有5个相关网页。
某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;
对于主题2检索出3个相关网页,其rank分别为1,3,5。
对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。
则MAP= (0.83+0.45)/2=0.64。
正确检索结果值在检索结果中的排名来评估检索系统的性能。
其中Q是用户的个数,rank是对于第i个用户,推荐列表中第一个在ground-truth结果中的item所在的排列位置。
举个例子:假如检索三次的结果如下,需要的结果(cat,torus,virus)分别排在3,2,1的话,此系统地MRR为(1/3 + 1/2 + 1)/3 = 11/18
比较复杂,可参考这篇 文章
参考文章:
https://blog.csdn.net/qq_40006058/article/details/89432773
https://blog.csdn.net/weixin_41362649/article/details/82848132
https://blog.csdn.net/qq_19446965/article/details/82079367
https://www.cnblogs.com/pinard/p/9128682.html
https://time.geekbang.org/column/article/5055