一种基于信息安全专业社交网络平台的推荐算法.pdf

上传人:b*** 文档编号:1566862 上传时间:2018-06-25 格式:PDF 页数:11 大小:484.33KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310068104.1

申请日:

2013.03.04

公开号:

CN103106285A

公开日:

2013.05.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130304|||公开

IPC分类号:

G06F17/30; G06F21/50(2013.01)I

主分类号:

G06F17/30

申请人:

中国信息安全测评中心; 上海三零卫士信息安全有限公司

发明人:

刘晖; 赵向辉; 易锦; 刘彦钊; 田雯; 叶林; 曾昭沛; 罗宁

地址:

100085 北京市海淀区上地西路8号院1号楼

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及一种基于信息安全专业社交网络平台的推荐算法,主要由以下步骤组成:(1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,收集用户的偏好信息是系统推荐效果基础的决定因素,用户采用各种方式向系统提供自己的偏好信息;(2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐;(3)相似度的计算。本发明有益效果为:实现了建立更好的推荐模式,让用户体验到他所关注的人才圈子内推荐的内容更加个性化;本算法混合单纯的协同过滤和基于内容的方法,提升了性能,可以提供更准确的推荐,也可以克服一些推荐系统中,如冷启动和稀疏性问题的常见问题。

权利要求书

权利要求书一种基于信息安全专业社交网络平台的推荐算法,其特征在于,主要由以下步骤组成:
(1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,收集用户的偏好信息是系统推荐效果基础的决定因素,用户采用各种方式向系统提供自己的偏好信息;
(2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这两种方法都要计算相似度;
生成推荐的过程主要由设置的三个部件组成:
内容分析器:从漏洞信息中提取影响用户关注度的重要信息用一种适当的权重来表示,例如漏洞严重级别、攻击复杂度、关联产品、所属厂商、关联补丁、利用代码、恶意代码;
文件学习器:该模块收集、泛化代表用户偏好的数据,生成用户概要信息,通常采用机器学习方法从用户之前关注的漏洞信息中推出一个表示用户关注的模型;
过滤部件:通过学习用户概要信息,匹配用户概要信息和商品信息,推荐相关的商品,结果是一个二元的连续型的相关判断,后者将生成一个用户可能感兴趣的潜在商品评分列表;
(3)相似度的计算:在推荐的场景中,在用户与物品偏好的二维矩阵中,将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。

说明书

说明书一种基于信息安全专业社交网络平台的推荐算法
技术领域
本发明涉及信息安全技术领域的专业社交网络平台实现面向人才、交友、厂商、漏洞信息等推荐实现方法,尤其涉及一种基于信息安全专业社交网络平台的推荐算法。
背景技术
社交网络是在互联网上与其他人相联系的一个平台,社交网络站点通常围绕用户的基本信息而运作,用户基本信息是指有关用户喜欢的事、不喜欢的事、兴趣、爱好、学校、职业或任何其它共同点的集合,通常,这些站点提供不同级别的隐私控制。本专利的考虑,主要是采用改良的混合协同过滤和基于内容过滤算法实现方法的创新。
推荐系统或推荐引擎是根据用户的兴趣特点和行为,向用户推荐用户感兴趣的信息和商品。随着信息以及商品数量和种类快速增长,用户需要花费大量的时间才能找到自己想要的信息或商品,这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的用户不断流失,为了解决这些问题,推荐系统应运而生,推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站或社交网站为用户提供完全个性化的决策支持和信息服务。推荐系统的算法一般有以下两种方法:
(1)集体智慧和协同过滤:集体智慧是指在大量的人群的行为和数据中收集答案,帮助你对整个人群得到统计意义上的结论,这些结论是我们在单个个体上无法得到的,它往往是某种趋势或者人群中共性的部分;协同过滤是基于协同过滤方法收集和分析大量的信息,对用户的行为,活动或喜好,并预测哪些用户会喜欢的基础上其他用户的相似性,协同过滤方法的一个主要优点是它不依赖于机器分析的内容,因此,它能够准确地推荐复杂的项目,如电影,而不需要“理解”的项目本身。协同过滤方法常常会出现三个问题:①冷启动:这些系统通常需要大量的用户数据,以得到准确的推荐;②性能:这些系统往往都有数以亿计的用户和产品,因此,往往需要大量的计算和高性能服务器支撑;③稀疏:在各大电子商务网站上销售的物品的数量是非常大的,最活跃的用户将只评价了数据库的整体的一小部分。协同过滤算法常常采用矩阵分解,低秩矩阵近似技术。
(2)基于内容的过滤:推荐系统设计时,另一个常用的方法是基于内容的过滤,基于内容的过滤方法是基于将要推荐项目的有关内容的信息和特征,换言之,这些算法尝试建议是相似的那些用户喜欢在过去(或在本研究)的项目;特别是各种候选与先前评估项目是由用户和推荐的最佳匹配的资料的资料进行比较,基本上,这些方法使用表征资料系统内的一个项目的配置文件(即,一组离散的属性和特征);系统将创建一个基于内容的用户档案,根据项目特点的加权矢量的权重表示给用户的每个特征的重要性,可以计算从单独评估的内容使用的各种技术的载体。用户的直接反馈,通常通过类似喜欢/不喜欢“按钮的形式,可以使用较高或较低的权重分配某些属性(使用Rocchio反馈分类技术或其他类似的技术)的重要性。基于内容过滤的关键问题是系统是否能够挖掘用户对某一种内容的喜好和行为,扩展到其他类型的内容上做出正确的预测。
信息安全领域的专业社交网络由于推荐的信息有以下特点:
(1)推荐内容之间错综复杂的关系,最重要的内容是海量的信息安全内容,而内容本身又是具有较结构化的数据,各类数据之间本身就存在固有的错综复杂的关联关系;
(2)用户的活跃程度低:在传统的推荐系统中,用户登录一个推荐系统,就是为了选择一些他想要的资源,而在社交网络推荐中,许多用户上SNS,更多的时间处于“看信息”,因此很难直接获得他们的显式反馈信息,也难以对他们的兴趣进行学习和预测;
(3)数据的稀疏性和不对称性:在传统的推荐问题中,用户和资源一般是同一个数量级的,但是在本推荐问题中,由于数据海量的特点,信息的数量和增长速度远远大于用户的数量和增长速度。
(4)用户兴趣的动态变化:用户关注的漏洞或话题一直紧随信息安全的发展,因此SNS上关注点不断变化,用户的兴趣也随之变化,在传统推荐问题中,往往是用户根据兴趣选择资源,在推荐中,则是不断出现的关注漏洞改变着用户的兴趣,再由用户选择关注的漏洞,因此,用户的兴趣一直在动态变化,很难找到一个用户长时间感兴趣的话题。
综上所述,在信息安全的专业社交网络中不能仅仅采用协同过滤的方法,而忽视推送内容本身具有的固有的复杂关联关系;也不能仅仅基于海量信息的内容本身的推荐。因而,针对以上方面,本发明提出改良的这两种算法结合的综合算法。
发明内容
针对以上缺陷,本发明提供一种基于信息安全专业社交网络平台的推荐算法,主要是采用改良的混合协同过滤和基于内容过滤算法实现方法的创新,在电子商务网站或社交网站平台上,用户和用户之间,实现了建立更好的推荐模式,让用户体验到他所关注的人才圈子内推荐的内容更加个性化。
为实现上述目的,本发明采用以下技术方案:
一种基于信息安全专业社交网络平台的推荐算法,主要由以下步骤组成:
(1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,收集用户的偏好信息是系统推荐效果基础的决定因素,用户采用各种方式向系统提供自己的偏好信息;
(2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这两种方法都要计算相似度;
生成推荐的过程主要由设置的三个部件组成:
内容分析器:从漏洞信息中提取影响用户关注度的重要信息用一种适当的权重来表示,例如漏洞严重级别、攻击复杂度、关联产品、所属厂商、关联补丁、利用代码、恶意代码;
文件学习器:该模块收集、泛化代表用户偏好的数据,生成用户概要信息,通常采用机器学习方法从用户之前关注的漏洞信息中推出一个表示用户关注的模型;
过滤部件:通过学习用户概要信息,匹配用户概要信息和商品信息,推荐相关的商品,结果是一个二元的连续型的相关判断,后者将生成一个用户可能感兴趣的潜在商品评分列表;
(3)相似度的计算:在推荐的场景中,在用户与物品偏好的二维矩阵中,将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。
本发明所述的基于信息安全专业社交网络平台的推荐算法的有益效果为:实现了建立更好的推荐模式,让用户体验到他所关注的人才圈子内推荐的内容更加个性化;本算法混合单纯的协同过滤和基于内容的方法,提升了性能,可以提供更准确的推荐,也可以克服一些推荐系统中,如冷启动和稀疏性问题的常见问题。
附图说明
下面根据附图对本发明作进一步详细说明。
图1是本发明实施例所述基于信息安全专业社交网络平台的推荐算法部分流程示意图。
具体实施方式
如图1所示,本发明实施例所述的基于信息安全专业社交网络平台的推荐算法,主要由以下步骤组成:
(1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,如何收集用户的偏好信息成为系统推荐效果最基础的决定因素,用户有很多方式向系统提供自己的偏好信息,如下表所示:

以上列举的用户行为都是通用的,推荐引擎设计人员可根据自己应用的特点添加特殊的用户行为,并用他们表示用户对漏洞信息的喜好。
(2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这就是最典型的CF的两个分支:基于用户的CF和基于物品的CF,这两种方法都需要计算相似度,下面为最基本的几种计算相似度的方法。
生成推荐的过程主要依靠三个部件:
第一、内容分析器:从原先的漏洞信息中提取影响用户关注度的重要信息用一种适当的权重来表示,例如漏洞严重级别、攻击复杂度、关联产品、所属厂商、关联补丁、利用代码、恶意代码,该表示形式将作为属性学习器和过滤部件的输入结点。
第二、文件学习器:该模块收集、泛化代表用户偏好的数据,生成用户概要信息,通常采用机器学习方法从用户之前关注的漏洞信息中推出一个表示用户关注的模型,训练样例是那些附有用户正面和负面反馈信息的网页。
第三、过滤部件:通过学习用户概要信息,匹配用户概要信息和商品信息,推荐相关的商品,结果是一个二元的连续型的相关判断(相似度度量),后者将生成一个用户可能感兴趣的潜在商品评分列表,该匹配是计算原型向量的余弦相似度。
(3)相似度的计算:关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。
在推荐的场景中,在用户‑物品偏好的二维矩阵中,可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,下面详细介绍几种常用的相似度计算方法:
欧几里德距离(Euclidean Distance)
最初用于计算欧几里德空间中两个点的距离,假设x,y是n维空间的两个点,它们之间的欧几里德距离是:可以看出,当n=2时,欧几里德距离就是平面上两个点的距离。
当用欧几里德距离表示相似度,一般采用以下公式进行转换:距离越小,相似度越大;
皮尔逊相关系数(Pearson Correlation Coefficient)
皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在[‑1,+1]之间。
sx,sy是x和y的样品标准偏差。
Cosine相似度(Cosine Similarity)
Cosine相似度被广泛应用于计算文档数据的相似度:
Tanimoto系数(Tanimoto Coefficient)
Tanimoto系数也称为Jaccard系数,是Cosine相似度的扩展,也多用于计算文档数据的相似度:
基于Apache Mahout实现高效的协同过滤推荐
Apache Mahout是Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,并且,在Mahout的最近版本中还加入了对Apache Hadoop的支持,使这些算法可以更高效的运行在云计算环境中。Apache Mahout中提供的一个协同过滤算法的高效实现,它是一个基于Java实现的可扩展的,高效的推荐引擎。
数据模型:Data Model Preference
基于协同过滤的推荐引擎的输入是用户的历史偏好信息,在Mahout里它被建模为Preference(接口),一个Preference就是一个简单的三元组<用户ID,物品ID,用户偏好>,它的实现类是GenericPreference,可以通过以下语句创建一个GenericPreference。
GenericPreference preference=new GenericPreference(123,456,3.0f);
这其中,123是用户ID,long型;456是物品ID,long型;3.0f是用户偏好,float型。从这个例子可以看出,单单一个GenericPreference的数据就占用20bytes,所以会发现如果只简单实用数组Array加载用户偏好数据,必然占用大量的内存,Mahout在这方面做了一些优化,它创建了PreferenceArray(接口)保存一组用户偏好数据,为了优化性能,Mahout给出了两个实现类,GenericUserPreferenceArray和GenericItemPreferenceArray,分别按照用户和物品本身对用户偏好进行组装,这样就可以压缩用户ID或者物品ID的空间。
PreferenceArray userPref=new GenericUserPreferenceArray(2);//size=2
userPref.setUserID(0,1L);
userPref.setItemID(0,101L);//<1L,101L,2.0f>
userPref.setValue(0,2.0f);
userPref.setItemID(1,102L);//<1L,102L,4.0f>
userPref.setValue(1,4.0f);
Preference pref=userPref.get(1);//<1L,102L,4.0f>
为了提高性能Mahout还构建了自己的HashMap和Set:FastByIDMap和FastIDSet。
DataModel
Mahout的推荐引擎实际接受的输入是DataModel,它是对用户偏好数据的压缩表示,通过创建内存版DataModel的语句我们可以看出:
DataModel model=new GenericDataModel(FastByIDMap<PreferenceArray>map);
他保存在一个按照用户ID或者物品ID进行散列的PreferenceArray,而PreferenceArray中对应保存着这个用户ID或者物品ID的所有用户偏好信息。
DataModel是用户喜好信息的抽象接口,它的具体实现支持从任意类型的数据源抽取用户喜好信息,具体实现包括内存版的GenericDataModel,支持文件读取的FileDataModel和支持数据库读取的JDBCDataModel,下面看看如何创建各种DataModel。
创建各种DataModel
//In‑memory DataModel‑GenericDataModel
FastByIDMap<PreferenceArray>preferences=new FastByIDMap<PreferenceArray>();
PreferenceArray prefsForUser1=new GenericUserPreferenceArray(10);
prefsForUser1.setUserID(0,1L);
prefsForUser1.setItemID(0,101L);
prefsForUser1.setValue(0,3.0f);
prefsForUser1.setItemID(1,102L);
prefsForUser1.setValue(1,4.5f);
…(8more)
preferences.put(1L,prefsForUser1);//use userID as the key
…(more users)
DataModel model=new GenericDataModel(preferences);
//File‑based DataModel‑FileDataModel
DataModel dataModel=new FileDataModel(new File(″preferences.csv″);
//Database‑based DataModel‑MySQLJDBCDataModel
MysqlDataSource dataSource=new MysqlDataSource();
dataSource.setServerName(″my_user″);
dataSource.setUser(″my_password″);
dataSource.setPassword(″my_database_host″);
JDBCDataModel dataModel=new MySQLJDBCDataModel(dataSource,″my_prefs_table″,
″my_user_column″,″my_item_column″,″my_pref_value_column″);
支持文件读取的FileDataModel,Mahout没有对文件的格式做过多的要求,只要文件的内容满足以下格式:
每一行包括用户ID,物品ID,用户偏好
逗号隔开或者Tab隔开
*.zip和*.gz文件会自动解压缩(Mahout建议在数据量过大时采用压缩的数据存储)
支持数据库读取的JDBCDataModel,Mahout提供一个默认的MySQL的支持,它对用户偏好数据的存放有以下简单的要求:
用户ID列需要是BIGINT而且非空
物品ID列需要是BIGINT而且非空
用户偏好列需要是FLOAT
建议在用户ID和物品ID上建索引。
实现推荐:Recommender
介绍Mahout提供的协同过滤的推荐策略,选择三种:User CF, Item CF。
这里着重看基于Mahout实现User CF的推荐策略,从一个例子入手:
DataModel model=new FileDataModel(new File(″preferences.dat″));
UserSimilarity similarity=new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood=new NearestNUserNeighborhood(100,similarity,model);
Recommender recommender=new GenericUserBasedRecommender(model,neighborhood,similarity);
从文件建立DataModel,采用前面介绍的FileDataModel,这里假设用户的喜好信息存放在preferences.dat文件中。
基于用户偏好数据计算用户的相似度,清单中采用的是PearsonCorrelationSimilarity,前面章节曾详细介绍了各种计算相似度的方法,Mahout中提供了基本的相似度的计算,它们都UserSimilarity这个接口,实现用户相似度的计算,包括下面这些常用的:
PearsonCorrelationSimilarity:基于皮尔逊相关系数计算相似度
EuclideanDistanceSimilarity:基于欧几里德距离计算相似度
TanimotoCoefficientSimilarity:基于Tanimoto系数计算相似度
UncerteredCosineSimilarity:计算Cosine相似度
ItemSimilarity也是类似的:
根据建立的相似度计算方法,找到邻居用户。这里找邻居用户的方法根据前面介绍的,也包括两种:“固定数量的邻居”和“相似度门槛邻居”计算方法,Mahout提供对应的实现:
NearestNUserNeighborhood:对每个用户取固定数量N的最近邻居
ThresholdUserNeighborhood:对每个用户基于一定的限制,取落在相似度门限内的所有用户为邻居。
基于DataModel,UserNeighborhood和UserSimilarity构建GenericUserBasedRecommender,实现User CF推荐策略。
DataModel model=new FileDataModel(new File(″preferences.dat″));
ItemSimilarity similarity=new PearsonCorrelationSimilarity(model);
Recommender recommender=new GenericItemBasedRecommender(model,similarity);
以上实施例是本发明较优选具体实施方式的一种,本领域技术人员在本技术方案范围内进行的通常变化和替换应包含在本发明的保护范围内。

一种基于信息安全专业社交网络平台的推荐算法.pdf_第1页
第1页 / 共11页
一种基于信息安全专业社交网络平台的推荐算法.pdf_第2页
第2页 / 共11页
一种基于信息安全专业社交网络平台的推荐算法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种基于信息安全专业社交网络平台的推荐算法.pdf》由会员分享,可在线阅读,更多相关《一种基于信息安全专业社交网络平台的推荐算法.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103106285 A(43)申请公布日 2013.05.15CN103106285A*CN103106285A*(21)申请号 201310068104.1(22)申请日 2013.03.04G06F 17/30(2006.01)G06F 21/50(2013.01)(71)申请人中国信息安全测评中心地址 100085 北京市海淀区上地西路8号院1号楼申请人上海三零卫士信息安全有限公司(72)发明人刘晖 赵向辉 易锦 刘彦钊田雯 叶林 曾昭沛 罗宁(54) 发明名称一种基于信息安全专业社交网络平台的推荐算法(57) 摘要本发明涉及一种基于信息安全专业社交网络平台的推。

2、荐算法,主要由以下步骤组成:(1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,收集用户的偏好信息是系统推荐效果基础的决定因素,用户采用各种方式向系统提供自己的偏好信息;(2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐;(3)相似度的计算。本发明有益效果为:实现了建立更好的推荐模式,让用户体验到他所关注的人才圈子内推荐的内容更加个性化;本算法混合单纯的协同过滤和基于内容的方法,提升了性能,可以提供更准确的推荐,也可以克服一些推荐系统中,如冷启动和稀疏性问题的常见问题。(51)Int.Cl.权利要求书1页。

3、 说明书8页 附图1页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书8页 附图1页(10)申请公布号 CN 103106285 ACN 103106285 A1/1页21.一种基于信息安全专业社交网络平台的推荐算法,其特征在于,主要由以下步骤组成:(1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,收集用户的偏好信息是系统推荐效果基础的决定因素,用户采用各种方式向系统提供自己的偏好信息;(2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这两种方法都要计算相似度;生成推荐的。

4、过程主要由设置的三个部件组成:内容分析器:从漏洞信息中提取影响用户关注度的重要信息用一种适当的权重来表示,例如漏洞严重级别、攻击复杂度、关联产品、所属厂商、关联补丁、利用代码、恶意代码;文件学习器:该模块收集、泛化代表用户偏好的数据,生成用户概要信息,通常采用机器学习方法从用户之前关注的漏洞信息中推出一个表示用户关注的模型;过滤部件:通过学习用户概要信息,匹配用户概要信息和商品信息,推荐相关的商品,结果是一个二元的连续型的相关判断,后者将生成一个用户可能感兴趣的潜在商品评分列表;(3)相似度的计算:在推荐的场景中,在用户与物品偏好的二维矩阵中,将一个用户对所有物品的偏好作为一个向量来计算用户之。

5、间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。权 利 要 求 书CN 103106285 A1/8页3一种基于信息安全专业社交网络平台的推荐算法技术领域0001 本发明涉及信息安全技术领域的专业社交网络平台实现面向人才、交友、厂商、漏洞信息等推荐实现方法,尤其涉及一种基于信息安全专业社交网络平台的推荐算法。背景技术0002 社交网络是在互联网上与其他人相联系的一个平台,社交网络站点通常围绕用户的基本信息而运作,用户基本信息是指有关用户喜欢的事、不喜欢的事、兴趣、爱好、学校、职业或任何其它共同点的集合,通常,这些站点提供不同级别的隐私控制。本专利的考虑,主要是采用。

6、改良的混合协同过滤和基于内容过滤算法实现方法的创新。0003 推荐系统或推荐引擎是根据用户的兴趣特点和行为,向用户推荐用户感兴趣的信息和商品。随着信息以及商品数量和种类快速增长,用户需要花费大量的时间才能找到自己想要的信息或商品,这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的用户不断流失,为了解决这些问题,推荐系统应运而生,推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站或社交网站为用户提供完全个性化的决策支持和信息服务。推荐系统的算法一般有以下两种方法:0004 (1)集体智慧和协同过滤:集体智慧是指在大量的人群的行为和数据中收集答案,帮助你对整个。

7、人群得到统计意义上的结论,这些结论是我们在单个个体上无法得到的,它往往是某种趋势或者人群中共性的部分;协同过滤是基于协同过滤方法收集和分析大量的信息,对用户的行为,活动或喜好,并预测哪些用户会喜欢的基础上其他用户的相似性,协同过滤方法的一个主要优点是它不依赖于机器分析的内容,因此,它能够准确地推荐复杂的项目,如电影,而不需要“理解”的项目本身。协同过滤方法常常会出现三个问题:冷启动:这些系统通常需要大量的用户数据,以得到准确的推荐;性能:这些系统往往都有数以亿计的用户和产品,因此,往往需要大量的计算和高性能服务器支撑;稀疏:在各大电子商务网站上销售的物品的数量是非常大的,最活跃的用户将只评价了。

8、数据库的整体的一小部分。协同过滤算法常常采用矩阵分解,低秩矩阵近似技术。0005 (2)基于内容的过滤:推荐系统设计时,另一个常用的方法是基于内容的过滤,基于内容的过滤方法是基于将要推荐项目的有关内容的信息和特征,换言之,这些算法尝试建议是相似的那些用户喜欢在过去(或在本研究)的项目;特别是各种候选与先前评估项目是由用户和推荐的最佳匹配的资料的资料进行比较,基本上,这些方法使用表征资料系统内的一个项目的配置文件(即,一组离散的属性和特征);系统将创建一个基于内容的用户档案,根据项目特点的加权矢量的权重表示给用户的每个特征的重要性,可以计算从单独评估的内容使用的各种技术的载体。用户的直接反馈,通。

9、常通过类似喜欢/不喜欢“按钮的形式,可以使用较高或较低的权重分配某些属性(使用Rocchio反馈分类技术或其他类似的技术)的重要性。基于内容过滤的关键问题是系统是否能够挖掘用户对某一种内容的喜好和行为,扩展到其他类型的内容上做出正确的预测。0006 信息安全领域的专业社交网络由于推荐的信息有以下特点:说 明 书CN 103106285 A2/8页40007 (1)推荐内容之间错综复杂的关系,最重要的内容是海量的信息安全内容,而内容本身又是具有较结构化的数据,各类数据之间本身就存在固有的错综复杂的关联关系;0008 (2)用户的活跃程度低:在传统的推荐系统中,用户登录一个推荐系统,就是为了选择一。

10、些他想要的资源,而在社交网络推荐中,许多用户上SNS,更多的时间处于“看信息”,因此很难直接获得他们的显式反馈信息,也难以对他们的兴趣进行学习和预测;0009 (3)数据的稀疏性和不对称性:在传统的推荐问题中,用户和资源一般是同一个数量级的,但是在本推荐问题中,由于数据海量的特点,信息的数量和增长速度远远大于用户的数量和增长速度。0010 (4)用户兴趣的动态变化:用户关注的漏洞或话题一直紧随信息安全的发展,因此SNS上关注点不断变化,用户的兴趣也随之变化,在传统推荐问题中,往往是用户根据兴趣选择资源,在推荐中,则是不断出现的关注漏洞改变着用户的兴趣,再由用户选择关注的漏洞,因此,用户的兴趣一。

11、直在动态变化,很难找到一个用户长时间感兴趣的话题。0011 综上所述,在信息安全的专业社交网络中不能仅仅采用协同过滤的方法,而忽视推送内容本身具有的固有的复杂关联关系;也不能仅仅基于海量信息的内容本身的推荐。因而,针对以上方面,本发明提出改良的这两种算法结合的综合算法。发明内容0012 针对以上缺陷,本发明提供一种基于信息安全专业社交网络平台的推荐算法,主要是采用改良的混合协同过滤和基于内容过滤算法实现方法的创新,在电子商务网站或社交网站平台上,用户和用户之间,实现了建立更好的推荐模式,让用户体验到他所关注的人才圈子内推荐的内容更加个性化。0013 为实现上述目的,本发明采用以下技术方案:00。

12、14 一种基于信息安全专业社交网络平台的推荐算法,主要由以下步骤组成:0015 (1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予推荐,收集用户的偏好信息是系统推荐效果基础的决定因素,用户采用各种方式向系统提供自己的偏好信息;0016 (2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这两种方法都要计算相似度;0017 生成推荐的过程主要由设置的三个部件组成:0018 内容分析器:从漏洞信息中提取影响用户关注度的重要信息用一种适当的权重来表示,例如漏洞严重级别、攻击复杂度、关联产品、所属厂商、关联补丁、利用。

13、代码、恶意代码;0019 文件学习器:该模块收集、泛化代表用户偏好的数据,生成用户概要信息,通常采用机器学习方法从用户之前关注的漏洞信息中推出一个表示用户关注的模型;0020 过滤部件:通过学习用户概要信息,匹配用户概要信息和商品信息,推荐相关的商品,结果是一个二元的连续型的相关判断,后者将生成一个用户可能感兴趣的潜在商品评分列表;0021 (3)相似度的计算:在推荐的场景中,在用户与物品偏好的二维矩阵中,将一个用说 明 书CN 103106285 A3/8页5户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。0022 本发。

14、明所述的基于信息安全专业社交网络平台的推荐算法的有益效果为:实现了建立更好的推荐模式,让用户体验到他所关注的人才圈子内推荐的内容更加个性化;本算法混合单纯的协同过滤和基于内容的方法,提升了性能,可以提供更准确的推荐,也可以克服一些推荐系统中,如冷启动和稀疏性问题的常见问题。附图说明0023 下面根据附图对本发明作进一步详细说明。0024 图1是本发明实施例所述基于信息安全专业社交网络平台的推荐算法部分流程示意图。具体实施方式0025 如图1所示,本发明实施例所述的基于信息安全专业社交网络平台的推荐算法,主要由以下步骤组成:0026 (1)收集用户偏好:从用户的行为和偏好中发现规律,并基于此给予。

15、推荐,如何收集用户的偏好信息成为系统推荐效果最基础的决定因素,用户有很多方式向系统提供自己的偏好信息,如下表所示:0027 说 明 书CN 103106285 A4/8页60028 以上列举的用户行为都是通用的,推荐引擎设计人员可根据自己应用的特点添加特殊的用户行为,并用他们表示用户对漏洞信息的喜好。0029 (2)分析内容特性:当已经对用户行为进行分析得到用户喜好后,根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这就是最典型的CF的两个分支:基于用户的CF和基于物品的CF,这两种方法都需要计算相似度,下面为最基本的几种计算相似度的方法。0030 生成推荐的过程主要依靠三个。

16、部件:0031 第一、内容分析器:从原先的漏洞信息中提取影响用户关注度的重要信息用一种适当的权重来表示,例如漏洞严重级别、攻击复杂度、关联产品、所属厂商、关联补丁、利用说 明 书CN 103106285 A5/8页7代码、恶意代码,该表示形式将作为属性学习器和过滤部件的输入结点。0032 第二、文件学习器:该模块收集、泛化代表用户偏好的数据,生成用户概要信息,通常采用机器学习方法从用户之前关注的漏洞信息中推出一个表示用户关注的模型,训练样例是那些附有用户正面和负面反馈信息的网页。0033 第三、过滤部件:通过学习用户概要信息,匹配用户概要信息和商品信息,推荐相关的商品,结果是一个二元的连续型的。

17、相关判断(相似度度量),后者将生成一个用户可能感兴趣的潜在商品评分列表,该匹配是计算原型向量的余弦相似度。0034 (3)相似度的计算:关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。0035 在推荐的场景中,在用户-物品偏好的二维矩阵中,可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,下面详细介绍几种常用的相似度计算方法:0036 欧几里德距离(Euclidean Distance)0037 最初用于计算欧几里德空间中两个点的距离,假设x,。

18、y是n维空间的两个点,它们之间的欧几里德距离是:可以看出,当n2时,欧几里德距离就是平面上两个点的距离。0038 当用欧几里德距离表示相似度,一般采用以下公式进行转换:距离越小,相似度越大;0039 皮尔逊相关系数(Pearson Correlation Coefficient)0040 皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在-1,+1之间。0041 sx,sy是x和y的样品标准偏差。0042 Cosine相似度(Cosine Similarity)0043 Cosine相似度被广泛应用于计算文档数据的相似度:0044 Tanimoto系数(Tanimoto Coe。

19、fficient)0045 Tanimoto系数也称为Jaccard系数,是Cosine相似度的扩展,也多用于计算文档数据的相似度:0046 基于Apache Mahout实现高效的协同过滤推荐0047 Apache Mahout是Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,并且,在Mahout的最近版本中还加入了对Apache Hadoop的支持,使这些算法可以更高效的运行在云计算环境中。Apache Mahout中提供的一个协同过滤算法的高效实现,它是一个基于Java实现的可扩展的,高效的推荐引擎。0048 。

20、数据模型:Data Model Preference0049 基于协同过滤的推荐引擎的输入是用户的历史偏好信息,在Mahout里它被建模为Preference(接口),一个Preference就是一个简单的三元组,它的实现类是GenericPreference,可以通过以下语句创建一个GenericPreference。0050 GenericPreference preferencenew GenericPreference(123,456,3.0f);0051 这其中,123是用户ID,long型;456是物品ID,long型;3.0f是用户偏好,float型。从这个例子可以看出,单单一个。

21、GenericPreference的数据就占用20bytes,说 明 书CN 103106285 A6/8页8所以会发现如果只简单实用数组Array加载用户偏好数据,必然占用大量的内存,Mahout在这方面做了一些优化,它创建了PreferenceArray(接口)保存一组用户偏好数据,为了优化性能,Mahout给出了两个实现类,GenericUserPreferenceArray和GenericItemPreferenceArray,分别按照用户和物品本身对用户偏好进行组装,这样就可以压缩用户ID或者物品ID的空间。0052 PreferenceArray userPrefnew Gener。

22、icUserPreferenceArray(2);/size20053 userPref.setUserID(0,1L);0054 userPref.setItemID(0,101L);/0055 userPref.setValue(0,2.0f);0056 userPref.setItemID(1,102L);/0057 userPref.setValue(1,4.0f);0058 Preference prefuserPref.get(1);/0059 为了提高性能Mahout还构建了自己的HashMap和Set:FastByIDMap和FastIDSet。0060 DataModel00。

23、61 Mahout的推荐引擎实际接受的输入是DataModel,它是对用户偏好数据的压缩表示,通过创建内存版DataModel的语句我们可以看出:0062 DataModel modelnew GenericDataModel(FastByIDMapmap);0063 他保存在一个按照用户ID或者物品ID进行散列的PreferenceArray,而PreferenceArray中对应保存着这个用户ID或者物品ID的所有用户偏好信息。0064 DataModel是用户喜好信息的抽象接口,它的具体实现支持从任意类型的数据源抽取用户喜好信息,具体实现包括内存版的GenericDataModel,支持。

24、文件读取的FileDataModel和支持数据库读取的JDBCDataModel,下面看看如何创建各种DataModel。0065 创建各种DataModel0066 /In-memory DataModel-GenericDataModel0067 F a s t B y I D M a p p r e f e r e n c e sn e w FastByIDMap();0068 PreferenceArray prefsForUser1new GenericUserPreferenceArray(10);0069 prefsForUser1.setUserID(0,1L);0070 pr。

25、efsForUser1.setItemID(0,101L);0071 prefsForUser1.setValue(0,3.0f);0072 prefsForUser1.setItemID(1,102L);0073 prefsForUser1.setValue(1,4.5f);0074 (8more)0075 preferences.put(1L,prefsForUser1);/use userID as the key0076 (more users)0077 DataModel modelnew GenericDataModel(preferences);说 明 书CN 103106285。

26、 A7/8页90078 /File-based DataModel-FileDataModel0079 DataModel dataModelnew FileDataModel(new File(preferences.csv);0080 /Database-based DataModel-MySQLJDBCDataModel0081 MysqlDataSource dataSourcenew MysqlDataSource();0082 dataSource.setServerName(my_user);0083 dataSource.setUser(my_password);0084 da。

27、taSource.setPassword(my_database_host);0085 JDBCDataModel dataModelnew MySQLJDBCDataModel(dataSource,my_prefs_table,0086 my_user_column,my_item_column,my_pref_value_column);0087 支持文件读取的FileDataModel,Mahout没有对文件的格式做过多的要求,只要文件的内容满足以下格式:0088 每一行包括用户ID,物品ID,用户偏好0089 逗号隔开或者Tab隔开0090 *.zip和*.gz文件会自动解压缩(Ma。

28、hout建议在数据量过大时采用压缩的数据存储)0091 支持数据库读取的JDBCDataModel,Mahout提供一个默认的MySQL的支持,它对用户偏好数据的存放有以下简单的要求:0092 用户ID列需要是BIGINT而且非空0093 物品ID列需要是BIGINT而且非空0094 用户偏好列需要是FLOAT0095 建议在用户ID和物品ID上建索引。0096 实现推荐:Recommender0097 介绍Mahout提供的协同过滤的推荐策略,选择三种:User CF, Item CF。0098 这里着重看基于Mahout实现User CF的推荐策略,从一个例子入手:0099 DataMod。

29、el modelnew FileDataModel(new File(preferences.dat);0100 UserSimilarity similaritynew PearsonCorrelationSimilarity(model);0101 UserNeighborhood neighborhoodnew NearestNUserNeighborhood(100,similarity,model);0102 Recommender recommendernew GenericUserBasedRecommender(model,neighborhood,similarity);01。

30、03 从文件建立DataModel,采用前面介绍的FileDataModel,这里假设用户的喜好信息存放在preferences.dat文件中。0104 基于用户偏好数据计算用户的相似度,清单中采用的是PearsonCorrelationSimilarity,前面章节曾详细介绍了各种计算相似度的方法,Mahout中提供了基本的相似度的计算,它们都UserSimilarity这个接口,实现用户相似度的计算,包括下面这些常用的:0105 PearsonCorrelationSimilarity:基于皮尔逊相关系数计算相似度说 明 书CN 103106285 A8/8页100106 Euclidea。

31、nDistanceSimilarity:基于欧几里德距离计算相似度0107 TanimotoCoefficientSimilarity:基于Tanimoto系数计算相似度0108 UncerteredCosineSimilarity:计算Cosine相似度0109 ItemSimilarity也是类似的:0110 根据建立的相似度计算方法,找到邻居用户。这里找邻居用户的方法根据前面介绍的,也包括两种:“固定数量的邻居”和“相似度门槛邻居”计算方法,Mahout提供对应的实现:0111 NearestNUserNeighborhood:对每个用户取固定数量N的最近邻居0112 Threshold。

32、UserNeighborhood:对每个用户基于一定的限制,取落在相似度门限内的所有用户为邻居。0113 基于DataModel,UserNeighborhood和UserSimilarity构建GenericUserBasedRecommender,实现User CF推荐策略。0114 DataModel modelnew FileDataModel(new File(preferences.dat);0115 ItemSimilarity similaritynew PearsonCorrelationSimilarity(model);0116 Recommender recommendernew GenericItemBasedRecommender(model,similarity);0117 以上实施例是本发明较优选具体实施方式的一种,本领域技术人员在本技术方案范围内进行的通常变化和替换应包含在本发明的保护范围内。说 明 书CN 103106285 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1