基于规则的推荐(共10篇)
基于规则的推荐 篇1
电子商务系统规模越来越大、商品越来越多, 让用户拥有了更大选择空间。同时用户必须在大量的无关信息中找寻自己所需商品, 这也增加了用户购买的难度。为了解决这种信息过载问题, 有效地指导用户在电子商务系统中方便的购物, 人们提出了电子商务个性化推荐系统技术。
1 电子商务推荐系统定义
电子商务推荐系统的定义为:“利用电子商务网站向客户提供商品信息和建议, 帮助用户决定应该购买什么产品, 模拟销售人员帮助客户完成购买过程。”推荐系统的当前工作就是根据一定的算法, 给出对目标用户的推荐项目。在网上购物环境下的以商品为推荐对象, 为用户推荐符合其兴趣爱好的各类产品, 如各种书籍、音像等。这种推荐系统也称电子商务个性化推荐系统, 简称电子商务推荐系统。
2 电子商务推荐系统的作用
商家通过推荐系统保持与客户的联系, 提高电子商务系统的访问量, 从而提高电子商务系统的销售能力。推荐系统主要通过如下三种途径增加销售:
2.1 将电子商务系统的浏览者转变为购买者
电子商务系统的访问者在浏览过程中经常并没有购买欲望, 电子商务推荐系统能够挖掘出一些潜在用户, 向他们推荐其感兴趣的商品, 从而将一些网站商品的浏览者变成实际的购买者。
2.2 提高电子商务系统的交叉销售能力
电子商务推荐系统在用户购买过程中向其推荐其他有价值的商品, 使用户购买自己确实需要但在购买过程中没有想到的商品。这种个性化电子商务能够发现用户的购买模式, 减少用户冗余访问, 从而有效提高电子商务系统的交叉销售能力。
2.3 建立和加强用户的忠诚度
如果电子商务推荐系统的推荐质量很高, 那么用户会再次访问这个网站, 并会推荐给其他人。由于这种“一对一”的服务, 进一步吸引了用户, 使用户在站点上逗留的时间加长, 有效地防止用户离去, 提高了用户对电子商务站点的忠诚度。
3 基于关联规则个性化商品推荐系统的实现
基于关联规则的推荐算法可以分为离线的关联规则推荐模型建立阶段和在线的关联规则推荐模型应用阶段。离线阶段使用各种关联规则挖掘算法建立关联规则推荐模型, 这一步比较费时, 但放在离线模块进行;在线阶段根据建立的关联规则推荐模型和用户的购买行为向用户提供实时的推荐服务。
3.1 关联规则
关联规则是一种发现数据集中项与项之间可能存在的相关性的挖掘技术。以下给出的数学模型用来描述关联规则的发现问题。设I={i1, i2, …, im}是项目集合, 其中的元素称为项 (item) 。记D为交易 (Transaction) T的集合, 这里交易T是项的集合, 并且T?I。对应每一个交易有唯一的标识, 如交易号, 记作T I D。设X是一个I中项的集合, 如果X?T, 那么称交易T包含X。一个关联规则是形如X?Y的蕴涵式, 这里X?I, Y?I, 并且X∩Y=φ。规则X?Y在交易数据库D中的支持度 (S upp or t) 是交易集中包含X和Y的交易数与所有交易数之比, 记为support (X?Y) , 即s up p or t (X?Y) =|{T:X∪Y?T, T∈D}|/|D|规则X?Y在交易集中的可信度 (Confidenc e) 是指包含X和Y的交易数与包含X的交易数之比, 记为con fidenc e (X?Y) , 即c on fidenc e (X?Y) =|{T:X∪Y?T, T∈D}|/|{T:X?T, T∈D}|给定一个交易集D, 挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度 (Minsupp和最小可信度 (Mi nconf) 的关联规则。可信度说明了蕴涵的强度, 而支持度说明了规则中所出现模式的频率。具有高可信度和强支持度的规则称为“强规则” (S t r o n g Rules) 。一般地, 给定一个事务数据库, 关联规则挖掘问题就是通过用户制定最小支持度和最小可信度来寻找强关联规则的过程。
3.2 模式产生
通过用户给定的最小支持度, 寻找所有频繁项目集, 即满足support不小于minsupport的所有项目子集。事实上, 这些频繁项目集可能具有包含关系。算法实现的过程如下:首先产生频繁1-项集L1, 然后是频繁2-项集L2, 直到有某个r值使得L r为空, 这时算法停止。这里在第k次循环中, 过程先产生候选k-项集的集合Ck, Ck中的每一个项集是对两个只有一个项不同的属于L k-1的频集做一个 (k-2) -连接来产生的。Ck中的项集是用来产生频集的候选集, 最后的频集Lk必须是Ck的一个子集。Ck中的每个元素需在交易数据库中进行验证来决定其是否加入L k, 这里的验证过程是算法性能的一个瓶颈。这个方法要求多次扫描可能很大的交易数据库, 即如果频集最多包含10个项, 那么就需要扫描交易数据库10遍, 这需要很大的I/O负载。很明显, 本算法有两个缺点:一是可能产生大量的候选集, 二是可能需要重复扫描数据库。为此, 可以引入修剪技术来减小候选集Ck的大小, 这样可以显著地改进生成所有频集算法的性能。经过挖掘发现的模式将按照结构化的方式存储在模式数据库中。一般地, 我们只关心那些不被其他频繁项目集所包含的最大频繁项目集的集合。发现所有的频繁项目集是形成关联规则的基础。
3.3 推荐过程
通过用户给定的最小可信度, 在每个最大频繁项目集中, 寻找confidence不小于Min confidence的关联规则。关联模式形成后, 使用关联规则推荐算法用顾客原始交易记录作为数据源, 通过数据预处理转换成标准顾客交易数据。产生top_n推荐的算法步骤如下:
(1) 根据交易数据库中每个用户购买过的所有商品的历史交易数据创建每个用户的事务记录, 构造事务数据库。
(2) 使用关联规则挖掘算法对构造的事务数据库进行关联规则挖掘, 记为关联规则集合R。
(3) 对每个当前用户u, 设置一个候选推荐集P u, 并将候选推荐集Pu初始化为空。
(4) 对每个当前用户u, 搜索关联规则集合R, 找出该用户支持的所有关联规则集合R I, 即关联规则左部的所有商品出现在用户u的当前购买数据和历史交易记录中。
(5) 将关联规则集合R I右部的所有商品加入候选推荐集Pu。
(6) 从候选推荐集Pu删除用户已经购买过的商品。
(7) 根据关联规则集合RI的置信度对候选推荐集Pu中所有候选项进行排序, 如果一个项在多条关联规则中出现, 则选择置信度最高的关联规则作为排序标准。
(8) 从候选推荐集P u中选择置信度最高的前N个项作为推荐结果返回给当前用户u。
4 结束语
近几年来, 随着电子商务的蓬勃发展, 商家竞争的日趋激烈, 电子商务推荐系统应运而生。通过推荐系统实现个性化服务已成为电子商务应用的一项新兴技术。关联规则作为数据挖掘的主要方法之一, 也引起了人们越来越多的关注。我们相信, 推荐系统技术的应用将使电子商务Web站点更人性化、更个性化、更能符合每个用户的喜好。
参考文献
[1]Peltier·J·W, Schibmwsky·J·A, Schuhz·D·E, et al.Interactive psychographics:cross-selling in the banking industry[J].Journal of Advertising Research, 2002, 4 (2) :7-22.
[2]Kirchner·H, Tolle·K·K, Krieter·J.Decision tree technique applied to pig farming data sets[J].Livestock Production Science, 2004, 12 (90) :191-200.
[3]王飞.面向电子商务的web数据挖掘的研究与设计[D].四川大学硕士论文, 2006:45-57.
[4]游文, 叶水生.电子商务推荐系统中的协同过滤推荐[J].计算机技术与发展, 2006, 16 (9) :70-72.
[5]刘丽霞, 庄奕琪.电子商务系统的数据挖掘与智能推荐预测的研究[J].计算机工程与科学, 2008, 30 (2) :92-95.
基于规则的推荐 篇2
至今也忘不了考上公务员那一年的喜悦。与其说是证明了自己的实力,还不如说是太幸运了。大学毕业以后,不幸的事太多了,现在都想不起来自己是怎么走过来的。之前总是在后悔大学报了那么个专业,但毕业5年之后恰恰是因为这冷门的专业,让我挤上了独木桥,成为多少人梦寐以求的公务员。可现在却越来越明白,快乐也仅限于那一年。进入这个队伍,才知道在这里并非“海阔凭鱼跃,天高任鸟飞”。五年的打工生涯让我养成张扬的个性,听到别人夸自己漂亮、有气质、能力强、有口才等等诸如此类的话,已经司空见惯,自认为勿沾沾自喜,保持对自己合理的评价便可。但最近,一位刻薄的女领导给我上了人生重要的一课。
由几个单位各抽调一人组成考评组对下属单位进行考评,在我们单位,我初来乍到,本没资格成为被抽调的人员,但直接领导家中有急事脱不了身,所以由我临时代为参加。得知本次考评由新上来的女领导带队,身为女性的我微微松了一口气,本着一向“不卑不亢”的作风,我很从容的参与到这支领导队伍当中。
高举检查的旗帜,其实检查的项目根本就是其次,事实证明了那句话“说你行你就行,说你不行你行也不行!”检查的其实就是看你会不会说,招待得领导高兴、舒服与否。我是检查团的成员,也成为被检单位处处恭维的对象,也正是自己的年轻、从容、言谈举止收放自如,结果抢了女领导的风头,大家常常忽略了话少又滴酒不沾的她,而将话题转向我这个“小喽啰”,更大的隐患是,最初的我竟然浑然不觉,舒舒服服的享受其中。结果可想而知,女领导由不愿意与我直接对话到后来的讽刺挖苦。
要感谢那些给你“小鞋”穿的人
咳!因为检查持续一周,我自认为还有“悔改”的机会,木讷的我经过初步分析,是女人嫉妒心在作怪!但是,第二天因为晚她2分钟集合,被判“迟到,忽视领导!”她大发雷霆,搞得我在大家面前颜面尽失,真想找地缝转进去,不要见人了!但是,我没勇气当众反驳不讲道理的她。事实已经告诉我:让领导不舒服,就得“被穿小鞋”,看你还敢不敢了!我红着脸,缩起脑袋,一咬牙,忍了!
接下来几天我是这样做的:能不说话就不说,能不笑就不笑,尽量表现的像什么事也没发生一样,深深的体会到什么叫夹着尾巴做人!这样才平息了她的怒气。
坚持到了最后,在结束的酒宴上,她对我进行了最后的说教:你们年轻人参加工作时间短,没什么经验,可以慢慢学,但是有一点千万要记住,想进步、想升职,不是单凭你表现好就行了,你得有人捧!
“亲爱的老姐,俺知道这条规矩,不用你告诉俺,您走到今天一定是某某人捧出来的,跟你的表现没什么关系,这一点没什么值得炫耀的。您说俺错了,俺承认,俺是不懂得韬光养晦,在需要的时候方可表现,这不招来了麻烦。俺要学的是如何把握这个尺度!”我忍,我忍,我忍住了这些话没说。
现在想起来,这位女领导还不算是很麻烦的那种,至少很直接,让你马上知道她对你的不满,换个城府够深的,给你小鞋穿上你还乐呵跑步呢!如此说来,我真该谢谢她!
女公务员爆料官场潜规则:这里面水简直太深了(2)
第一条必须有一个圈子
无论如何做都是画地为牢:不加入一个圈子,就成为所有人的敌人;加入一个圈子,就成为另一个圈子的敌人;加入两个圈子,就等于没有加入圈子。只有独孤求败的精英才可完全避免圈子的困扰——这种人通常只有一个圈子,圈子里只站着老板一个人。
第二条必须争取成为第二名
名次与帮助你的人数成正比--如果是第一名,将因缺乏帮助而成为第二名;而第二名永远是得道多助的位置,它的坏处就是永远不能成为第一名。
第三条必须理解职责的定义
职责是你必须要做的工作,但办公室的生存定律是,职责就是你必须要做的工作之外的所有工作。
第四条必须参加每一场饭局
如果参加,你在饭局上的发言会变成流言;如果不参加,你的流言会变成饭局上的发言。
第五条必须懂得八卦定理
和一位以上的同事成为亲密朋友,你的所有缺点与隐私将在办公室内公开;和一位以下的同事成为亲密朋友,所有人都会对你的缺点与隐私感兴趣。
第六条必须明白加班是一种艺术
如果你在上班时间做事,会因为没有加班而被认为不够勤奋;如果你不在上班时间做事,你会被认为工作效率低下而不得不去加班。
第七条必须熟练接受批评的方法
面对上司的判断,认为你没错,你缺乏认识问题的能力;认为你错了,你没有解决问题的能力--接受错误的最好方式就是对错误避而不谈。最后一条,不准和老板谈公正。
第八条必须理解“难得糊涂”的词义
糊涂让你被人认为没有主见,不糊涂让你被人认为难以相处--“难得糊涂”在于糊涂的时机,什么时候糊涂取决于你不糊涂的程度。
第九条必须明白集体主义是一种选择
如果你不支持大部分人的决定,想法一定不会被通过;如果你支持大部分人的决定,将减少晋升机会--有能力的人总是站在集体的反面。
女公务员爆料官场潜规则:这里面水简直太深了(3)
第十条必须论资排辈
如果不承认前辈,前辈不给你晋升机会;如果承认前辈,则前辈未晋升之前,你没晋升机会——论资排辈的全部作用,是为有一天你排在前面而做准备。第十一条必须禁止智力排行
天才应避免得罪庸才,虽然天才一定会得罪庸才——庸才总不太喜欢和天才相处。
第十二条必须学会不谈判的技巧
利益之争如果面对面解决,它就变得无法解决;如果不面对面解决,它就不会被真正解决。一个最终原则是,利益之争从来就不会被解决。第十三条必须理解秘密的存在意义
如果一件事成为秘密,它存在的目的就是被人知道;如果一个秘密所有人都知道,你必须说不知道;同理,如果一个秘密所有人都说不知道,则可以推断,所有人都知道。
第十四条必须理解开会是一种道
道可道,非常道;名可名,非常名。开会不能不发言,发言不能有内容。如果你的发言有内容,最好选择不发言--开会的目的是寻找一个解决问题的方法,在大部分情况下,这个方法就是开会。
第十五条必须让婚姻状况成为秘密
隐婚人士在办公室谈情是一场喜剧,单身人士在办公室谈情是一场悲剧。最好的结果是,已婚人士获得一场办公室爱情;最坏的结果是,未婚人士获得一场办公室婚姻。最后一条,不到万不得已,永远不要打老板女秘书的主意。
第十六条必须掌握一种以上高级语言
高级语言包括在中文中夹杂外语、在怒骂之中附送奉承、在表达保密原则同时揭露他人秘密、在黄段子中表达合同意向。语言技巧高是下乘,发言时机好是上乘。使用高级语言但时机不对,不如使用低级语言但时机正确。第十七条必须将理财作为日常生活的一部分
主管在身边的时候,要将手机当公司电话;主管不在身边的时候,要将公司电话当私人手机;向同事借钱,不借钱给同事;陌生人见面要第一个埋单,成为熟人后永远不要埋单。最后一条,捐钱永远不要超过你的上级。第十八条必须明白参加培训班的意义
培训班不是轻松的春游,它的目的是学习你工作职责之外的知识;由于学习的知识在你工作职责之外,培训班可以当做一次轻松的春游。
第十九条必须学会摆谱
如果你很靠谱但不摆谱,大部分人都认为你不靠谱。如果你不靠谱但经常摆谱,所有人都认为你很靠谱。
第二十条必须懂得表面文章的建设性
能做会议幻灯片的,不能私下讨论;可写报告的,不能口头请示,如果一件事你已经完成,但没有交计划书,你等于没有做;如果一件事你没有去做,但交了计划书,你可以当它已经完成——毕竟所有学过工商管理的老板都固执地认为,看计划书是他的事,执行是下面的事。
第二十一条必须与集体分享个人成功
基于规则的推荐 篇3
【关键词】幼儿规则游戏发展创造能力
【中图分类号】G61 【文献标识码】A 【文章编号】2095-3089(2016)22-0163-01
幼儿早期游戏看似是玩耍,实则也是有规则存在的。正如维果茨基所说,规则就是游戏的本质特征。在儿童游戏中,都存在着一定的规则,只不过其表现的程度不同,有内隐性和外在虚拟性。没有游戏的情境性和秩序感,幼儿游戏就不能获得纪律性的保证,也就无法顺利开展。那么如何看待幼儿的规则游戏呢?这些规则游戏对幼儿发展有何作用?笔者认为,幼儿规则游戏中的要素和游戏的规则正相关,而且能够推动幼儿发展。
一、规则游戏及游戏规则
为了游戏活动的顺利进行,在游戏开始之前,所有游戏的参与者都要遵守其中的规定,这就是游戏的纪律。它们是人们根据游戏情况逐步总结出来的。例如幼儿在玩捉迷藏游戏时,不允许偷看,不允许作弊,必须被蒙上眼睛。这就是游戏规则所起的作用。
在幼儿游戏中,如果没有儿童的规则行为,就没有游戏可言。狭义来说,幼儿游戏的规则是需要由教育者设计,同时也是为了培养儿童的规范意识,使其养成规范化的行为习惯而设定的规则。总之,游戏是幼儿的生活基础。对儿童的发展而言,在幼儿游戏和规则中,无论是规则还是游戏,都将为实现教育自身价值而体现出特定的教育内涵。
二、规则游戏与幼儿的发展
1.幼儿社会性的发展
学前期儿童的思维具有特殊的主观性,比较喜欢倾向于从自己的主观认为出发,随心所欲,无视现实规范。但规则游戏则是以游戏的规则为出发点,完全抛弃个人化的主观意识,打破幼儿头脑中固有的自我定式。让幼儿在游戏中学会服从和遵守,这样就无形中提高了幼儿的社会化意识,发展了幼儿的社会化个性。研究表明,规则游戏教学能够推动幼儿的社会性发展,同时也可以让幼儿获得个人化的思维意识。如在角色游戏里,大班幼儿比较关注角色行为的“规则性”,根据自己演绎的角色,形成规则意识,并以此建立抽象的活动规则,进行游戏的规范和自我的规范。如通过教师的角色游戏,幼儿认识到老师不能打“小朋友”;通过士兵的角色游戏,幼儿明白“士兵”要拿手枪打仗。
通过游戏,幼儿认识社会活动与其环境、条件之间的关系,并逐步理解游戏规则的“隐喻”,并试图内化为自己的行为标准。
2.幼儿道德发展和价值观的初步形成
对于规则本身的遵守,是道德发展的一个重要体现。在游戏的规则下,幼儿形成公平、平等等道德规范及行为价值观,同时,一定的游戏规则反映一定的价值取向,特别是幼儿期,它是人生发展的奠基阶段,这一阶段的生活经历直接影响未来的发展趋向。所以,幼儿游戏对幼儿的积极发展有着举足轻重的作用。作为游戏指导者的教育者,在游戏的规则设定中,要注意发展和培养幼儿良好的社会性格。
3.幼儿意志的发展
自制力差是幼儿意志发展的特点之一。如何加强幼儿行为的坚持性呢?实验研究证明,教师单纯通过命令或者强制性的手段,逼迫孩子站在那里一动不动,显然是在让幼儿深陷困境。行为坚持性弱,这是幼儿意志发展的另一个特点。
对幼儿来说,遵守规则看起来似乎完全无法达到,但通过游戏却可以调节其行为,发展其自觉性和自制力,更为重要的是,比较容易和轻松。如在角色游戏中,游戏角色的规则就是要让士兵能够站在那里,一动不动,否则便不是个士兵。在这样的规则之下,幼儿获得了特定情境的激励,他一旦投入其中就会忘记自己的感受,而只是为了遵守规则想要做一个真正的士兵。这是一种自觉性的发展,在不知不觉中遵守了游戏规则,行为和意志都获得了发展。
三、游戏指导与儿童的发展
1.科学认识游戏的规则
从观念和意识层次上来说,幼儿游戏的本质就是游戏的规则。只有真正参与游戏的情境和秩序,才能触及心灵。
规则游戏不只是教学手段,对教师来说,更是一种培养幼儿获得规则性社会意识的教育方法。幼儿需要在规则游戏中提高意识。当然,教师要注意根据幼儿的心理特点,依据其发展水平选择游戏类型。幼儿在各种规则游戏的成人指导下,通过投入游戏实践,渐渐获得规则意识,发展自己的原有水平,并实现超出年龄特征的超前意识发展。
2.制定科学、合理的游戏规则
理解“规则”的意义之后,教师要着重制定游戏规则,开发规则游戏。必须指出的是,在幼儿游戏的规则和规则游戏的选择中,幼儿具有主体性,教师要充分尊重幼儿,信任幼儿对游戏规则的自发制定。教师可以引导幼儿自己制定游戏规则,同时也要引导幼儿自行选择规则游戏,并让幼儿在游戏中获得感受,使规则游戏成为幼儿生活中不可缺少的一部分。
3.正确处理游戏的规则与创造性的关系
在传统观念中,普遍认为,规则和创造性之间是无法调和的。其实并非如此。儿童的规则游戏是儿童创造性的前提,正是因为规则的约束,幼儿才能够清楚认识到创造的可能。在规则游戏中有很多的规范,这种隐形的规则正好体现了游戏的多样性特征。幼儿全身心投入游戏的规则当中,会在高度忘我的状态中发展自己,建构新的世界。
基于规则的推荐 篇4
关键词:加权关联规则,挖掘算法,电子商务,推荐系统
0 引言
随着电子商务业的快速发展,互联网购物用户规模已经突破两亿人次。而在庞大的互联网购物中,购物者和服务者都面临一个问题:用户和商家彼此间无法明确所喜爱的商品;海量商品无法快速、准确的和客户爱好相匹配;筛选商品时间过长等。这些问题都极大地阻碍了电子商务业的发展。为了解决这些问题,本文利用数学上的相关知识,进行了基于加权关联规则挖掘算法的电子商务商品推荐系统研究。
1 数据挖掘和关联规则
1.1 数据挖掘
数据挖掘从广义上理解,就是在海量数据中通过某种算法、处理模式找到具有潜在作用、有效价值、新颖性强的数据处理过程。数据挖掘模式可分为关联模式、序列模式、分类模式、回归模式、时间序列模式、聚类模式六种。而关联模式由于具有应用范围广、实用性强的特点,因而在现代电子商务领域中得到了极大发展,关联模式也成为了数据挖掘中最为重要的研究领域[1,2,3]。
经过多年的研究分析,当前对数据挖掘的主要方法包括概念描述、关联分析、类知识挖掘、预测型知识挖掘等。虽然数据挖掘的方法有很多种,但要想彻底应用到电子商务中存在以下几个难点:数据类型存在多样性;算法效率和可伸缩性差;数据挖掘系统交互性差;数据安全性和私有性差[4,5]。这些难点都阻碍了数据挖掘在现实商业中的应用。
1.2 经典关联规则挖掘算法
在实际算法应用中,关联规则挖掘算法有很多种,其中最为经典的就是Apriori算法。该算法具有单维、单层、布尔型的特点。该算法的频繁项集产生步骤如下:开始→定义min_sup和min_conf→扫描数据库得到项集→K=2→由Apriori算法得到Ck→成功结束,否则重新由Apriori算法得到Ck。
该算法在当前的电子商务应用中,主要存在的问题有[6]:扫描数据库次数太多;运算时间随频繁项长度增大而增长;每个阶段的Ck太大;不能更新、不能直接处理数值型数据;数据库中的关联规则挖掘不能直接应用。这些问题都导致了Apriori算法在电子商务应用中出现了诸多问题。为此,在下文中提出了基于加权模糊关联规范挖掘算法的改进。
2 基于加权模糊关联规范挖掘算法的改进
2.1 加权模糊关联规范模型
(1)布尔型加权关联规则模型
布尔型加权关联规则模型由事务集T,项目集I,项目权值集W等组成。在具体计算时,可根据元素属性、布尔属性项目集的支持度等进行加权计算。
(2)加权模糊关联模型规则
加权模糊关联模型由事务集T,项目集I,模糊集L等组成。其中,模糊集的隶属度函数为Ffk,值域为(0,1)。根据模糊项目集X的事物权重FITW,加权模糊支持度WFS二者的比值,可计算出加权模糊关联规则X→Y的加权模糊置信度。具体计算过程如下:WFC(X→Y)=WFS(X⋃Y)WFS(X)。
(3)频繁项集的向下封闭性
向下封闭性是Apriori算法的特点,它可以通过K-项频繁项集产生最大频繁项集。然而在加权关联规则挖掘中,由于项目被给予了权值属性和支持度属性,因此频繁项集内的子集不再能判定其是否频繁。
2.2 加权模糊关联规范挖掘算法NFWARM
加权模糊关联规范挖掘算法NFWARM的基本执行思路如下[7,8]:算法扫描数据库得到C值,并对其赋予加权模糊支持度属性;通过特定函数计算出候选项目集,并对不频繁子集进行删除、剪枝;循环计算候选项目集的支持度,直到所有候选集为空。这样便得到了频繁项集F=F⋃FK。
加权模糊关联规范挖掘算法NFWARM仍然采用逐层搜索迭代的方法来计算得到频繁项集,这一点和Apriori算法是相同的。通过相关定理可以证明,该算法在处理加权时可以实现频繁项集的向下封闭性。
2.3 试验及结果分析
为检测加权模糊关联规范挖掘算法NFWARM的先进性,本文进行了相关的数据测试。首先通过IBM数据生成器随机生成一万个事务数和属性。其中,每个事务内有20个项目,每个属性在(0,1)内进行权重分配,而每个数值属性又重新分配了五个模糊集。之后通过隶属函数将原始数据库转换为模糊数据库。BWARM曲线和NFWARM曲线分别表示传统布尔型加权关联规则算法和改进算法的执行结果,具体变化情况见图1。
从图1中可以看出,随着最小加权模糊支持度的增加,NFWARM算法得到的频繁项集合和频繁规则的数目在减小,而BWARM算法产生的频繁项集较NFWARM算法要少很多。这些数据变化都显示出改进型NFWARM算法的优越性。
3 电子商务商品推荐系统的设计与实现
3.1 推荐系统结构设计
(1)系统开发工具和平台
本次电子商务商品推荐系统的开发工具为MyEclipse 7.0,JDK 1.6;操作系统采用Windows XP;应用服务器采用Tomcat 6.0;后台数据库为SQLSever 2005。
(2)电子商务平台背景
本次开发的电子商务推荐平台主要是一家以销售女装为主的电子商铺。随着电子商业业务的推广,该店销售额得到了极大的提升。然而在销售额上升的同时,也出现了衣服种类多、客户群体难以短时间内成功匹配合适服装的问题。因此该店销售额遇到了瓶颈,急需开发一款高质量的电子商务商品推荐系统。
(3)结构设计
电子商务商品推荐系统需要通过两个重要模块实现,即数据采集系统和数据预处理系统。数据采集系统主要提供服装信息,而数据预处理系统负责处理客户的交易数据,并将其转换为关联规则挖掘算法需要的数据格式。整个系统的核心部分就是利用加权关联规则挖掘算法搭建客户交易历史数据和客户购买需求之间的平台。整个电子商务商品推荐平台的工作流程如图2所示。
3.2 数据预处理模块设计
(1)数据准备。将商铺网址、服装信息、商品数据、交易信息等原始数据录入到Excel文件中作为原始数据库。其中,客户购买历史信息和商品信息是整个系统最为核心的数据库。
(2)数据分类。Excel文件中保存的原始数据庞杂、多变,需要对这些原始数据进行分类,以便于数据挖掘工作的进行。其分类方法为:将商品信息向上抽象一层,作为第一层概念层数据的挖掘对象;继续将商品信息往上再次抽象,本次数据只用符号表示。
(3)数据预处理。利用概念层思想将商品进行分类,同时通过数据的完整性、一致性检查及时对上架、下架货品信息进行数据处理。
(4)历史交易数据生成。利用SQL脚本语言编写事务数据,将预处理后的历史交易数据转换为联合规则算法挖掘的事务数据。此时,需将交易时间作为客户数据挖掘的变量条件。
3.3 推荐模块设计
推荐模块设计时,要求客户首先登陆电子商务商品推荐平台注册成为会员,之后根据客户有无购买商品记录,将推荐模块分为以下两种情况:
(1)无客户购买商品记录
针对这种情况,推荐使用最为流行的Top-N销售策略进行模块设计。设计流程如下:会员注册→畅销商品推荐/自主购买意愿→拒绝,继续推荐下一层畅销商品/选择自主商品→购买。
(2)有客户购买商品记录
针对这种情况,需要系统根据该会员信息调取其在该平台的购买记录,快速准确地计算出该客户可能喜欢购买的商品并进行推荐。设计流程如下:会员登录→自动调阅购买历史信息→根据关联规则集分析客户爱好→推荐匹配商品→购买。
3.4 系统实现与测试
(1)基于用户历史交易记录。客户登录电子商务商品推荐系统后,可通过点击“购买历史记录”来查询购买信息,系统后台会自动演化规则集;之后根据规则集匹配系统内的服装信息,并将其优先推荐给客户。
(2)基于用户购物篮信息。客户登录电子商务商品推荐系统后,根据浏览信息中产生的购物篮信息,系统后台会自动演化规则集,之后根据规则集匹配系统内的服装信息,并将其优先推荐给客户,见图3。
(3)基于用户无购买记录。针对无购买记录的客户,系统会根据Top-N销售策略,将当前最为畅销的服装推荐给客户。
4 推荐系统结果分析
4.1 试验数据
为保证试验测试的准确性,本次试验共采集了2015年度5个月份内的服装交易记录。其中包括500多种商品的基本信息和16 000多个淘宝ID客户信息。涉及的商品包括女装、T恤、背心、裙子等。
同时,在试验之前分析了用户购买习惯。其中只购买一件商品的用户数量为9 300多个;买两件及以上且款式不同的为5 600多个,款式相同的为1 500多个。经过数据预处理模块分析后,符合关联规则挖掘的交易量为5 985。
4.2 试验评价标准及方案
本次试验选择的评价标准是命中率。该指标可以较为准确地反映系统推荐商品是否会被客户购买。
试验方案采用五折交叉法进行测试,具体方案为:将数据分为计算数据和测试数据两部分,计算数据由算法自动计算,测试数据由客户真实购买记录统计;将数据分为5份,其中4份为训练集、1份为检测集;每做一次测试后,将5份数据重新交叉组合,进行下一次测试,共测试5次。
4.3 试验结果及分析
根据试验结果,对前5 000个用户的购买信息进行了统计分析,得到了5个数据区间的结果。本次试验对基于关联规则集的Top-N产品、基于用户兴趣相关的Top-N产品、推荐最畅销的Top-N产品数据进行了命中率分析,其对比结果见图4。
三种推荐策略的平均命中率分别为:推荐最畅销的Top-N产品0.319,基于用户兴趣相关的Top-N产品0.514,关联规则集的Top-N产品0.552。从这三个数据的对比中可以看出,基于加权关联规则挖掘算法的电子商务推荐模型是有效的,其命中率较其他两种都有明显提高。
5 结论
本文通过概述数据挖掘和关联规则的基本信息,指出了经典Apriori算法的缺点和不足,并提出一种新的加权模糊关联挖掘模型算法,以保证频繁项集的向下封闭性;通过对电子商务推荐系统的结构化设计、数据预处理模块设计、推荐模块设计,完成了推荐系统的工作流程测试;最后选取命中率作为不同推荐模型的评价标准,通过五折交叉试验法对实际采集数据进行了对比分析,试验结果表明关联规则集的Top-N产品命中率要明显高于兴趣推荐和畅销推荐法,充分显示了基于加权关联规则挖掘算法推荐系统的优越性。
参考文献
[1]邓爱林.电子商务推荐系统关键技术研究[D].上海:复旦大学,2003.
[2]王枭雄.基于关联规则的软件开发推荐技术研究[D].西安:西安电子科技大学,2013.
[3]刘闻超.加权模糊关联规则挖掘算法研究及应用[D].镇江:江苏大学,2010.
[4]马刚.关联规则挖掘在电子商务中的研究与应用[D].上海:上海交通大学,2008.
[5]张剑凯.关联规则在移动电子商务推荐系统中的应用研究[D].兰州:兰州交通大学,2014.
[6]张荣.基于关联规则的用户兴趣模型的研究与应用[D].武汉:武汉理工大学,2013.
[7]范永健.基于数据挖掘的电子商务推荐系统模型研究[D].邯郸:河北工程大学,2009.
基于规则的推荐 篇5
其余的公司,有些做校园招聘,也许是为了树立或宣传自己的在校园中的雇主品牌形象。
每年都进入大学从事大量校园招聘的500强公司,无非是各大银行、四大会计事务所、制作业巨头和快速消费品行业的大品牌。因此,做好求职调研非常重要!至少可以去看看自己的学长学姐们都去了哪些公司工作,进入这些公司的概率会更大
此外,请务必从大一开始,就做好大学四年的Retro-plan(甘特图/倒推型计划),比如,要进入一家快消品公司从事市场工作,需要学习市 场营销专业,或者相应的课程(市场营销、统计学、会计学、经济学等);需要锻炼自己的领导能力,比如去用一笔经费去做一个校园内某项产品的推广;需要有一 定的跨国、跨文化沟通能力(中英文演讲辩论赛,口译证书等);市场策划和创造力(各种营销大赛,比如欧莱雅的在线商业大赛)。大一着重积累自己在学校的人 脉,积极参加校内学生会和社团的活动;大二着重去参加各种比赛和考试,争取也把驾照顺便考掉;大三开始积极的寻找实习,最好能进一家牛一些的公司实习并获 得潜在全职offer;大四上学期把offer签掉,之后开始着手论文和毕业的事。这么多件事情,最好系统化的排一张表出来,具体到每个月要完成哪些事 情,就像做项目管理一般去一件一件执行。
2.实习/工作经验真的非常重要。
很多同学大学一直呆在学校,拼命地争取学生会主席、社团团长等职位,甚至有些怕因为找工作耽误学习和毕业放弃校外的实习机会,毕竟,in the end of the day,学校是不会给每个学生提供工作的,而是公司付你的薪水!学习也不是离开学校就终止的,公司可以给你更多hands-on,更实用的知识和经验。公 司招聘员工,更在乎的不只是其在大学中的成绩或者职位,而是对方是否能够胜任公司某个岗位上的那份工作,如果已经有过类似的工作经验,哪怕和那些学历更优 秀的人站在一块,其实还是有一定优势的。此外,不少公司的实习生,比如P&G,四大这些都是可以转正的,也就避免了大四再从头开始从人海中一轮一 轮搏出位的痛苦。
经常会有同学问我,公司要我一周去实习四、五天,可是这和学校的课冲突了,如果不上课,老师会挂我课,可能会影响学习和毕业,这个怎么办?
我的回答是:时间管理和区分优先级也是一门学问。拿我自己举例,对我来说,大学毕业是肯定会直接工作的,所以大一就开始努力地去寻找实习和工作 机会,大二大三期间,我几乎每天都要去实习和工作,需要在老师和公司之间balance和周旋。从我们学校到我工作的地方,来回需要4小 时,所以我往往会需要早上起早去赶公车做完事第一时间打车回校上课,或者去上一半的课,完
成点名后往市区赶。每天在公交车上,可以花时间休息、或是思考工 作问题,亦或听英文播客节目充电,不让时间完全荒废掉。学校那头,需要保持信息的通畅,一旦有重要考试或者课程,就和公司那头请假或者调整时间,毕竟是兼 职或者实习,只要把工作完成,时间上也是有一定的灵活度的。如果遇到实在无法协调的状况,其实还是有后路可退的。来不及修的课可以大四第二学习工作找好后 重修,有些学习任务也可以和老师协商自学,毕竟学校也希望学生能有个好出路。
3.除了非研发类型的岗位,很多职位并没有很严格的专业限制。
管理、销售、市场、公关甚至是财务等职位,关键看的是适不适合,工作中能否胜任。没有相应的专业背景,也可以通过校园活动和社会实践来弥补这块的不足。
职场上,我见过复旦核物理专业的博士转做销售的,也见过材料物理的去做HR或者是网络营销;公司内部,也见到过做人力的转去做PR,或者做销售 的转去市场。每个人在人生的不同阶段,对自己的认识,适合的工作和职能,还有对自己特长的展现和挖掘可能都不尽相同,这是一个探索和磨合的过程。有人说工 作就像谈恋爱,也许谈完一次,才会知道自己到底要什么。徐静蕾为智联招聘做的广告中也说,“既然一辈子有半辈子在工作,就象恋爱一样找个喜欢的吧。”
4.相貌或者说气质还是很重要的。
职场的“外貌协会”的确存在!有人说,“you are what you look”。对于销售、市场、公关等这些与人打交道的职能,还有时尚、广告、奢侈品、传媒等行业的工作,looking presentable其实是很重要的,公司有employee brand这个说法,如果一家公司招聘了你,对外你就代表公司的形象。
好的相貌和职场气质也能让你在工作岗位上得到更多同事、上级和客户的信任。因此,穿着校服去写字楼面试这种雷人的做法是绝对不可取的。这里推荐 女生画个裸妆,男生至少应该穿H&M,Zara, 5cm的西装,不要穿的像农民企业家就成。同时,也不必要全身穿戴大牌,香水味或者妆容过于浓艳,全身的颜色尽量不要超过三种。如果不确定怎样穿合适,可 以去翻翻时尚杂志。
5.500强校园招聘只是采荷叶尖,大部分同学都可能需要“曲线救国”。如果没有办法一步到位,可以先进入自己喜欢的行业,做自己适合的职能,潜伏着、积累工作经验,并等待一切机会,去自己梦想的公司。
有些大家不熟悉的,甚至不做校园招聘的行业和公司,也有着很好的前途和发展。如果不能直接去到甲方,可以进入服务这些大公司的乙方,比如4A的 广告或者市场调研公司。关键是要搜寻出最合适自己的公司,并解决信息的不对称。
其实社交网站都潜伏着大量猎头和公司人力资源总监,甚至是各大公司的 CEO,鼓励大家去社交。但请记住,是“社交”,不是草率地去要工作和实习机会。如果不积极参与话题讨论,了解对方的喜好和用人需求,而是直接去问工作机 会,这定是会石沉大海的,几句文字对方并无法全面了解你的强势。如果真的是个有心人,应该“找对人”,“抓大鱼,放长线”。
6.简历在HR手中可能只停留几秒钟
其实,每个人的简历在HR手中可能只会停留几秒钟时间,因此让对方在最短的时间内看到你的优势非常重要。
关于简历,网上的教程和模板已经相当多,我再强调几点常被忽视的:I.要reader-friendly(方便阅读),注意细节。比如文件名最好是“XX大学+XX专业+姓名”,方便对方归档;
II.文件格式最好是Word或者PDF格式且不要超过1MB,方便转发;III.最好不要用压缩格式,因为有些公司内网电脑无法解压缩;
IV.英文简历一定要起英文文件名,因为对方可能不认识中文;
V.最好能有Cover Letter,虽然对方不一定会看,但至少这样会体现你对公司的诚意;
VI.突出你的社会工作经验和领导能力,这是大部分公司最在意的部分,最好有一些大公司大品牌的关键字,有些通过关键字筛简历的系统认这些关键字;VII.Less is more!确保一页以内写完,学会取舍,通过粗体、斜体突出重点,去掉校徽/水印图片,表格等视觉干扰。
7.其实,机会是分秒之内稍纵即逝的,要积极地争取。
人力资本市场是个买方市场,不管你是不是牛人,不管有多牛,在公司面前,都是弱势群体,都应该积极争取并不放过任何一个机会。
还是拿自己举例吧,接到欧莱雅面试电话的时候,其实我在广州宝洁参加市场部终面,欧莱雅要求我第二天下午在南京参加第一轮面试。我当时赶紧解释 情况,说自己非常珍惜这个机会,但要从广州宝洁终面飞回来(诚实的表明情况的同时,让对方了解自己的实力),之后我便把第二天的飞机签到最早的一班,赶回 南京又打车在高速上让司机飙到180公里/小时左右的时速。但还是错过了最后一场集体面试,便找了朋友去现场诚恳地解释情况。HR了解到了我的诚意,晚上 居然亲自打来电话,让我第二天直接去参加第二轮面试。再到之后的五轮波折,最终拿到Offer(聘书)。现在想想,如果没有当时那一瞬间的争取和努力,这 个几万分之一的机会就擦肩而过了。
很多大学生会在校上课期间关机,可是HR的面试通知都是工作时间打过来,有可能没人接直接就找waiting list(候选名单)下一位了。所以最好全天手机开机调振动档,或者设置“短信呼”功能,一看到陌生电话号码就回复过去。这样会导致自己变成一个“手机 控”,但为了任一个潜在的机会,这样做都是值得的。等到大家进入职场,也会渐渐发现,及时回复未接电话,是一个很重要的职业习惯。最近,在我帮500强公司推荐习生期间,遭遇2件很雷人的“错失良机”事件:有位同学,把面试时间记错,迟到一个小时后而且没有记住对方HR的 名字,也没有对方电话号码。对方HR还以为被这位大学生给“鄙视”了;还有位同学,面试前居然在寝室睡觉睡过掉。这两位,还都是国内顶尖大学的商学院的学 生。在职场上,这样懒散,不遵守时间或者是不珍惜机会的做法,是大忌!切记,态度决定一切!
8.学历只是个人能力的一方面证明。
有时候,本科硕士之间的学历区别也许也只是入职时薪水上几百块的差异。国内各行各业,多的是高中文凭的牛人,比如韩寒、罗永浩、茅侃侃……随着社会分工的越来越细密,某个领域的专才往往会更容易走向优秀。这也不是说让大家不去读大学,毕竟,国内的整体就业大环境,还是至少需要一个本科学历的。
但请千万记住,同一个学校的硕士生,不见得有本科生有竞争力。企业需要的人才,和现今大学的所塑造的人才是有一定的区别的。对于企业,虽然硕士 生的知识 面和阅历相对广一些,但和本科生一样,都是初入社会的白纸,都需要企业去从头培养。在这种情况下,本科生因为更年轻、可塑性和活力强,往往反而更有优势。此外,因为现在国内的好的工作机会越来越少,“一个萝卜一个坑”的状况普遍存在,如果花上2-3年读一个硕士,很有可能就业时挑战更大。我的大学同学里不 少读研的,在毕业时候,甚至很难找到当年本科的那些好工作机会,因为公司已经不招人,或者减少招聘名额。
此外,很多的好工作都是靠人脉、情商、逆商等因素决定的。如果有一定的人脉,一定要去使用。就像Ugly Betty里面Betty的老板Daniel Meade,虽然上岗时啥都不会,但因其“在其位,思其政”,“屁股决定脑袋”,加上他的学习能力和坚持,还是能把一家杂志经营得像模像样。大家如果有良 好的人脉,一定要努力去拓展;如果没有,也不要怨天尤人,甚至产生仇富心理;而是应该从现在开始,建立自己的人际关系网。世上本来就有很多不公平的事情,但是我们总是可以通过努力和坚持,让自己变得更强大。
9.其实,很多好工作都不是找出来的,而是做出来的。
业内也有个说法,创业易、守业难--抓住公司和行业中的机会点相当重要。这世界上,真正杰出的人才,也都不是循规蹈矩跟着前人的道路走下来,而是“开拓者”,哪怕是在相对保守的公司,也会有内部创业的机会。当一个公 司变得较为庞大时,一定要找准发展的机会点,那些没有人做的,新设立的工作岗位,往往有让人意想不大的机会点。比如各大快消公司的市场部,5年前,甚至都 没有负责网络营销的职能,也没有太多人会在意,而现今这个时代,网络口碑为王的时代,社会化营销已经黑之白字印在了很多市场、公关人士的JD(工作职责 上)。
在这个好工作、甚至好实习“一票难求”,20%大学毕业生愿意零起薪就业的时代,大家不妨退一步想一想。社会大环境还是好的,国内的各行各业的 机会也是层出不穷,海阔任鱼跃。任何事情贵在坚持和创新!哪怕去尝试着经营一家淘宝小店铺,也许也会有做大做强的一天。城市方面,“北上广”如果挤破头挤 不进去,不妨瞧一瞧国内2线城市,现在随着城市化进程的推进,哪怕是在大理、丽江这样的浪漫小镇,也吸引越来越多有理想、有抱负,热爱生活的世界各地创业 青年和海归呢。
记得有位前辈曾经说过,年轻人应该去流浪,好好看看这个世界,心胸也会变得宽广。可是80后一代,早就被现实的问题(房价、结婚、职场)压得喘 不过气来。钢筋混泥土般的城市森林里,其实我们都太渺小,太容易变得狭隘。如果你没有找到满意的工作,不如去旅行、背包去“流浪”,看看这个博大的国家,也许走到哪里会发现好机会呢。
10.其实,大部分情况下,薪资是不可以谈的。
最后,很多同学最感兴趣的当然是薪水。不少同学偷偷问我,是不是可以和公司谈钱?和谁谈?还有怎么谈?再牛的大学生对公司也是一张白纸,而且校园招聘的职位的薪水都是固定的,各大求职网站基本上都可以查询到公司的各大初始职位的薪水。
基于规则的推荐 篇6
关键词:数据挖掘,关联规则,电子商务推荐系统,数据库技术
0 引言
随着电子商务的迅猛发展,人类进入了信息社会和网络经济时代,商务信息爆炸式增长,客户选择喜欢的商品变得困难。如何帮助各种客户顺利地完成购物活动成为网站赢得利润和信誉的关键。在这种情况下,为客户提供个性化推荐服务的电子商务推荐系统应运而生。电子商务推荐系统“利用电子商务网站向客户提供商品信息和建议,帮助客户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程”[1]。电子商务推荐系统最大的优点在于它能收集用户感兴趣的资料,并根据用户兴趣偏好主动为用户做出个性化推荐。
个性化推荐系统主要有3个作用:将电子商务网站的浏览者转变为购买者;提高电子商务网站的交叉销售能力;提高客户对电子商务网站的忠诚度。
目前,学者对电子商务推荐系统有大量的研究,主要集中在数据的获取和推荐技术[2]。个性化推荐是通过推荐算法从大量复杂的数据中分析出客户的消费习惯和偏好,因此大量有价值的数据是推荐的基础。随着网络技术的发展和数据库技术的广泛应用,电子商务中的数据也日益丰富和复杂。在推荐技术研究中,关键的问题是根据系统的数据确定合适的推荐算法。目前,学者主要致力于两方面研究:一方面努力提高算法的效率,满足实时性的要求;另一方面,改进目前的算法,使推荐效果更加完美准确。
电子商务分为B2C和B2B两种模式。本文主要侧重于对B2C电子商务的分析,应用于综合性的零售网站。目前主要的推荐方法有基于关联规则的推荐,基于内容的推荐,基于协同过滤的推荐等[3]。本文讨论关联规则在电子商务推荐系统中的应用。
1 数据挖掘与电子商务推荐
电子商务推荐系统是将数据挖掘技术应用到电子商务领域的范例。随着电子商务的应用,数据库中可以收集到大量的用户数据,如用户交易数据、用户注册数据、用户评分数据、用户咨询数据等。这些数据中蕴含着丰富的知识,基于数掘的推荐系统通过数据挖掘技术对用户行为和用户属性进行学习,从中获取有价值的知识,根据得到的知识产生推荐。
基于数据挖掘的推荐系统根据数据挖掘技术建立用户档案。用户档案的建立可以基于对用户长期行为的分析,如用户的浏览记录,购买历史、性别、职业、收入、年龄等。也可以基于用户的当前行为,如用户当前的会话行为、当前购物篮信息、当前浏览商品等。
2 电子商务推荐系统
2.1 电子商务推荐系统的结构
电子商务推荐系统主要由三大部分构成:数据采集部分、推荐方法部分和输出部分[4]。数据采集部分用来接收用户的输入信息;推荐方法部分根据一定算法和用户数据,得出对目标用户的推荐。该部分是整个推荐系统的核心部分,个性化推荐方面的研究很大一部分都集中在找到好的推荐方法;输出部分主要是指将得到的推荐以某种形式反馈给用户。
输入部分主要负责对用户信息的收集和更新。输入主要指目标用户,即要求获得推荐的人为得到推荐而必须进行一些输入,以表达自己的偏好,包括隐式浏览输入、关键词和项目属性输入和用户购买历史等。
输出部分主要负责在系统获得输入信息后,输出推荐给用户的内容。主要形式有:
①建议:又分为单个建议、未排序建议列表、排序建议列表,典型的如Top-N:推荐系统根据客户的喜好向客户推荐最可能吸引客户的前N件产品;
②预测:系统对给定项目的总体评分;
③个体评分:输出其他客户对商品的个体评分;
④评论:输出其他客户对商品的文本评价。
推荐方法部分是推荐系统的核心部分,负责对输入数据的处理,决定着推荐系统的性能优劣。推荐方法部分以推荐算法为技术支撑。
2.2 电子商务推荐系统的信息模型
电子商务系统中存在着丰富而复杂的数据,如用户交易数据、用户注册数据、用户评价数据、用户咨询数据等。这些数据中蕴含着丰富的知识,是进行电子商务推荐的基础。通过对当前主要大型购物网站的调查研究,总结出了电子商务网站的主要信息模型,如图1所示。
另外,在大多数基于Internet的网上购物商店中,商家都对商品进行了明确的分类,图2是一个简单的示例。商品分类在知识发现过程中起着重要作用。在许多实际应用中,强关联规则更易于出现在商品分类的高层,但可能会出现公共知识的重复;另一方面,低层的关联规则可能更令人感兴趣,但发现的难度更大。因此,在关联规则挖掘中选择适当的层次对于关联规则的挖掘是非常重要的。
2.3 推荐技术的选择
在进行个性化推荐时,选择合适的推荐技术是成功的关键。零售网站的特点是商品种类繁多,顾客群广泛,网站访问量比较大。基于内容的推荐只能推荐与已购买商品相似的商品,不能发现潜在感兴趣的商品;协同过滤推荐的效果取决于客户的评价分数。在现有的零售网站中,大量的商品没有客户评价或评价稀少,不适合应用协同过滤推荐技术;关联规则与其他的技术比较有如下的优点:数据源简单,不需要特殊数据源,只要有准确的交易记录即可;具有对用户购买行为的预测性,挖掘用户的潜在兴趣;可以挖掘不同类型的商品,对商品特性没有要求[5]。于是可以看出,关联规则比较适合应用在零售网站中。
关联规则挖掘就是发现数据集中项集之间有趣的关联或相互关系[6,7]。它是数据挖掘领域的一个重要分支,最近几年已被业界所广泛研究和应用。在电子商务领域,关联规则主要用于商品、链接或页面的个性化推荐。关联规则常用的挖掘算法是Apriori算法和FP-Growth算法。
Apriori算法的缺陷是它会产生巨大的候选集,需要多次扫描数据库[8,9]。如果最长的模式是n,则需要n+1次数据库扫描,当数据库较大时,性能会受到较大影响,大大降低挖掘的效率。研究者还提出了各种改进的Apriori算法,但是都不能克服原来固有的缺陷。
FP-Growth算法不需要生成大量候选项集,大大降低了搜索开销,提高了挖掘效率[10,11]。对FP-Growth方法的性能研究表明:对于挖掘长的和短的频繁模式,它都是有效的和可伸缩的,并且效率约比Apriori算法快1个数量级。
通过以上比较,本文选择FP-Growth算法进行关联规则的挖掘。
3 电子商务推荐系统的设计实现
在此提出了一个电子商务推荐系统的体系结构如图3所示。该结构分为两个部分:离线部分和在线部分。离线部分的功能是首先对原始数据进行预处理产生事务集,然后对事务集进行挖掘产生关联规则;在线部分与用户的实时交互,利用离线生成的关联规则和数据库中的信息进行分析,产生推荐,然后将推荐结果通过浏览器返回给用户。
为了验证系统的合理性和适用性,采用AdventureWorks数据源对系统进行了测试。
3.1 离线挖掘关联规则
系统的离线挖掘部分使用VS2008进行开发,数据库采用SQL Server 2005。在这一部分中,可以完成系统参数的设置、预处理、关联规则的挖掘等功能,用户界面如图4所示。
(1)系统参数的确定
在关联规则的挖掘中,首先要确定最小支持度和最小置信度两个参数。支持度是对关联规则重要性的衡量,表示这条规则的频度;置信度是对关联规则准确度的衡量,表示规则的强度。
(2)预处理
数据库中的原始数据不适合直接进行数据挖掘,需要进行预处理。预处理主要完成了以下数据处理:
①联合查询顾客表、商品表、销售订单表、销售订单明细表、商品型号表、生成事务表。事务表包括订单号,商品型号字段;
②去除事务表中商品数为1的事务;
③生成频繁项集表;
④去除事务中的非频繁商品,并将事务中的商品按降序排列。
(3)关联规则的挖掘
这里选择FP-Growth算法进行关联规则的挖掘,在第2节已经作了详细的分析。在FP-Growth算法中,最关键的两个数据结构是FP-Tree和关联规则表。将FP-Tree保存在数据表中,具体结构如图5所示。这个数据表结构充分描述了FP-Tree中的节点间的关系,节点编号表示节点在树中的惟一编号;名称表示节点所代表项目的名称;计数表示项目在事务集中出现的频次;父节点编号指向本节点的父节点;子节点数表示本节点的孩子节点数,可以判断该节点是否是叶节点。
关联规则存储在个性化推荐系统的数据库中,以备在线推荐使用,如图6所示。其中,置信度表示关联规则的强度,反映了规则的可信度。置信度是生成推荐列表的重要指标。置信度越高的规则,其结果越容易被推荐给用户。
在这一过程中主要分为3个步骤如图7所示:首先根据事务集建立FP-Tree,然后挖掘FP-Tree生成频繁项集,最后根据频繁项集产生关联规则。
3.2 在线推荐
进行在线推荐时,系统首先识别当前登录的用户,然后通过分析用户已购买商品信息与规则信息运算出推荐信息。在线推荐的流程如图8所示。
4 结语
本文以数据挖掘中的关联规则理论为基础,从应用的角度分析了电子商务系统中个性化推荐系统的需求和信息模型。针对B2C网上零售商店的特点,选择基于关联规则的个性化推荐技术,设计了一个电子商务个性化推荐系统。现实中的电子商务系统包含大量复杂的数据,只用关联规则还不能达到完美的效果。因此,下一步的工作是结合多种数据挖掘模型,实现更加完善的个性化推荐服务。
参考文献
[1]RESNICK Varian.Recommendation systems[J].Commu-nications of the ACM,1997,40(3):56-58.
[2]易明.基于Web挖掘的电子商务个性化推荐机理与方法研究[D].武汉:华中科技大学,2006.
[3]SARWAR B,KARYPIS G,KONSTAN J.Analysis of re-commendation algorithms for E-commerce[C].[S.l.]:ACM Conference on Electronic Commerce,2000.
[4]刘丽霞,庄奕琪.电子商务系统的数据挖掘与智能推荐预测的研究[J].计算机工程与科学,2008,30(2):92-95.
[5]高彩霞.基于关联规则挖掘的网上书店电子商务的研究与设计[J].大同:山西大同大学,2008.
[6]HAN Jia-wei,KAMBER M.Data mining concepts&tech-niques(Version 1)[M].Beijing:China MachinePress,2001.
[7]张峰,常会友,衣杨.基于规则的电子商务推荐系统模型和实现[J].计算机集成制造系统,2004,10(8):898-902.
[8]BODON F.A fast APRIORI implementation[C].Florida:Proc.of the IEEEICDM Workshop on FIMI'03,2003.
[9]AGRAWAL R,SRIKANT R.Fast algorithms for miningassociation rules in large databases[C]//Proceedings of20th International Conference on Very Large Data Bases.Santiago De Chile,Chile:[s.n.],2003:487-499.
[10]王新宇,杜孝平,谢昆青.FP-Growth算法的实现方法研究[J].计算机工程与应用,2004,40(9):174-176.
基于规则的推荐 篇7
关键词:券商,适合性规则,道德规范
适合性规则(suitability rules)是券商(broker-dealer)在美国证券二级市场向客户推荐证券时须遵守的职业道德规范,它“表达了一种关于投资的朴实真理:投资决定只能在考虑投资者目标和需要的前提下做出”。推荐是券商和投资者发生利益冲突的典型环节,因此从公平交易原则出发,美国行业自律组织(self discipline organization,以下简称SRO)一般通过适合性规则对券商推荐行为加以规制。以影响最为广泛的SRO美国全国证券交易商协会(National Association of Securities Dealers, 以下简称NASD)公平执业规则2310条为例,其规定成员必须在了解客户的情况并且进行尽职调查的基础上才能进行推荐。除了上述2310规则,NASD还有很多其他涉及适合性的规则,涉及到了证券交易的方方面面和不同类型。随着证券市场的发展和专业化程度的加深,适合性规则愈显重要,但作为道德规范其在在自律实践有难以逾越的障碍,包括规则自身的模糊性和争议性,NASD执行机制的不足和NASD作为行业组织的天然利益倾向性等。适合性规则自律实践的上述困境迫使其超出道德的范畴,沿着行政、司法和仲裁的路径启动法律化的进程,。
一、美国证券交易委员会对适合性规则的阐释与发展
证券交易委员会(Securities Exchange Committee以下简称SEC)一直试图对适合性规则的法律性质问题作出一个满意的回答。由于在证券领域专业SEC的权威为法院所尊重且对由其负责实施的成文法及其行政法规有优先解释权,因此SEC在适合性规则法律化上有着重要影响。而SEC在行政决定和意见中以代理理论、特殊情况理论和招牌理论形成了券商适合性义务的法律论述。
代理理论是sec最早的分析券商适合性义务的理论工具,主要基于对券商经纪服务的分析。SEC认为在经纪服务的过程中,券商适合性义务内涵于代理人义务中。代理人忠实义务要求券商在证券交易遵守公平交易原则,这是适合性义务的基础,而注意义务决定了券商作为善良管理人必须根据其专门知识技能及对客户勤勉调查的结果选择适合的证券,这也恰是适合性义务内容。代理关系理论缺陷在只适用于经纪服务场合,难以覆盖自营服务况。因此,SEC必须寻求一种基础更广泛的理论作为解释框架,这即信赖关系理论。
券商信赖关系理论认为券商与客户之间的关系是基于信任和依赖,因此属于一种衡平法上的信赖关系,其内容就是信赖义务,具体也包括忠实义务和注意义务。SEC先后通过属于信赖关系理论的“特殊情况理论”和“招牌理论”对券商的适合性义务进行分析,其中影响较大的是招牌理论。“特殊情况”理论指的是在某种特殊情况下,投资者对券商事实上产生了信任和依赖,两者间构成了信赖关系,从而券商负有包括适合性义务在内的信赖义务。“特殊情况”理论拘泥于一时一事的分析,因此在实际中有很大局限。而招牌理论认为联邦证券法明文规定了SRO的规则必须以公平交易宗旨为依归,而券商加入SRO并取得成员资格的法律事实相当于默示陈述了其对该宗旨的接受,从而就必须承担公平交易的责任和义务。就适合性规则而言,其作为上述公平交易宗旨的体现不言而喻也是成员券商所应该遵守的。另外,普通法中的“挂出”(holding out)理论也认为,券商注册和加入SRO的行为相当于向公众表明自己拥有证券交易特殊知识和技能,从而必须适用更高标准的注意义务,适合性规则是这种更高的注意义务的必然结果。在charles hughes一案中,成立于纽约的柜台市场交易商charles hughes被撤销证券交易资格,原因是其持续向客户销售价格远高于当前市场水平的证券,而未向客户披露加价。在这个案件中由于Charles hughes客户之间的交易属于自营性质,因此双方并不属于代理关系性质,此外,与SEC适用“特殊情况”理论的Arleen W.Hughes案不同,其与客户之间客观上不存在可以产生信赖关系的“特殊情况”,SEC对本案中券商义务的阐释完全基于券商的证券交易资格而非其他偶然的事实情况,既然charles hughes的交易资格默示陈述了其与公众之间进行公平交易的责任,那么其在未披露市场价格的情况下过度加价的行为无疑就是对公平交易责任和适合性义务的违反。可见,招牌理论的最大特点是仅从券商注册资格出发通过逻辑推演就能得到券商负有公平交易责任和适合性义务的结果,是适合性规则法律化的一个良好途径。
虽然对适合性原则有所发展,但SEC行政机制局限性在于:一方面,在主体资格上行政程序只能限于作为行政监管部门的SEC和作为行政相对人的券商,普通投资者不能象在司法程序中一样,直接向券商主张挽回损失,另一方面,在券商对投资者的赔偿方式和赔偿标准上,SEC只能在有限的几种处罚方式之间以及一定界限的金额内选择,与正常民事诉讼的救济手段和救济力度有较大差距。在此情况下,适合性规则进入司法体系也成为一种必然的选择。
二、联邦证券法10b-5反欺诈规则下适合性之诉
适合性规则在司法领域的应用体现在联邦证券法10b-5反欺诈规则下适合性之诉上。主流司法意见认为, 券商违反SRO规则的行为除非严重到了构成欺诈的程度否则不能作为民事诉由,并且即使构成欺诈, 违反SRO规则的事实本身也只能是认定欺诈的证据或者要件之一。此外, 券商违反适合性规则的行为即使构成欺诈, 也明显不属于1934年证券交易法中少数规定有明示诉权的反欺诈条款管辖范围, 因此只能通过默示诉权的途径进行司法救济。在此情况下, 作为默示诉权主要依据的联邦反欺诈兜底条款的10b-5规则因其适用范围的广泛性成为适合性之诉的不二之选。自上世纪70年代中期以来,联邦法院在默示诉权的范围上施加了种种限制, 不仅将主体资格仅仅限于证券的买卖双方, 而且还要求被告基于故意行事而且行为具有欺诈性,这为投资者的适合性之诉设置了巨大的障碍。
10b-5规则下违反适合性义务构成欺诈的一种形式是不真实陈述和遗漏重要事实,美国法院在Banca Cremi S.A.v.Alex.Brown and Sons, Inc.一案就此给出了五要件认定标准: (1) 购买的证券不适合购买者的需要。 (2)被告知道或者能合理的相信证券不适合于购买者的需要。(3) 被告为购买者还是推荐或者买入了上述不适合的证券。(4) 被告故意进行与证券适合性有关的实质性虚假陈述(或在对购买者有义务的情况下没有披露实质性的信息)。 (5)购买者合理依赖被告的欺诈行为并导致损害。在上述五要件中,投资者只要通过交易记录和其他书面材料就能轻易证明其中的客观要件,如所购证券的不适合以及券商的推荐和客户购买行为,也能容易证明作为专业人士的券商对明显不适合的证券应有一种“知道或合理相信”。但标准中的主观要件部分即券商的故意与投资者的合理依赖则往往难以证明。从券商故意的角度来说,绝大多数适合性之诉中,券商主观判断即使存在错误也不十分明显,再加上券商可能尽到一定的勤勉义务如获取客户信息和做过一定的证券调查,这使得客户难以证明券商主观上的故意,而最多只能证明其存在疏忽,而疏忽不能成为10b-5规则下成立欺诈的主观要件。而就合理依赖而言,客户自身的专业知识和投资经历,券商对其一定程度的信息披露都可以称为阻止其成立的理由。10b-5规则下违反适合性义务构成欺诈的另一种形式是直接通过某种行为进行欺诈。在该类案件中,券商一般对客户账户行使法律上或者实际上的控制权,违反适合性义务的券商通过滥用或超越权限的方式从事对客户不适合的证券交易。在O’Connor v.R.F.Lafferty&Co.一案中,法院就券商直接通过行为进行不适合证券交易构成欺诈提出了如下标准:(1)经纪商推荐(在全权账户下则是购买了)以投资者目标而言是不合适的证券。(2)经纪商推荐或者购买证券存在意图欺诈或者轻率的忽视投资者的利益。(3)经纪商控制了投资者账户。将此欺诈构成标准和上述基于不真实陈述和遗漏重要事实的欺诈构成标准进行比较,可以发现除了由于前者以券商控制账户为前提,因此无需证明投资者的合理依赖外,同样都要对券商的主观动机即故意(直接故意或轻率)进行举证,而这恰恰是投资者所难以突破的。
10b-5规则下的适合性之诉困境深层原因在于一方面10b-5规则和适合性规则在券商注意标准上存在差异。后者作为道德规范要求券商达到善良管理人的注意标准,而前者仅要求一般注意。另一方面,适合性作为道德标准所具有的弹性与侵权法下欺诈概念的刚性存在着冲突,这突出反映在上述主观要件认定的困难上。因此,适合性规则的法律化必须考虑券商的特殊性,不能简单套用适用一般主体的法律规则,而且道德规范不能完全转化为法律标准,始终总会存在这样或者那样的漏洞和模糊。针对上述问题,晚近以来各方试图通过引入证券仲裁机制重启适合性规则的法律化进程,以“酒肆责任”案例为代表的仲裁实践成为其典型代表。
三、证券仲裁与适合性规则—以“酒肆责任”为例
所谓证券仲裁指证券纠纷的各方通过仲裁协议的方式将其争议提交中立的第三方仲裁机构裁决的争议解决方式,其原是自律组织解决内部纠纷的一种机制。随着行业仲裁规则的统一和完善,联邦仲裁法的实施和日益增多的证券纠纷对替代争端解决方式的需求,证券仲裁越来越具有紧迫性和可行性。由此,联邦最高法院通过McMahon v.Shearson/American Express, Inc.和Rodriguez de Quijas v.Shearson/American Express, Inc.案确立了证券仲裁地位,明确了其强制性和权威性。此后,仲裁协议越来越成为券商与客户之间的必备条款,SEC甚至要求自律组织在章程中强制规定成员接受投资者仲裁申请的义务。
证券仲裁对适合性规则的发展集中体现在券商“酒肆(dram shop)责任”案例中。所谓的“酒肆责任”最早来源于英国的一项法律,规定酒馆对在其内醉酒的客人负有中断提供酒类的义务。券商酒肆责任理论认为券商客户账户关系的存在本身就是券商对客户有积极影响即“推荐”的证明,由此券商需要根据适合性规则对客户在关系存续期间的一切行为负责,包括对客户的不适合投资负有警告和拒绝的义务。
在酒肆责任的相关案例中,仲裁员充分发挥仲裁机制专业、秘密和高效的优点,从最大程度保护普通投资者立场出发,灵活选取判决依据,从不同角度对券商的“酒肆责任”予以支持。成为适合性规则与仲裁机制结合的典范。在peterzell v.Charles Schwab&Co.一案中,原告人peterzell在被告Charles Schwab公司开立证券期权账户,在遭受交易损失后peterzel基于适合性规则提起仲裁,要求Charles Schwab公司赔偿损失,理由是Charles Schwab公司不适合的引导原告进行与其投资目标不相符合的证券期权交易。经调查,在本案中,在账户开立之初,原告曾向被告虚假陈述,声称其富有证券期权投资经验。另外原告在投资策略错误、投资损失持续扩大的情况下仍轻率的继续投资。与此形成对照,被告在一开始就告知原告,其在证券期权方面的不能提供专业指导并就相关证券期权向原告提供了书面说明,此外在原告交易过程中也不能证明被告有任何类似于推荐的行为。因此就本案而言,投资者并未与券商之间形成代理或者信赖的关系,也不存在券商欺诈的可能,而且原告对于不适合投资在主观上也有明显过错。但仲裁意见认为,根据适合性规则,券商有义务持续的监控原告投资的适合性,在整个关系存续期间,原告在任何时候跨越了适合性的界限,被告都有义务有所行动以履行酒肆责任,而不能以客户的过错以及其他具体情况免责,本案最终裁决券商应承担赔偿投资者的部分损失的民事责任。在Cass v.Shearson Lehman Hutton一案中,NASD的仲裁员直接从纽约证券交易所道德性的自律规则405条导出了被告的民事法律责任,认为被告未能对原告的财务情况及其投资适合性进行尽职调查并阻止其灾难性的交易策略,从而违反了交易所的适合性规则即405条下的酒肆责任,应对被告进行部分赔偿。
从上述案例中可以看出,证券仲裁通过酒肆责任对券商适合性义务进行了最大程度的扩张,这既结合了仲裁机制自身的优势,也有利于投资者最大程度的挽回损失并建立对证券交易市场的信心。而作为适合性义务的特殊形式,酒肆责任在某种意义上已等同于对证券交易的实质性审查。
四、结论
本文就美国券商的适合性规则的来源及其在不同领域实现机制进行了系统性的梳理和阶段性的分析,但需要注意的是,适合性规则的不同实现机制并非是互相替代的,相反它们是相辅相成互相补充的。
作为道德规范,适合性规则在法律领域的进化轨迹不仅反映了美国合作性证券规制体系中自律与他律的良性互动,也反映了日趋日益复杂化和专业化的美国证券市场体系对法律与道德紧密结合的需求。由于与行业趋势的契合,适合性规则长远上看必将得到更大提升,因此如何进一步厘清适合性的含义及其标准并减少其随意性,如何更加恰当的寻找适合性的法律依据以促进其发展,将成为适合性规则进一步发展的关键。
参考文献
[1]See John G.Gillis and Emily C.Hewitt:Securities Law and Regulation, Financial Analysts Journal, Vol.39, No.51979, p10
[2]See NASD Rules2310
[3]See Clifford E.Kirsch:Broker-dealer Regulation, Practising Law Institute, 2004, pp.6~4~6~20
[4]See Charles Hughes&Co.v.SEC, 139F.2d434 (2d Cir.1943)
[5]See Cheryl Goss Weiss:Review of the Historic Foundations of Brokre-Dealer Liability for Breach of Fiduciary Duty, Journal of Corporation Law, Vol.231997, p101
[6]参见托马斯.李.哈森:证券法.中国政法大学出版社, 2003年版, 第648~649页
[7]See Banca Cremi, S.A.v.Alex.Brown&Sons, 132F.3d1017
[8]See O'Connor v R.F.Lafferty&Co., 965F2d893, 897 (10th Cir1992)
[9]参见沈四宝王晓川沈建中马其家:美国证券仲裁及其启示.证券市场导报, 2003年1月, 第61~63页
[10]See Lowenfels, Lewis D., Bromberg, Alan R.:Beyond Precedent:Arbitral Extensions of Securities Law, Business Lawyer Vol572001, p1001
基于规则的推荐 篇8
一个好的入侵检测系统拥有丰富的规则库,如果不对这些数量庞大的规则进行有效的组织和分类,则每捕获一个数据包就要遍历一次所有规则,这无疑会增大系统对每个数据包的处理时间,导致丢包。规则解析时数据结构的设计对系统效率和性能至关重要。基于如上分析,在本文中提出了一种基于三维规则链表的规则解析方法。
1 规则描述语言及编写规则
规则描述语言是用来描述规则的语言,规则能反映入侵行为的特征,一条规则对应一种入侵行为。当某个数据包满足某条规则描述的特征时,系统则认为检测到一个入侵事件并进行预警[1]。
在基于规则匹配的入侵检测系统中,规则描述语言设计是否合理、规则库是否丰富是衡量入侵检测系统性能的重要标准;本设计中采用类snort规则的规则描述语言[2~8],规则结构为:
规则:规则头(规则选项)
如一条规则范例:alert tcp 210.43.10 6.1/24 0:65535->192.168.1.0/24 80:80(content:”GET/default.ida?”;msg:"code red")
规则头:alert tcp 210.43.106.1/24 0:65 535->192.168.1.0/24 80:80
规则选项:(content:”GET/default.ida?”;msg:"code red")
2 规则头结构解析
以规则alert tcp 210.43.106.1/24 0:65535->192.168.1.0/24 80:80(content:”GET/default.ida?”;msg:"code red")为例对规则头进行解析:
规则头有固定的格式要求,是一个7元组,每个元组用空格隔开。
3 规则选项结构解析
以规则alert tcp 210.43.106.1/24 0:65535->192.168.1.0/24 80:80(content:”GET/def ault.ida?”;msg:"code red")为例对规则选项进行解析:
规则头后“()”内的部分为规则选项,一条规则可以有不同内容和数目的选项,规则选项构成了规则的核心,它能反应各种入侵事件的基本特征。一条规则选项由选项关键字和选项内容构成,其格式为:
选项关键字[:选项内容]
以(content:”GET/default.ida?”;msg:"code red")为例,共有两个选项,其中关键字content的内容为“GET/default.ida?”,关键字msg的内容为“code red”。
4 规则解析及三维链表的建立
4.1 规则文件插件
规则文件也用到了插件思想,一个入侵检测系统的规则库应当能够动态的扩充,以适应不断出现的新的攻击,这种动态扩充应当以不影响系统结构为前提,插件能满足这种要求。规则文件插件是通过构造一个文件名的链表实现的,系统在初始化时会调用init_rule_file_list()函数对规则文件链表进行初始化:
每次调用add_rule_file()函数都会将对应的规则文件名添加到规则文件链表中,当编写了新的规则文件,只需简单地调用add_rule_file()就可以实现规则库的扩充。
4.2 三维规则链表结构
本设计中采用三维链表的形式组织所有规则,将规则库中所有规则按类别添加到三维链表的相应位置,这种方法既可节省存储空间,又加快了对每个包的处理时间。三维链表结构如图1所示:
4.3 三维规则链表解析
三维链表的形成需要定义相应的数据结构,本小节将对这些数据结构进行详细介绍。图1中rule_list为规则链表头,指向三维链表的第一维。
其中rule_type为规则类型,系统支持两种类型的规则,即前文所述的alert和log,因此三维链表的第一维实际上只有两个结点。
Alert Fun和Log Fun为两个函数指针,分别指向报警函数alert_fun()和log_fun()(在respond.c中定义),当规则类型为log时,Alert Fun指针将被赋值为空;当检测到入侵事件时,两个函数会遍历第二个链表参数operfunlist,将报警信息在终端输出或写入日志文件,同时会根据命令行的参数(-s选项)判断是否让机箱发声预警。
其中Rule Node_t类型变量ip,tcp,udp,ic mp分别代表ip协议,tcp协议,udp协议和icmp协议,当对某条规则解析时,系统会根据规则头部的协议类型将该规则添加到不同的协议类型链表中(Rule Node_t类型,即三维链表的第二维);在对数据包检测时,只有当数据包满足相应的协议类型时,才会继续往下遍历三维链表,这样将有效节省检测时间。
c、Rule Node_t解析
在Protocol Node_t中定义的4个协议类型均为Rule Node_t类型,该结点用来描述规则头的信息,所构成的链表即三维链表的第二维,其结构为:
其中sip_not,dip_not用来标志规则头中IP地址前是否有!符号;
sip和dip分别存储规则中源IP地址和目标IP地址信息,如:
规则中IP地址为210.43.106.1/24,则链表中存字符串“210.43.106”
规则中IP地址为210.43.106.18/32,则链表中存字符串“210.43.106.18”
规则中IP地址为210.43.106.1/0,则链表中存字符串“any”
min_sport,max_sport及min_dport,max_dport存储源、目标端口范围的最小值和最大值
check_fun为一函数指针,指向函数check_packet(packet_t*packet,Rule Node_t*rn),用来检测当前数据包是否满足当前规则头。在对数据包进行检测时,如果此函数检测到当前数据包满足规则头,则继续往下遍历down链表(Rule Option Node_t类型,即三维链表的第三维),如果不满足则跳过当前Rule Node_t结点,继续往右处理下一个Rule Node_t结点,这样可有效地节省检测的时间
down为Rule Option Node_t类型的指针,向下指向规则选项链表
right为右指针,指向下一个Rule Nodt_t结点,用于构建当前链表
在构造第二维链表时,使用一个技巧:由于Rule Node_t是用来描述规则头信息,而在规则中存在很多规则头相同的规则。在解析规则时,当碰到新规则头与当前规则头结点的信息相同时,只需将新规则的选项内容添加到当前规则头结点的down链表中,不需要再另外开辟空间存储新规则头,这样可节省存储空间。
d、Rule Option Node_t解析
规则头结点的下指针down为Rule Option Node_t类型,该结构用来描述规则选项信息,它构成的链表即为三维链表的第三维,这是规则链表中最重要和复杂的结构,检测入侵的判断函数、规则选项内容等都附在该结点上,其结构定义:
其中opt_con_list为void类型的指针数组,用来存储规则选项中每个关键字对应的内容信息,比如,如果有规则选项msg:“codered”,则opt_con_list[OPT_TYPE_MSG]中将存储字符串“code red”;如果有规则选项dsize:20,则opt_con_list[OPT_TYPE_DSIZE]中将存储整数20,这些内容将在规则处理函数中使用。
fun_list为Oper Fun List_t类型指针,指向规则选项处理函数链表,Oper Fun List_t结构定义为:
其中fun为函数指针,指向与选项关键字对应的处理函数,em为预警信息;规则选项的每个关键字都有对应的处理函数(在本设计中,所有的处理函数均以FL开头)。
所谓处理函数,其功能是判断规则选项关键字的内容与数据包对应域的值是否相同,如果不同则返回0(即当前数据包不满足该规则选项),如果相同则需另作处理(下文介绍)。以规则选项dsize:20为例,关键字dsize对应的处理函数为FLdsize_equal(),其功能是判断packet中数据的净荷长度是否等于20,如果不等则返回0。
处理函数也用到了插件思想。规则解析时,每遇到一个规则选项关键字,系统在设置opt_con_list[]数组中对应的值后,同时会调用add_operate_fun()函数将对应的处理函数添加到fun_list链表中,这样,当系统需要添加新的规则选项关键字时,只需简单地调用add_operate_fun()就可实现。
以规则选项(content:”GET/default.i da?”;msg:"code red")为例,系统分析此规则后,将形成的链表结构如图2所示:
应注意的是,在示例规则选项中只有content和msg两个关键字,但在形成的fun_list链表中却有三个结点,为什么会多出一个结点呢?其实这正是本系统使用的一个技巧:在每个处理函数链表最后加上一个尾结点,尾结点的成员fun指向函数tail_fun,函数定义如下:
此函数总是返回1,这样处理的目的是为了使操作处理函数时更加方便:如前文所述,处理函数检测到当前数据包内容与选项内容不相同时会返回0,但当检测到数据包内容与选项内容相同时,所有的处理函数均会执行相同的动作(以dsize关键字对应的处理函数FLdsize_equal()为例):
即返回下一个结点中处理函数的值。这样,在入侵检测模块中检测数据包是否与当前规则选项匹配时,程序只需用如下语句进行判断即可:
e、Content Struct_t解析
Content Struct_t为存储选项关键字content相关信息的结构,其数据结构定义为:
Rule Option Node_t结构中,指针数组成员opt_con_list[OPT_TYPE_CONTENT]指向Rule Option N-ode_t类型的指针。由于一条规则中,关键字content可以出现多次,且它可以被nocase、offset和depth关键字修饰,所以在描述content关键字对应的内容时,不能简单地用一个字符指针或整形指针来描述,而需要用Rule Option Node_t类型的链表进行描述。以(content:”kill me”;nocase;de pth:20;content:”GET”;nocase;offset:10;depth:100)为例,规则选项结点中opt_con_list[OPT_TYPE_CONTENT]的值将是如下链表,如图3所示:
在程序中实现content搜索采用的是BM海量搜索算法,由于其不能区分大小写,所以实际上关键字nocase并无作用。
至此,三维规则链表已经建立完成,利用Libpcap捕获数据包后,就可以遍历此链表进行入侵检测了。
参考文献
[1]刘文涛.网络安全开发包详解[M].北京:电子工业出版社,2005.
[2]Kinage.Snort userguaid[EB/0L].(2005-11-10)[2006-03-12]http://blog.tianya.cn/blogger/post-show.asp?BlogID=154815&PostID=3192150&idW riter=0&Key=0.2005.11.
[3]snort 2.0 RULE OPTIMIZER[CP/OL].2003[2006-03-15]http://www.sourcelqre.con.
[4]snort 2.0 Hi-performance Muti-rule Inspe ction[CP/OL].2004[2006-03-15]http://www.sourcefire.con.
[5]snort 2.0 Detection Revisited[CP/OL].2004[2006-03-15]http://www.sourcefire.con.
[6]snort 2.0 Protocol Flow Analyzer[CP/OL].2004[2006-03-15]http://www.sourcefire.con.
[7]Roberto P.Alarm Clustering for Intrusion Detection Systems in Computer Networks[J].Engineering Application of Artificial In-telligence,2006,19(3):429-438.
基于统计与规则的术语抽取 篇9
术语抽取是中文信息处理中的一项基础性课题,在很多领域都有很重要的作用,如在自然语言处理领域中的统计机器翻译、信息检索、文本分类、文本摘要等。术语抽取在语言学上的自然语言生成、计算词典编撰学、句法分析、语料库语言学研究等领域中都有广泛地应用。根据文献[1]中的统计,在含有15000个词条的语料库中,即便使用含有70000个词语的词典,仍然有30%以上的词条没有被收录。最近的研究也显示,60%的分词错误是由未知词导致的。因此有效地术语抽取,将为自然语言处理提供基础性支持。
由于汉语不像西方语言那样具有天然的分隔符,无法直接套用西方已成熟的术语抽取理论和技术。近几年,随着信息检索、机器翻译等领域的深入研究,其关键技术难点都集中到了汉语术语或双语术语对的抽取。目前国内外许多研究者在术语抽取方面已经做了大量的工作,使用的方法有基于规则的方法、基于统计的方法以及统计与规则相结合的方法。文献[2]等开始进行信息领域术语抽取的初步研究,提出了术语领域性特点。文献[3]主要利用语言学的规则,对文本中动词和与其搭配的抽象名词宾语的自动识别进行研究。它提出“匹配+语义限制”模型,并借鉴国外相关研究经验,提出“匹配+词语相似度”计算模型,并实现了相应的算法。文献[4]对动词与动词类型搭配的标注进行了研究。文献[5]和文献[6]则开始研究纯统计学的方法对开放语料进行自动术语抽取,他们的算法都是从语料库中抽取出待扩展的双字词种子,然后在种子的基础上进行前后k字的扩展来抽取多字词。
本文采用规则与统计相结合的方法对新词进行识别。首先从互联网上下载大量语料从中抽取正文,接着对文本进行分词标注;然后利用分词碎片的词性信息进行重复串查找;接着根据术语的单元性(Uni t hood)采用SCP统计量进行术语抽词,然后使用经典的C-val ue值评价候选词的术语性(Ter mhood)。
1 术语抽取
1.1 语料预处理
本文的实验语料来自车牌识别领域的专业论文,其格式为pdf。为了后续处理的方便,我们首先对语料进行格式转换,把它们转换成纯文本格式,并且要去掉一些诸如图像、非汉字和字母字符等垃圾信息,然后使用中科院的词法分析器对语料进行分词标注,分词的目的是减少噪声串的产生。
1.2 基于词性标记的候选词查找
原始语料库中汉字是以“字”为基本单位的,直接对原始语料逐字分析来进行新词识别,不但速度慢,而且没有语言知识的引导,容易出现新词边界判断不准等错误,且会引入过多的噪声串。
由于术语大多是2到8个汉字长度,且为名词性短语,它们的模式比较有限,如名词+名词,(形容词|名词)+名词等。所以在收集候选术语时,我们可以充分利用分词标注信息进行候选术语的筛选,参照文献[7]的研究工作,我们使用如下过滤规则:
(1)“+d”表示所有以副词结尾的序列;
(2)“*[ur eopc]*”表示所有包含助词、代词、叹词、拟声词、介词、连词的序列;
(3)“[m]+”表示所有数字序列;
(4)“[t]+”表示所有的日期序列;
(5)“mq*”表示所有以数词加量词开头的序列;
使用规则的过滤,这样就大大减少了噪声串的产生。虽然分词标注的错误会导致一些真正的术语被过滤掉,但是从实验的结果来看,被过滤掉的术语并不多。
1.3 PAT Tree
在统计重复串时,如果采用朴素的搜索算法进行收集,那么时间代价将非常高,这里,我们采用后缀树(Suf f i x t r ee)进行重复串的收集。使用后缀树统计出所有出现频率在两次以上的字串,由此构成候选的术语集合表。
Suffix tree是一种可变长统计模型,它能存储任意长度字串的位置和频率,属于可变长的统计模型,克服了对术语长度的限制。相对倒排文档索引来说,后缀树虽然索引文件比较大,但支持对查询的完全检索,即不需要对查询进行分词等处理。后缀树索引采用半无限长子串作为其索引模型,存储所有Sistring到数型结构中,如表一所示,字符串“number”共有21个子串,6个Sistrings,后缀树只需要索引其中6个sistrings即可。
1.4 基于SCP的术语抽取
在Suffixtree的基础上,通过基于规则的重复串查找得到候选术语,接着使用SCP模型判断候选术语成词的可能性。文献[8]总结了6种常见的用于抽取词语的统计模型,最后得出SCP模型的性能最好。SCP用于抽取n(n>=2)元词语的公式如下:
其中P(W1W2……Wn)是W1W2……Wn出现在语料中的概率。候选术语SCP值越大,表明该候选术语成词的可能性越高。
1.5 基于C-vl aue的术语评价
在术语抽取中,对于术语性(Ter mhood)的评价,文献[9]提出了C-val ue公式:将候选新词的长度作为一个重要的特征加入到公式中,用来抽取多字新词或短语。并在以后的研究中不断对该思想进行改进研究。改进的C-val ue定义为:
(1)当候选新词a作为一个子串以相同频率出现在另一个更长的字串中时,则a不是一个有效的新词。即C-val ue(a)=0。
(2)当候选新词a中的任何一个子串不是候选新词时:
其中,n(a)表示a在语料中出现的次数,|a|表示a的长度。
例如:对于候选新词a=“二叉树”,当“二叉”、“叉树”都不是候选新词时,我们使用上述的公式来计算其C-val ue值。其中|a|=3,n(a)表示“二叉树”在语料中出现的频率。
(3)当候选新词a作为一个子串在一个或多个候选新词中出现时,则其计算公式为:
其中,t(a)表示所有包含a的更长的候选新词在语料中出现频率的总和,c(a)表示包含a的更长的候选新词的数目。
2 实验结果分析
本实验的语料来自ht t p://dl i b.cnki.net网站的关于车牌识别的论文,共计120篇。原始的pdf格式语料大小40.2MB。经过格式转化后,得到2.02MB的纯文本,其中包含374625个汉字。我们把其中80篇用来做训练语料,余下的40篇用作测试语料(其中包含710个术语)。在测试语料中,经过重复串的查找,我们得到27365个候选串,经过SCP以及C-val ue的过滤,得到789个候选术语,其中正确的术语个数为538,准确率为68.19%,召回率为75.77%,F-值为71.78%。
在抽取到的789个术语中,我们按术语的长度分类做了统计,2字词到7字词的数目如表二所示:
从表二的结果中我们可以看出,四字以内术语的准确率和召回率明显比五字以上的词要高,且它们占术语总数比重比较大,这说明本文使用的方法效果不错。下面列举出部分抽取的术语:
3 结束语
本文针对术语具有单元性和术语性的特点,使用SCP模型进行术语候选词的抽取,再利用C-val ue模型对术语进行评价。在接下来的工作中,我们将针对SCP模型和C-val ue模型进行更进一步的研究与改进,以提高术语抽取的质量,对于结果中出现的比如:“全面施工”、“系统能够应该”等垃圾串,我们可以考虑通过训练一部垃圾串词典进行过滤。
参考文献
[1]吴立德.大规模中文文本处理[M].上海:复旦大学出版社,1997.
[2]王强军,李芸,张普.信息技术领域术语提取的初步研究[J].术语标准化与信息技术,2003,(1).
[3]高建忠.汉语动宾搭配的自动识别研究[D].北京:北京语言文化大学,2000.
[4]白妙青,郑家恒.动词与动词搭配类型的自动标注方法[J].山西大学学报,2004,(27).
[5]Patrick Pantel,Dekang Lin.A statistical Corpus-Based Term Extractor.Canadian Conference on AI2001.36-46,2001.
[6]刘建舟,何婷婷,姬东鸿,刘晓华.基于开放语料的汉语术语的自动抽取[C].第二十届东方语言计算机处理国际学术会议,2003.
[7]邹纲,刘洋,刘群.面向Internet的中文新词语检测.中文信息学报,2004,18(6):1-9.
[8]Silva,J.F.and Lopes,G.P,A Local Maxima Method and a Fair Dispersion Normalization for Extracting Multiword U-nits,In Proceedings ofthe6th Meeting on the Mathematics ofLanguage,1999.
基于构件技术的规则引擎研究 篇10
关键词:规则引擎,构件,业务规则
0 引言
面向构件技术是把传统工业标准化、模块化和分工协同的思想应用于软件开发领域, 同时继承和发扬了很多相关软件技术的成果, 在改善人与计算机的沟通, 提高软件的复用程度, 以及如何提高开发效率快速反映变化等方面取得了突出的发展。
对于复杂企业级项目开发, 在业务应用层面, 我们需要面向业务性的构件具有灵活性, 同时还要解决“业务逻辑相关”构件的可复用性, 可维护性以及可扩展性。
而目前大多数的平台厂商专注于在构件架构的技术上, 目的是使开发人员能够开发出粒度非常高的可复用的构件。但是“多变”的业务逻辑使得我们只能提供低粒度的构件和接口, 开发出的业务构件数量庞大, 但很难复用和维护。所以我们必须将“多变”的业务逻辑与程序代码分离, 让它们能在运行时可以动态地管理和修改从而提供软件系统的柔性和适应性。从而实现管理和复用业务逻辑, 并且业务逻辑的变更也不会影响引起构件本身的变更。规则引擎正是应用于上述动态环境中的一种解决方法。由此, 我们在深入理解规则引擎技术的基础上, 同时将规则引擎引入面向构件技术。
1 规则引擎
一个业务规则包含一组条件和在此条件下执行的操作, 它们表示业务规则应用程序的一段业务逻辑。业务规则的理论基础是:设置一个或多个条件, 当满足这些条件时会触发一个或多个操作。
规则引擎的推理步骤如下:
(1) 将初始数据 (fact) 输入至工作内存 (Working Memory) 。 (2) 使用Pattern Matcher将规则库 (Rules repository) 中的规则 (rule) 和数据 (fact) 比较。 (3) 如果执行规则存在冲突 (conflict) , 即同时激活了多个规则, 将冲突的规则放入冲突集合。 (4) 解决冲突, 将激活的规则按顺序放入Agenda。 (5) 执行Agenda中的规则。重复步骤2至5, 直到执行完毕Agenda中的所有规则。
任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效率问题。
当引擎执行时, 会根据规则执行队列中的优先顺序逐条执行规则执行实例, 由于规则的执行部分可能会改变工作区的数据对象, 从而会使队列中的某些规则执行实例因为条件改变而失效, 必须从队列中撤销, 也可能会激活原来不满足条件的规则, 生成新的规则执行实例进入队列。于是就产生了一种“动态”的规则执行链, 形成规则的推理机制。这种规则的“链式”反应完全是由工作区中的数据驱动的。
2 基于构件技术的规则引擎
2.1 面向构件技术
面向构件作为将软件系统分解与隔离的一种方法, 是一个非常通用的概念。它解决了企业应用的结构问题。通过面向构件技术, 一个系统是按照个性化的需求, 从一个比较完善、比较成熟的组件库组装而成, 大大提高了系统的成功率、稳定性、适应性和逐步发展性。通过面向构件对业务的封装和积累能够保护现有投资, 有助于高效的表达业务, 提高软件的复用程度, 进而表现其内在的组织敏捷性。
2.2 构件技术中引入规则引擎
使用面向构件技术我们需要:应用系统的核心业务逻辑提炼成的构件具有高可复用率;制作构件时应使其尽量覆盖涉及的主题, 并考虑潜在的用户需求及将来的变化;应尽量将复杂的功能封装为构件。
但是由于业务逻辑的复杂性以及多变性, 现在大多数的构件平台仅能提供较低粒度的构件, 使得开发人员需要花大量尽力来定制开发业务逻辑层面的构件, 而且很难复用和维护。
因此要使构件能够面向业务层面就要通过规则引擎把“可变化”的业务逻辑与程序代码分离开来。
2.3 实施方案
在构件技术的基础上, 规则引擎的实现方式是分布型的。也就是说, 规则调用和规则的执行是分布式的。
首先, 规则执行以服务的形式存在。规则服务的实现如下:
(1) 以规则作为参数, 创建规则引擎; (2) 为规则引擎添加数据; (3) 执行规则, 获得返回。
其次, 构件中只嵌入调用规则服务的代码, 没有直接嵌入规则引擎。规则服务的调用如下:
(1) 准备规则集需要的数据; (2) 指定被使用的规则集名称; (3) 调用规则服务、执行规则并获得返回; (4) 处理返回结果。
最后, 规则是在业务模型之上定义的, 利用可视化规则开发工具, Web规则编辑器定义规则, 从而简化规则的编写过程。可视化规则开发工具定义好的规则最终形成规则库存储在构件之外, 可以存储在数据库或文件系统中。
其中, 将规则存储在构件之外的另一个好处就是能够实现规则的复用。
3 结束语
在构件技术的基础上实现的规则引擎不但可以避免业务逻辑组件的复杂性, 而且使业务逻辑的开发不再完全依赖程序开发员, 减少构件的开发数目, 从而降低构件的维护成本。另外, 通过将业务规则剥离出程序之外, 可以实现规则本身的管理性, 形成业务规则管理和执行的集成系统, 方便了与宿主系统的集成。
参考文献
[1]黄柳青, 王满红.构件中国——面向构件的方法与实践[M].北京:清华大学出版社, 2006.
[2]何仁杰, 梁冰.用规则引擎替换代码[DB/OL].http://blog.csdn.net/cs-dnloading/archive/2005/02/02/277276.aspx.2004.
[3]李国乐.Java规则引擎与其API[DB/OL].http://www-128.ibm.com/de-veloperworks/cn/java/j-java-riles/#IDACCWOB.07/2005.
[4]庞伟正, 金瑞琪, 王成武.一种规则引擎的实现方法[J].哈尔滨工程大学学报, 2005.
[5]陶晓俊, 朱敏.基于规则引擎的企业服务开发模式[J].计算机技术与发展, 2008.2.