摘要:通过研究传统推荐模型和算法分析,结合大数据、混合推荐算法等特点,改进传统的检测推荐模型,基于相似度通过模型建立算法分析,采用Python编程语言提出了基于多维相似度的大数据检测推荐算法系统。

关键词:大数据;推荐算法;多维相似度  文献标识码:A  中图分类号:TN919

文章编号:2096-4137(2019)16-008-03  DOI:10.13535/j.cnki.10-1507/n.2019.16.03

0 引言

随着网络信息技术的不断发展,全球已经进入“大数据时代”。人们获取信息的途径不断创新,除了使用搜索引擎,一种新的信息获取方式正在悄然走进人们的生活,这便是推荐技术。个性化推荐是一种基于算法对他人提供的信息进行分析处理、根据用户行为和分析结果对其进行“个性化”推荐的技术,它自诞生起就成为各大视频门户网站争夺的一块战略高地,阿里、知乎、Netflix每年都会举办推荐算法竞赛来提高使用推荐算法的准确度。

1 推荐系统及算法概述

推荐系统实质上是一种形式特殊的信息过滤系统。它起源于20世纪90年代,多位学者先后在美国人工智能协会,国际人工智能联合大会等会议上提出“个性化推荐”的概念。整个推荐系统中最关键的部分是推荐算法,因为系统的性能优劣很大程度上由推荐算法来决定的。各类算法在近几十年的发展过程中取得了丰硕的成果。主要有以下几种推荐系统算法:基于关联规则的推荐算法、基于内容的推荐算法、协同过滤推荐算法、组合推荐算法等。由于上述主流的推荐算法各有优缺点,且有些互补的因素。因此,目前的推荐领域一般不会单独采用某一算法,更多的是多者的结合,即混合推荐。人们熟知Netflix、爱奇艺、今日头条上采用的推荐算法更是数十种算法的融合。

随着大数据时代的到来,大数据推荐算法及其应用就是国内外研究重点之一。自2012~2016年,国内在知网上关于大数据推荐算法的学术论文就有115篇,与之对应的国外WOS核心子库中有114篇。这些学术论文一般集中于“协同过滤”“大数据”“Hadoop”等方向,以及在Hadoop框架下的聚类协同过滤算法、矩阵分解算法。国内研究大多应用于大数据框架下实现算法理论探索以后采用大数据算法推荐进行实践,在电子电务,新闻个性化推荐方面较多。国外在人体健康检测和监测、社交方面应用较为广泛。由于国外起步较早,在2014年就形成了完整的推荐算法体系,而我国到2015年才形成比较成熟的大数据推荐算法体系,在检测领域还未有成熟的推荐算法和系统。

2 模型搭建

用户在使用检测软件过程中会产生2类数据:显式行为数据和隐式行为数据。显式行为数据即用户对该检测服务的评分;隐式行为数据即用户产生的行为记录,包括浏览、评论、转发等行为。推荐系统一般以基于协同过滤的推荐算法为主,在这种方法中,显式行为数据可以直接采用余弦相似度等方式进行计算;隐式行为数据可以转化为显式行为数据进行相似度计算。由于显式行为数据比较稀疏(具有评分的检测数据占比很小),而隐式行为数据本身是一种对用户真实想法的估计,导致算法最大缺点是数据稀疏性问题,因此传统的相似度计算并不够准确。现通过检测服务内容特征和用户行为特征结合的方式来计算用户相似度,以提高相似度计算的准确度。基于以上分析,提出多维相似度计算下的检测推荐模型如图1所示。

图1 推荐模型

整个检测推荐模型主要由3个模块组成:模型建立模块、相似度计算模块和个性化检测推荐模块。模型建立模块主要完成原始检测数据预处理、协同过滤推荐模型训练和用户建模以及检测建模等功能。采用LDA主题模型来进行主题模型训练,得到用户主题模型特征向量和检测特征主题向量,据此生成用户模型和检测模型,然后用检测内容特征和用户行为特征结合的方式来计算用户相似度,最后按照KNN算法输出。相似度计算模块采用检测内容特征和用户行为特征结合的方式来计算用户相似度和检测相似度。个性化检测推荐模块根据相似度计算模块得到的相似度采用排序和Top-N的方法产生检测推荐列表。

3 算法分析

鉴于传统协同过滤算法所遇到的问题,现采用检测内容特征和用户行为特征结合的方式来计算用户相似度和检测相似度。

(1)用户相似度计算。由模型建立模块得到的用户模型将用户行为特征数据表示为per -son((A1,T1),(A2,T2),(A3,T3),…),其中A表示检测特征数据,T表示时间特征数据。用户间行为相似度sim(u,v)采用Jaccard计算公式: () () (,) () ()ui vi t ti nu nvesim u v nu nv α∈ ∩ = ∪ ∑ (1)式中,n(u)和n(v)分别为用户u、v产生的检测集合,tu,i和tv,i分别为用户u、v浏览检测i的时间,α为时间参数,取值0~1。这个公式表示如果2个用户在规定时间差范围内阅读了同一篇检测,那它们的相似度就很高。

