1、河北大学硕士学位论文基于协同过滤和文本相似度的标签推荐及搜索优化姓名:王传豹申请学位级别:硕士专业:计算机软件与理论指导教师:袁方2011-06Abstract IIAbstract At present, social tagging system has become the research focus, users can freely add tags for the uploaded resources in the system. Because each users different knowledge backgrounds, which caused a problem
2、that many tags could not describe the resource properly and even have some spelling errors. This problem hinder search this kind of resource for other users. The accuracy of tag recommended is an important part of the promotion of social tagging system. In the social tagging system, tags of users ta
3、gging can not better describe the contents of the resource, which not only affect the resource sharing and classification, but also not conducive to promoting better. In addition, using keywords are too vague when users search for resources, the traditional keyword matching method can not meet the n
4、eeds of users. For this, we proposed a tag recommendation method based on collaborative filtering and text similarity and search optimization. For the webpage of users would tagging, calculating the number of users who have marked the input webpage. If marking times is more than the threshold, the c
5、ollaborative filtering method is used. Search users that are similar with the current user, the tags with higher weights are recommended to the current user, else we use the improved text similarity formula to search pages, and the tags with higher weights are recommended to the current user. But th
6、e direct use of cosine similarity formula can not better solve the tagging problem. In this paper, we improve the cosine similarity formula in calculating similarity webpages, calculate the weights of each word and each webpage. Using improved cosine similarity formula can be good solve these proble
7、ms when calculate similar webpages. Finally, this paper analyzes the role of tags in optimize web search. When query terms are not in a webpage, using traditional methods can not get good results. For this, the article improves the formula of search for the target webpage, using the tag social chara
8、cteristics. At the same time, we consider the tag marked follow the power law distribution, taking the logarithmic approach reduce calculation errors.Experimental results show that this algorithm has effectively improved the accuracy of tags recommended,comparing with the current tags recommended al
9、gorithms.Keywords Tagging System Tag Tag Recommended Web Search Optimization第1章 绪 论 1第1章 绪 论 1.1 研究背景 经过几十年的发展,互联网已经成为人们必不可少的信息获取的重要方式,Web已经进入了2.0的时代。传统的报纸和书刊已经不能满足人们的需求,而互联网快捷而准确的信息传递的方式越来越被人们所接受,特别是近几年手机的普及更推动了互联网的发展。根据中国互联网信息中心(CNNIC)发布的第27次中国互联网络发展状况统计报告1,截至2010年12月底,我过网民数量已经突破4.5亿大关,达到4.57亿,互联网
10、的普及率大大提高,达到34.3%,较2009年底提高5.4个百分点,特别是社交网站,增幅高达51.4%,我国IPv4地址数量达到2.78亿,IPv4地址资源即将耗尽。 然而,随着信息量的扩大,Web上绝大部分信息对用户来说是没有用的,这导致了信息过载2问题,即用户不能从浩瀚无边的信息中及时的搜集到自己的信息。因此,一种能够提高用户搜索效率的应用,社会标注(Social Annotation) 3应运而生,标注,可以称为标签(Tag),就好像每个人的名字一样,通过标签可以找到被标注的对象。标签不同于一般的关键词,它具有开放性、无层次性,是由资源共享者添加的而不是事先由专家规定的4。一般情况下的标
11、注是单独的个人行为,如果通过一定的方式把这些标签联系在一起,就成为了社会标注。 近些年来,提供标注服务的网站获得了较快的发展。目前,较为流行的有Del.icio.us、Flickr、YouTube和Furl等网站。这些网站都是提供对资源标注的功能,允许用户对自己上传的资源标注,这样不仅方便了用户自己资源的整理,而且其他用户也可以通过该标注找到他们喜欢的资源。这不仅是简单意义上的资源共享,从更深层意义上来讲,是一种知识的发现与共享3。只要这些资源被其他用户用相同的标签标注过,用户就能发现以前不曾知道的资源,而新发现的资源对用户来讲有可能很重要。 本文通过对社会标注系统的研究,深入分析不同标注次数
12、的标签,发现很多标签不能较好描述网页内容,影响了网页的共享与分类。另外,目前资源搜索的方法大部分都是基于搜索词查找网页,不能较全面的搜索到目标网页。针对上述情况,本文提出了基于协同过滤和文本相似度的标签推荐算法和基于标签的网页搜索优化算法。实验表明,本文提出的方法在社会标注系统中标签推荐准确率得到了提高。 河北大学工学硕士学位论文 1.2 研究现状 目前,关于英文方面的社会标注系统已经比较成熟。其中Del.icio.us允许用户使用标签对自己喜欢的网页进行标注并共享;Flickr允许用户对自己喜欢的图片进行标注并共享;在YouTube网站上用户可以将自己喜欢的视频保存下来并与其他人共享。本文主
13、要研究内容是如何提高Del.icio.us网站上标签的推荐质量及标签如何提高搜索网页的性能。在Del.icio.us网站中,它不但允许用户收藏自己喜欢的网页,而且允许用户共享网页。不仅如此,用户在上传网页时,网站会推荐比较流行的标签给用户,这样有可能造成标签的长尾分布5。虽然大部分流行的标签能较好的标注网页,但是也有少部分的以前使用较少的标签更能描述标注的网页,该网站目前还没有在这方面加以改进。如图1-1所示。 图1-1 del.icio.us网站标签分配机制 另外,对于搜索引擎优化(Search Engine Optimization)6问题研究的比较成熟,优化的目的是增加网站的点击量,提高
14、网站的在搜索结果中的排名,从而让更多的用户知道网站,提升网站的知名度。网页排名大部分都是基于查询词和文档的相似度,主要的技术包括链接分析7、元数据的抽取8、锚文本9、搜索日志的挖掘10,还有的是通过网页的可信度排序,如HITS算法11 和PageRank算法12。随着Web 2.0技术的发展,越来越多的社会标注网站允许不同知识背景的用户为自己的资源标注标签,Del.icio.us网站就是其中一个,随着标签数量的增加,标签所代表的有用信息被运用到多个方面,例如个性化搜索13、语义网络14等,但是如何将标签信息应用到引擎优化中去是一个棘手的2第1章 绪 论 3问题。 许多学者就上述问题进行了相关研
15、究。G. Mishne15开发了一个协同过滤标签推荐系统,它通过信息检索发现一些已标注的相似的博客,使用启发式规则为标签打分,最后提供一些相关的标签给用户选择。S. On K. Lee等16提出了一种为博客自动推荐标签的方法,该方法使用混合人工神经网络,利用从Web 2.0协作标记提取的集体智慧以及词的语义学习如何预测最好的标签集合。C. Sanjay等17开发了一个利用现存的博客为新博客提供标签建议的系统。系统分为标签压缩、标签建议引擎和评估三个部分,其中标签压缩分为标签标准化和压缩确认两部分。标签压缩就是将每个标签中的空格和标点符号去除,对于具有同根的标签使用Porter stemming
16、算法剔除成相同的单词,然后按字母的先后顺序排序,例如“news and politics”和“politics and news”都被压缩成“and new polit”。压缩确认是确保在相同词根下的词有相同的意思。标签搜索引擎包括基础案例、案例检索和案例评估。基础案例中用到了Lucene搜索引擎,该搜索引擎能够为目标博客提供包含有一个或多个特殊检索词的博客。案例检索中使用TFIDF值比较博客之间的相似度。检索到相似博客后,综合考虑标签频率、文本发生率、标签个数、等级和聚类多个方面,将总权重较高的标签推荐给目标博客。最后使用精确的字符匹配评估标签的查准率和查全率。Y.-T. Lu 等18提出了
17、基于内容的标签推荐,通过改进的余弦相似度比较网页的相似性,将相似性较高的网页中权值高的标签推荐给用户。文献19提出了基于HITS算法的协作式标签推荐方法,通过奖罚算法选择出较好的标签,并给出了好标签的标准。这些标准包括:多方面高覆盖性、高普遍性、标签标准化等。这些标准值的我们借鉴并应用到以后的研究中去。文献20提出了使用社会标签优化搜索的方法,分析了如何计算查询词与标签之间的相似度和网页的受关注程度。 而关于中文方面的标签推荐系统的研究相对还比较落后,并且标签推荐系统和使用标签优化搜索方面的单位和相关方向的文献相对也比较少,许多网络用户对什么是标签推荐和如何优化搜索还比较陌生。近些年,随着网络
18、迅猛发展,越来越多的学者开始关注标签推荐这一领域,并且取得了一定的成果。 目前,中文方面的标签推荐系统和如何使用标签优化搜索的研究还处于初级阶段,大部分都停留在理论的基础上,还没有较为成功的社交网站,如果能创建几个大型的社交网站,将研究的成果应用到网站的建设中去,这样就有可能激发更多的学者关注这一领域,推动该领域的进一步发展,让更多的人熟知什么是标签推荐系统,从而参与进来。 河北大学工学硕士学位论文 41.3 研究目的和意义 传统的社交网站,允许用户为自己的资源任意添加标签,由于每个用户积累的知识各不相同,有些用户添加的标签有明显的错误或者能概括资源的内容,影响了资源共享的质量。我们在数据集中
19、找出了一些用户添加的标签,如图1-2所示,从中可以看出,有些标签拼写错误或者单复数都出现或者不能表达任何意思。例如 “musik”是“music”的错误拼写,“book”和“books”、“bug”和“bugs”单复数都出现。这些标签不仅不利于用户对资源的分类,也影响了其他用户的搜索性能。因此,提高标签标注的准确度,成为社交网站今后较快、较好发展一个重要的方面。 li, yao, service:email:list:archive, nyt, lat, x, tk, ai, !read_later, &, books,book, .year:2005, tr, music, musik, y
20、ing_not_to_be_an_asshole, !, Israel, phil-wood, hci, paloalto, Nathan, anime, y!q, bootycall, _liat, umm:is1091, bugs, bug 图1-2 用户标注网页使用过的标签 据有关研究表明,标签标注错误的出现大部分是由于用户不懂的用何种标签标注资源比较合适,往往随意添加几个就草草了事。随着资源数量的不断增加,网站管理员很难对这些资源和标签分类,其他用户经常搜索到错误的资源,给用户资源共享和网站的发展带来了较大的阻碍。针对上述问题,本文提出了一种基于协同过滤和文本相似度相结合的方法。该方法
21、对第一次标注的网页和标注次数较多的网页都能自动推荐标签,不仅考虑了标签的标注顺序,而且考虑了标签集合以外的单词,这些单词中有很多能较好的描述网页内容,用户可以从推荐的标签中选择,无需再手动添加,从而提高了标签的质量。 当前网页搜索的方法主要基于关键词的搜索,如果用户使用的查询词过于模糊或者概括性较强,仅仅使用查询词匹配方法不能较好的搜索到目标网页。针对上述问题,本文提出了基于标签的搜索优化算法,该算法利于标签独有的特性查找目标网页,而且无需抽取网页内容,提高了搜索效率。 1.4 主要研究内容和论文组织结构 1.4.1 主要研究内容 本文的主要研究内容为用户标注的网页自动推荐标签和标签在搜索资源
22、中所起的第1章 绪 论 5作用。讨论了目前标签推荐系统中存在的一些问题,并在此基础上,提出了一种新颖的标签推荐方法,提高了标签标注的准确度,而且也分析了标签是如何提高资源搜索的效率。 本文的主要工作如下: 1. 介绍传统的标签推荐系统存在的问题和需要改进的方面。 2. 提出了一种考虑比较全面的标签推荐方法,将网页分为两类,一类使用协同过滤技术,查找标注过该网页的用户所使用的标签,并按标注次序赋予权值,然后将标签的权值和使用频率相加,最后使用Porter Stemming算法去除同根单词,将总权重较高的前n个标签推荐给用户;一类是使用改进的余弦相似度公式查找与该网页相似的且标注比较好的网页,将相
23、似网页的标签的权值和使用频率相加,最后使用Porter Stemming算法去除同根单词,将总权重较高的前n个标签推荐给用户。 3. 分析标签在优化网页搜索中发挥的作用。 4. 使用网上发布的公共数据集对所提出的算法进行了实验考证,并对实验结果进行了分析。 1.4.2 论文组织结构 本文共分6章 第1章 介绍了标签推荐系统的研究背景和国内外现状,给出了本文的研究研究目的和意义,最后介绍了论文的主要研究内容和组织结构。 第2章 简要介绍了HTML语言的概念、文档结构及特性、文本相似度计算、协同过滤算法、Porter Stemming算法、Gini系数、正则表达式,这些知识点是本文标签推荐算法的基
24、础。 第3章 本文主要的研究内容。针对目前标签推荐系统存在的问题,提出了一种基于协同过滤和文本相似度比较的标签推荐系统,该系统针对标注次数不同的网页使用不同的推荐方法,提高了标签的质量,最后详细介绍了算法的基本思想和实现步骤。 第4章 针对目前网页搜索方法的缺陷,提出了基于标签的网页搜索优化方法。 第5章 实验结果与分析部分,通过与现有方法的比较,论证了本文方法的有效性。 第6章 总结与展望,对本文工作做了的总结和对该领域研究工作的展望。 河北大学工学硕士学位论文 61.5 本章小结 本章首先介绍了标签推荐系统的研究背景,然后,介绍了国内外在该领域的研究现状,并分析了目前标签在搜索优化方面所起
25、的作用的相关研究,接着阐述了本文研究的目的和意义,最后给出了本文的研究内容和组织结构。 第2章 相关知识介绍 7第2章 相关知识介绍 在标签推荐系统中,涉及许多相关知识主要包括:HTML语言、文本相似度计算、协同过滤推荐算法、Porter Stemming算法、Gini系数、正则表达式。本章主要介绍相关概念以及主要的特点。 2.1 HTML语言 2.1.1 HTML概念 HTML(Hyper Text Mark-up Language)中文意思是超文本链接标记语言21,是当今应用最广的一种网页标记语言,它可以被各种文本编辑工具编写,如写字板、记事本等。最初,HTML语言主要是用来将文本按不同的
26、格式显示在网页上,标签的数量也不多。随着网络的迅速发展,文本已经不能满足人们的生活基本需求,越来越多的人想将图片、表格、各种链接等放到网站上去。1993年,NCSA公司推出了第一个带有图文功能的浏览器,Mosaic浏览器,推动了HTML语言进一步的发展,出现了很多不同功能的标签,例如、和等。当前,HTML语言已经发展到HTML 5版本,增加了更多功能,提供了视频、客户端数据存储、音频嵌入和网页3D化等强大的功能。 2.1.2 HTML文件架构 HTML文件本质上就是一个文本文件,唯一的区别就是扩展名为“.html”或“.htm”的文本文件22,文本中被“”符号括起来的文本称为标签,标签不显示在
27、网页上,只是用于控制文本的显示格式。标签都是成对出现,称为首标签和尾标签,首标签为“”,尾标签为“”。在HTML文件中,标签位于最外层,其中内部包含两个主要的部分,头部()和主体()两大部分,如图2-1所示,是头标签,是尾标签。 河北大学工学硕士学位论文 图2-1 HTML文件基本架构 在标签 之间包含的是HTML文本的标题和文本的一些配置,在标签之间包含的是HTML文件的具体内容。 2.2 文本相似度计算 在标签推荐系统中,需要考虑多方面的问题,其中一个主要的问题就是网页之间的相似度。本文考虑的主要是文本类型的网页,采用的余弦相似度公式23, 24度量网页的相似性。在计算网页相似度之前,需经
28、网页表示成向量的形式,向量空间模型25, 26最早是由Salton提出来的,当初是为了文件分类,将文件表示成一个个独立的词,称为特征项,然后将每个特征项转换为向量空间中的向量,最后进行相似度计算。 余弦相似度公式: ()= njjniiniiibababababaSim12121,cos (2-1) 其中a,b表示两个文本,ai表示文本a中的一个特征项,bj表示文本b中的一个特征项,计算结果位于0和1之间,0表示文本a、b完全不同,1表示文本a、b完全相同。 对于本文的研究内容,直接使用公式(2-1)达不到较好的效果。所以本文对公式进行了改进,以便能推荐较好的标签。 8第2章 相关知识介绍 在
29、实验评估阶段,为了测试本文系统推荐的标签的效果,我们采用了Jaccard系数法27 (Jaccard Coefficient method)识别了推荐的标签的有效性。 Jaccard系数法公式: 200 nnmmO,OJac1ji+= 的属性个数不涉及匹配的属性个数 (2-2) 两个对象Oi,Oj由K个二元属性组成,n1代表Oi取0并且Oj取1的属性个数, n2代表Oj取1并且Oi取0的属性个数,m代表Oi和Oj都取1的属性个数。 2.3 Porter Stemming 算法 2.3.1 Porter Stemming 算法概念 Porter Stemming算法28, 29是剑桥大学教授Ma
30、rtin Porter于1980年提出的,该算法是将英文单词转换成原型,找出每个单词对应的词根。很多情况下,形态相似的单词表达的意思也非常相近,在用搜索引擎搜索是可以认为这些单词是一样的。所以,Porter Stemming算法应运而生,很多检索词被其词根所代表。例如connect、connected、connecting、connection和 connections三个词表达的意思相近,而且具有相同的词根,可以将其还原成connect。 2.3.2 Porter Stemming 算法步骤 目前,Porter Stemming算法已经被多种计算机语言所编写,为了具体的研究工作,有的研究人员
31、对其进行了改进,但是,算法的核心思想没有改变,下面介绍下算法的主要步骤28。 1. 将单词尾有元音字母的es、ed、y、e 或者以ing形式结尾的转化成词根形式,例如ties-ti、cats-cat、caresses-caress、failing-fail、hopping-hop。 2. 将单词以tional、allli、ousness、alism等结尾的分别转化成tion、al、ous、al形式,例如conditional-condition、radicalli-radical、callousness-callous、feudalism-feudal 3. 将单词以icate、alize、i
32、citi、ical结尾的分别转化成ic、al、ic、ic,例如triplicate-triplic、formalize-formal、electriciti-electiric、electrical-electric,将单词以ative、ful、ness形式结尾的,直接删除其后缀,例如 formative-form、hopeful-hope、goodness-good。 9河北大学工学硕士学位论文 4. 删除剩余的标准后缀,如 al、ance、ence、er、able等,例如revial-reviv、allowance-allow、inference-infer、teacher-teach、a
33、djustable-adjust。 5. 删除单词尾没有元音的e,例如probate-probat、cease-ceas。 2.4 协同过滤推荐算法 2.4.1 协同过滤推荐算法的基本思想及特性 在日常生活中,人们在对某件事物或某件事拿不定主意的时候通常会寻求朋友的意见,往往会根据朋友的推荐来做出一些选择,例如看电影、买东西、下饭馆等。协同过滤推荐算法就是在此基础上发展起来的。Typestry30最早将协同过滤(Collaborative Filtering)算法应用到推荐系统中。它的基本思想2:首先,找到用户Ui的相似用户Uj;接着,计算用户Uj对某一对象O的关注值,根据关注值对所有对象进行
34、加权和排序等操作;最后,将权值较大的对象O*作为推荐对象返回给用户。 下面是协同过滤推荐算法的模型,如图2-2所示。 图2-2 协同过滤推荐算法模型 10第2章 相关知识介绍 112.4.2 基于用户的协同过滤算法 基于用户的协同过滤算法是基于用户的评分记录计算最近邻用户,对目标用户的兴趣预测。算法大致分为三个步骤。 1. 查询用户感兴趣的信息。大部分系统都是通过打分的方式表示。例如比较著名的MovieLens系统; 2. 计算目标用户的相似用户。目前,计算用户相似性的方法主要包括3中方法31:余弦相似性、调整余弦相似性和相关相似性; 3. 生成推荐结果。使用最多的推荐方法有,Top-N推荐和
35、关联推荐。其中,Top-N推荐方法是通过对最近邻用户爱好信息统计,将出现频率高且目标用户没有评分过的项目作为推荐结果;关联推荐就是通过关联规则挖掘目标用户潜在的爱好 。 例如表2-1所示,描述了用户对电影的喜好程度。1表示用户喜欢看电影,0表示不喜欢看电影,- 表示不知用户是否喜欢看电影。 表2-1 用户对电影的喜好 电影A 电影B 电影C 电影D U1 U2 U3 U41 1 1 0 1 0 0 1 - 1 1 1 0 1 - 0 通过相似性计算,用户U3和用户U2相似性较高,用户U3喜欢看电影A、电影C,除了用户U3喜欢电影外,用户U2还喜欢用户U3未打分的电影D,则可以把电影D推荐给用户
36、U3。 使用基于用户的协同过滤算法,每计算目标用户的相似用户,需要扫描数据库一次,随着用户数量的增多,计算量会越来越大,系统性能降低。 2.5 Gini系数 Gini系数(Gini Coefficient)32是意大利经济学家Gini于1912年提出的,是根据劳伦茨曲线定义的用于判断居民收入分配差异的一个指标(如图2-3所示),面积K为收入分配绝对平等曲线OM和实际收入分配曲线L(n)之间的区域,面积W为实际收入分配曲线L(n)下方的区域。如果曲线L(n)越接近曲线OM,表明财富分配越绝对平均;如果曲线L(n)河北大学工学硕士学位论文 越接近右下角,表明财富分配越绝对不平均。该系数可取01之间
37、的任意值。 图2-3 财富分配的曲线图 后来,Gini指标在分类中得到广泛应用,它用来表示训练元组的不纯度。Gini值越小的属性,越有可能作为分裂属性。 2.6 正则表达式 在网页文本抽取的过程中,需要使用正则表达式(Regular Expression),它是一种用来描述字符串匹配的工具。一般是由普通字符(例如数字、大小写字母a 到 z和A到Z)和特殊字符(称为元字符)组成的文本模式33,该模式可以用来匹配指定的字符串,过滤掉网页中不需要的内容。在文献34中给出正则表达式的语法介绍,具体含义如表2-2所示。 12第2章 相关知识介绍 13类别 字符 作用 . 匹配所有字符、Tab键、空格 d
38、 匹配09间的任意单个数字 D 不匹配09间的任意单个数字 w 匹配任意单个数字或单个英文字母 W 不匹配任意单个数字或单个英文字母 s 匹配回车符、 换行符、垂直制表符、换页符、制表符 常用 元字符 S 匹配任意非空白字符 匹配包含在的任意单个字符 () 匹配一组表达式,其表达式可以由其他字符组成 * 匹配0次或多次邻近的字符或者一组表达式 ? 匹配0次或1次邻近的字符或者一组表达式 + 匹配1次或多次邻近的字符或者一组表达式 | 表示或 n 匹配邻近的字符或表达式n次 n, 匹配邻近的字符或表达式重复n次 常用 限定符 n, m 匹配邻近的字符或表达式n次到m次 $ 匹配字符串的结束位置
39、表示否,不匹配指定的字符 表示一个范围 f 匹配一个换页符 r 匹配一个回车符 t 匹配一个制表符 v 匹配一个垂直制表符 其他 限定符 n 匹配一个换行符 表2-2 正则表达式中字符的作用 河北大学工学硕士学位论文 142.7 本章小结 本章是对本文所要用到知识的一个较为详细的介绍,其中包括HTML的基本概念、文本结构及特性和文本相似度计算、Porter Stemming算法、协同过滤推荐算法、Gini系数、正则表达式。 第3章 基于协同过滤和文本相似度的标签推荐 15第3章 基于协同过滤和文本相似度的标签推荐 为了提高标签推荐的质量,本文利用协同过滤和文本相似度相结合的方法,对于标注次数超
40、过指定阈值的网页,使用协同过滤方法,提高了推荐的效率。另外,计算网页相似度时,过滤了网页中无用的单词,考虑了单词和网页的重要性,改进了文本相似度公式,从而解决了网页内容的稀疏性带来的标签推荐准确率低的问题。 3.1 现有的标签推荐算法存在的问题 G. Mishne15提出了一种为博客自动推荐标签方法,它通过信息检索的方式发现一些已标注的相似的博客,使用启发式规则为标签打分,给标签打分和重排序,最后提供一些相关的标签给用户选择。该方法提出了信息检索的方法查找相似博客,提高了查找效率,但是在标签推荐时没有考虑用户选择标签的顺序,导致有些虽然被用户标注的次数不很多可是标注的次序比较靠前的标签被忽略,
41、这些标签当中很多能较好代表网页内容。 Y.-T. Lu 等18提出了基于内容的标签推荐,通过比较网页的相似性,将相似性较高的网页中权值高的标签推荐给用户。该方法在比较网页相似性时考虑了标签信息和网页内容,做到了能为以前有标签的网页或者没有标签的网页推荐标签,准确度也有了提高。但是它在基于内容推荐标签时只考虑了和标签相同的网页中的单词,而一些能较好描述网页内容的单词却被过滤掉。因为标签是用户自由添加的,很多标签不能较好的描述网页内容,用这些标签计算网页的相似度,标签推荐的效果不会很理想。 在以上研究的基础上,本文提出了基于协同过滤和文本相似度的标签推荐方法。不同于以前的方法,本文根据网页标注次数
42、的不同,采用不同的推荐方法:协同过滤和文本相似度。协同过滤方法无需抽取网页内容,考虑的仅仅是其他用户的标注历史,推荐效率比较高;文本相似度方法考虑了网页内容,计算量比较大,但是准确度比较高。而且,两种推荐方法都考虑的标签的标注顺序,提高了标签推荐的质量。 3.2 改进的标签推荐算法 标签推荐系统的主要功能是针对用户uU上传的资源rR,推荐与资源r相关的标签tT给用户u。资源的类型有多种,包括文章、图片、视频和网页等。下面定义文中用到的一些符号。 河北大学工学硕士学位论文 U表示用户集合 P表示网页集合 T表示标签集合 W表示单词集合 众所周知,在描述网页内容时不同标签的描述能力是不同的,如何选
43、取高质量的标签是标签推荐系统最重要的工作。社会标注系统中的网页被标注的次数各不相同,有些网页被标注过很多次,有些网页被标注次数较少,甚至有些网页以前没有被标注过。针对这一现象,本文对标注次数不同的网页使用不同的方法推荐标签。 本文标签推荐方法的基本流程图,如图3-1所示。 图3-1 标签推荐方法的基本流程图 3.2.1 基于协同过滤的标签推荐 对于被标注次数大于指定阈值的网页,使用协同过滤的方法推荐标签,具体的步骤如下: 1. 使用协同过滤方法,查找用户uU的相似用户uU且uu,这里我们认为标注过相同网页的用户为相似用户。通过分析每个网页的标签数,发现每个用户对一个网页16第3章 基于协同过滤
44、和文本相似度的标签推荐 标注的标签一般不超过8个,所以对每一个相似用户uU 所标注的标签tT,根据标签的序号赋予权值,依次为1.0、0.8、0.6、0.4、0.2、0.1。当标签序号大于6时,标签的权值都设为0.1。针对每一个标签,计算总权重 Weight(ti)=Freq(ti)+Seq(ti)。其中Freq (ti)表示所有用户使用标签ti标注网页pP的次数,Seq(ti)表示标签的标注顺序。 2. 按标签总权重降序排列,利用Porter Stemming算法,合并有相同词根的标签。例如stems、stemmed和stemming 合并为stem,relate、relation和relat
45、ive 合并为relate。最后,将权重较大的前n个标签推荐给用户u。 3.2.2 基于改进文本相似度的标签推荐 对于被标注次数小于指定阈值或者第一次被标注的网页,使用本文改进的余弦相似度公式,查找与当前网页相似度较高且被标注次数较多的网页,将计算得到的网页中总权重较大的标签推荐给用户。具体的步骤如下: 1. 网页中的每个单词在描述网页内容时所起的作用不同,有些单词虽出现很多次, 但不能较好的描述网页内容,所以在计算网页相似度时要考虑单词的区分度。所谓区分度高的单词,就是能较好描述网页内容和代表网页的类型。仅仅出现在一些特定的网页中的单词比广泛出现在不同网页中的单词更具有说服力。这类似于TF-
46、IDF(Term Frequency-Inverse Document Frequency)26矩阵中,单词出现在不同文档的次数越少,赋予的权重就越高。本文使用Corrado Gini提出的Gini指标评估一个单词的区分度,Gini值越小单词区分度越高,WD(w)定义如下: () ()() Ww,Pp,Www,pFw,pFw,poPr = (3-1) ()()() 2pPWDwGiniw|1Prop,w|= (3-2) 其中F(p, w)表示单词wW在网页pP中出现的频度,Pro(p, w)表示单词w W在网页pP的所有单词中所占的比例。 2. 在社会标注系统中,用户可以使用自己喜欢的标签自由
47、标注网页,造成了有些标签过于具体,甚至有些标签拼写错误,这些标签既不能较好的描述网页内容,也不17河北大学工学硕士学位论文 利于其他用户搜索信息,通过这些标签不能搜索到目标网页。在这里,我们认为具有较多高区分度单词的网页重要性高,这些网页的标签很少出现以上问题。网页重要性定义如下: ()()() wWDw,poPrpRSWw=(3-3) 3. 计算网页相似度之前,首先需要对网页进行预处理,使用停用词过滤掉不需要的单词,去除没有标签的网页和由于链接超时等原因打不开的网页,随后将网页表示成向量模型的形式,例如向量模型:X=x1,x2,xnT, xi=xi,1,xi,2,xi,m,(i=1,2,n)
48、,每一个行向量xi表示网页xi 中每个单词出现的频度,xi,m表示网页xi中第m个单词在该网页中的频度。两个网页a和网页b可以分别表示为a=a1,a2,a3,an,b=b1,b2,b3,bn,则网页a与网页b的余弦相似度可以表示为: ()= njjniiniiibabababab,aSimcos12121 (3-4) 网站中每个网页的稀疏程度不同,如果仅仅考虑单词的频度,推荐结果不理想,本 文在计算两个网页a和网页b的相似度时考虑了网页的重要性,对公式(3-4)改进如下: ()()()() b,aSimcosbRSaRSb,aSim= (3-5) 4. 通过上面的计算,我们可以得到任意两个网页
49、之间的相似度。当用户上传新网页或者标注较少的网页时,首先,查找与该网页相似度大于阈值且被标注次数大于阈值的网页。其次,根据标签的序号赋予权值,依次为1.0、0.8、0.6、0.4、0.2、0.1。当标签序号大于6时,标签的权值都设为0.1。计算这些网页所标注的每个标签的总权重Weight(ti)=Freq(ti)+Seq(ti)。其中,Freq (ti)表示所有用户使用标签tiT标注网页pP的次数,Seq(ti)表示标签的标注顺序。按标签总权重降序排列,利用Porter Stemming算法,合并有相同词根的标签。最后,将权重较大的前n个标签推荐给用户u。 18第3章 基于协同过滤和文本相似度的标签推荐 3.3 改进的标签推荐算法描述 算法描述:基于协同过滤和文本相似度的标签推荐算法。 输入