除此之外,还要计算用户间内容相似度Cos(u,v),计算公式则采用余弦相似度计算方法:Cos(u,v)=`u`v/(|`u|×|`v|) (2)综合检测内容相似度和行为相似度得到最终用户相似度:

W(u,v)=αsim(u,v)+(1-α)cos(u,v) (3)式中,W(u,v)为用户u和v的相似度,α为相似度比例参数,由实验所得,取值范围为0~1。(2)检测相似度计算。检测相似度的计算方法与上面类似,也是由2部分组成。其中检测i和j的行为相似度sim(i,j)计算公式如下:

(4)式中,tu,i和tu,j分别为用户u浏览检测i和j的时间点,n(u)表示用户u浏览过的检测集合,m(i)和m(j)分别为浏览过检测i和j的用户集合,0

(5)综合可得检测相似度为:P(i,j)=αsim(i,j)+(1-α)cos(i,j)

(6)式中,相似度比例系数α取值范围为0~1。由此得到了最终的用户相似度和检测相似度。4 系统总体设计与实现

根据需求分析设计的推荐系统主要包含3个模块:数据存储系统、个性化检测推荐子系统和客户端UI展示子系统。结构图如图1所示。

(1)数据存储系统。数据存储系统主要是将用户行为数据记录到后台日志数据库中,存储推荐算法产生的数据文件。使用Python中的Qtsql模块设计数据库。

(2)个性化检测推荐子系统。个性化检测推荐子系统将包含3个模块:模型建立模块、相似度计算模块和个性化推荐模块。

(3)客户端UI展示子系统。客户端UI展示子系统主要从数据中读取之前所得的推荐结果,将其展示给用户。保证用户在浏览后都能看到新的推荐列表。客户端UI展示整体结构如图2所示。

图2 客户端UI展示子系统模型

客户端在具体设计时采用的是Pyqt5。并绑定Digia QT5应用框架,它可用于Python 3。客户端包含用户登录模块、检测管理模块和检测浏览模块等。

5 结语

鉴于单一推荐算法的局限性,本文通过对算法思想的融合来解决目前推荐系统领域的一些问题。由于相似度计算对于检测推荐有决定性作用,以余弦相似度和Jaccard相似度结合的方式来计算用户相似度和检测相似度,同时提出以多维相似度的计算来解决用户数据稀疏性问题。采用Python编程语言实现基于多维相似度的大数据检测推荐算法系统。

参考文献

[1] 王国霞,刘贺平.个性化推荐系统综述[J].计算机工程与应用,2012(7):66-76.

[2] 陈滢.基于个性化推荐技术的“新闻客户端”的使用与满足研究[D].广州:暨南大学,2015.

[3] 陈军,谢卫红,陈扬森.国内外大数据推荐算法领域前沿动态研究[J].中国科技论坛,2018(1):173-181.

[4] 孙天昊,黎安能,李明,等.基于Hadoop分布式改进聚类协同过滤推荐算法研究[J].计算机工程与应用,2015,51(15):124-128.

[5] 孙远帅.基于大数据的推荐算法研究[D].厦门:厦门大学,2014

[6] 石岩松.基于大数据的个性化推荐系统研究[J].通讯世界,2019(4):81-82.

python对数据相似度分析算法库_基于多维相似度的大数据检测推荐算法系统相关推荐

  1. Python+Django+Mysql个性化图书推荐系统 图书在线推荐系统 基于用户、项目、内容的协同过滤推荐算法(带设计报告)

    Python+Django+Mysql个性化图书推荐系统 图书在线推荐系统 基于用户.项目.内容的协同过滤推荐算法 WebBookRSM.Python python实现协同过滤推荐算法实现 源代码下载 ...

  2. 基于计算思维的python程序设计王彬丽期末考试题库_基于计算思维的程序设计类课程教学实践...

    基于计算思维的程序设计类课程教学实践 滕剑锋 王玉锋 王 猛 刘二林 [摘 要] 摘 要 很多专业开设了程序设计类课程.如何在该课程教学中培养学 生的创新能力是大家普遍考虑的问题.计算思维的提出对于解 ...

  3. 在线车辆推荐网 Python语言+Django框架+Mysql数据库 基于用户、物品的协同过滤推荐算法 开发在线汽车推荐系统 二手车网站推荐系统 分布式大数据、机器学习、人工智能开发

    在线车辆推荐网 Python语言+Django框架+Mysql数据库 基于用户.物品的协同过滤推荐算法 开发在线汽车推荐系统 二手车网站推荐系统 分布式大数据.机器学习.人工智能开发 CarRecom ...

  4. java的算法库_利用Java写开源库 覆盖70多种推荐算法

    描述 在经过一年多的开发工作之后,LibRec 3.0 版本终于发布了.LibRec 是一个基于 Java 的开源算法工具库,覆盖了 70 余个各类型推荐算法,可以有效解决评分预测和物品推荐两大关键的 ...

  5. Java开发在线购物推荐网 购物商城推荐系统 基于用户、物品的协同过滤推荐算法 京东商城爬虫 SSM(Spring+SpringMVC+Mybatis)开发框架 大数据、人工智能、机器学习项目开发

    Java开发在线购物推荐网 购物商城推荐系统 基于用户.物品的协同过滤推荐算法 京东商城爬虫 SSM(Spring+SpringMVC+Mybatis)开发框架 大数据.人工智能.机器学习项目开发Sh ...

  6. Java语言开发在线美食推荐网 美食推荐系统 基于用户、物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis框架 人工智能、大数据、机器学习项目开发

    Java语言开发在线美食推荐网 美食推荐系统 基于用户.物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis框架 人工智能.大数据.机器学习项目开发FoodRecomm ...

  7. 数据查询和业务流分开_基于大数据的舆情分析系统架构 - 架构篇

    前言 互联网的飞速发展促进了很多新媒体的发展,不论是知名的大V,明星还是围观群众都可以通过手机在微博,朋友圈或者点评网站上发表状态,分享自己的所见所想,使得"人人都有了麦克风".不 ...

  8. 中国网库董事长王海波:实体经济也需要大数据

    8月14日消息,中国网库董事长王海波认为:"大数据在应用的过程中,每家公司都有不同的出发点.可以用大数据做搜索,做精准广告营销--我希望站在大数据应用的角度,思考下我们实体企业,做家具的.卖 ...

  9. Python+Django+Mysql简单在线课程推荐系统 基于用户、项目、内容的协同过滤推荐算法 SimpleOnlineCourseCFRSPyth python实现协同过滤推荐算法实现源代码下载

    Python+Django+Mysql简单在线课程推荐系统 基于用户.项目.内容的协同过滤推荐算法 SimpleOnlineCourseCFRSPyth python实现协同过滤推荐算法实现源代码下载 ...

  10. Python+Django+Mysql个性化二手车推荐系统 汽车推荐系统 基于用户、项目、内容的协同过滤推荐算法 WebCarCFRSPython python实现协同过滤推荐算法实现源代码下载

    Python+Django+Mysql个性化二手车推荐系统 汽车推荐系统 基于用户.项目.内容的协同过滤推荐算法 WebCarCFRSPython python实现协同过滤推荐算法实现源代码下载 一. ...

最新文章

  1. 【摄像头】摄像头IRCUT滤光片
  2. VSCODE常用开发环境配置----保存
  3. 数据库学习day_03:关联关系/ 关联查询/ JDBC
  4. Android Activity启动模式,回退栈管理!
  5. antd menu收缩时二级菜单不跟随的问题。
  6. webpack 打包编译优化之路
  7. 产品所有者也应该是Scrum教练吗?
  8. ORACLE PL/SQL 实例精解之第二章 通用编程语言基础
  9. Linux中Redis的卸载
  10. 数组练习:各种数组方法的使用
  11. PTA:7-1 还原二叉树 (25 分)
  12. PictureBox滚动条、鼠标中轴滚动
  13. Mac实用软件及功能总结
  14. PERT网络分析法(计划评估和审查技术)
  15. Android Tombstone/Crash的log分析和定位(墓碑文件)
  16. php temp 删除,c盘temp文件夹可以删除吗
  17. Android编程 不显示菜单,网易MuMu模拟器不显示Menu(菜单)键的解决办法
  18. wifi跑包-不用U盘直接拷出握手包-开启虚拟机的ftp
  19. lol服务器位置2017,LOL怎么转区 LOL转区方法 LOL转区系统2017最新教程
  20. yocto(二)——bitbake工作流程

热门文章

  1. C语言,输入三个数求其平均值!
  2. 微信多开无法连接服务器,ios丨微信多开联网失败解决方法
  3. Google高级搜索语法指令
  4. web 系统发展历程
  5. HTML导航如何加下划线,HTML怎么设置下划线?html文字加下划线方法
  6. 计算机装系统找不到硬盘分区,解决安装系统找不到硬盘的问题(图文)
  7. 智能云输入法 卸载残留问题
  8. CAD中画一条直线与两个圆相切
  9. 雷达测速仪的原理及激光测速枪的应用
  10. 计算机电脑的时区怎么弄,电脑时区怎么设置,教你win10中国时区UTC设置教程