信息推荐系统的设计224.1系统体系结构及数据设计
优采云 发布时间: 2021-08-09 23:04信息推荐系统的设计224.1系统体系结构及数据设计
内容
总结 2
摘要 3
第 1 章介绍 5
第 2 章用户行为挖掘 6
2.1 网页特征表示6
2.2 文本表示 6
2.3 自动分词技术7
2.4 专有名词 8 的分词
2.5关键词和关键词标识8
2.5.1 降噪算法9
2.5.2Fixed关键词Thesaurus 算法 9
2.6 分词分类10
第 3 章用户兴趣模型 11
3.1 特征权重 11
3.2 特征权重的时间修正:快启动,慢降算法12
3.3 页面聚类 13
3.4用户兴趣概念知识库13
3.5 生成推荐信息 14
3.5.1获取推荐信息14
3.5.2搜索结果预处理15
3.5.3搜索结果排序算法15
3.5.4 搜索结果去重算法18
3.5 Le Chatelier 的用户兴趣变化原理 19
3.6分布式处理19
第4章文本分析与信息推荐系统设计22
4.1 系统结构与数据设计 22
4.1.1 分词与分类22
4.1.2 分词权重计算23
4.1.3公共热点推荐24
4.1.4个性化推荐25
第五章实验结果的分析与比较 27
5.1 收敛性测试 27
5.1.1 系统收敛精度测试27
5.1.2 分词词典的无意分词测试30
5.2 专有名词分词算法31
5.3 兴趣识别算法测试33
5.3.1 噪声词消除算法 33
5.3.2Fixed关键词Thesaurus 算法 34
结论 36
参考文献 37
谢谢 37
第一章介绍
自1991年CREN诞生以来,互联网以其丰富多彩的内容吸引了众多用户,其信息量呈指数级增长。现在它已成为人们获取信息的重要途径。由于网络信息中收录大量重复、陈旧、分散、杂乱的数据和信息,人们不得不花费大量时间搜索和浏览自己可能感兴趣的信息。搜索引擎是最常用的检索信息的工具。传统的信息检索技术满足了人们的普遍需求。但是,对于不同用户关注的特定领域的信息,它无能为力。
人们不再满足于亲自使用传统搜索引擎和其他门户网站来查找自己感兴趣的信息,而是希望能够自动获取自己需要的信息。即“人找信息”的模式变成了“信息找人”的模式。系统可以分析用户的行为,然后将用户需要的信息发送给他,并不断提供信息。当用户离线时,系统在网络上捕捉他想知道的任何信息,并在用户在线时推送给他。根据用户独特的信息需求,从互联网上搜索相关信息并整合在一起,有针对性地满足各类用户的信息需求。
该项目使用人工智能中常用的专家系统来分析和识别用户兴趣。首先分析用户的浏览记录,项目只分析用户浏览记录的标题,因为用户是根据标题搜索自己感兴趣的内容。本项目将用户浏览记录标题的分词结果与用户兴趣概念知识库进行匹配,找出可能是用户兴趣概念的分词。然后访问搜索引擎,从搜索引擎获取用户兴趣概念的推荐信息。
全文分为三个部分。第一部分是用户行为挖掘,涉及自动分词和分词两部分。本项目采用前向最大分词算法,提出一种改进的专有名词切分和噪声词消除算法。第二部分构建用户兴趣概念知识库。系统将用户浏览记录的分词结果与兴趣概念知识库进行比对,识别出用户的兴趣词。本章提出了一种VSM权重的时间修正算法,可以更好地适应用户兴趣随时间的变化。第三部分是测试和结论部分。本项目测试主要关注用户兴趣的识别和收敛以及推荐信息的准确性。同时,本章还讨论了算法中可能影响推荐结果收敛的一些因素。
第二章用户行为挖掘
互联网数据挖掘分为三种挖掘;一是数据内容挖掘,二是数据结构挖掘,三是用户行为挖掘。第三类用户行为挖掘也与数据内容挖掘密切相关。但它不仅关注数据的内容,因此独立成为第三类数据挖掘。网页的本质是网页中的文字内容,但是以html标签为载体呈现给用户的。本项目对网页的文字内容进行分析,通过内容中的文字分类分析,记录用户的喜好。例如,如果用户浏览了一个标题为“苹果新CEO库克”的网页,分析这个项目的标题可以得出用户对苹果在IT行业有一定的加权兴趣。当然,如果他总是读到与“Apple”相关的内容,对于这个项目,你可以把“一些”这个词换成“非常”——也就是用户对IT行业的苹果很感兴趣。本项目可以概括如下: 文本文本分析处理过程是根据已建立的领域知识库中的知识结构,分析文本文本与某一领域主题的关系。然后根据该条目分类得到的信息从网上搜索信息,对检索到的信息进行打分处理,最后将得分高的信息推荐给用户。
2.1 网页特征表示
网页的文字信息、文字格式、文档结构、页面布局、链接结构都是网页的代表性特征。普通用户在阅读报纸时,大多是先阅读新闻标题,然后再选择是否阅读新闻的具体内容。同样,用户在上网时,总是先看标题,再决定是否需要阅读具体内容。因此,本项目只需要关心网页的文本信息,即网页的特征表示,而忽略其他方面。为了加快对用户行为进行分类的处理速度,本项目只需要分析网页的标题,不考虑网页的全部内容。
2.2 文本表示
文字的内容和形式非常复杂。本项目需要选择一个语言特征,并在此基础上分析子文本[2]。
文本的内容特征
用什么作为特征来描述文本内容是文本表示的核心问题。英语常用词、词串(指文本中多个固定长度的词)、词组
作为表示文本的特征。相关研究和实验结果表明,英语中基于词的特征表示最适合于文本分类。由于中文的特殊性,本项目中常用的词组与英文相似。
关键词的相互关系评价
这个项目需要评估关键词之间的相互关系。 VectorSpaceModel(VSM)模型是描述分词关系的常用模型。在VSM模型中,一个文档被看作是一个由特征二元组组成的特征向量,其表达式如下(2.1)[5].
(2.1)
其中,是特征的二元组,即文档中的权重; s 是特征集的大小。在VSM中,本项目没有考虑特征在文本中的位置和语法信息的作用。
一个特征向量对应高维特征空间中的一个点,可以化简(2.1)为式(2.2).此时特征向量对应权重矢量。
(2.2)
在VSM中,文档被描述为向量,借助向量操作可以对文档进行各种操作,如文档合并、删除、比较等。文档和文档之间的相似度可以通过向量之间的相似度来衡量。
2.3 自动分词技术
当用户浏览一条新闻时,经常会看到新闻标题中收录了一个或几个他感兴趣的分词。为了准确表达用户的兴趣,本项目需要对文本进行分割和拆分把句子分成几个准确的词。然后对分词进行分类。为此,本项目引入了自动分词技术。
自动分词技术是指将输入计算机的句子自动切割成单词序列的过程。在某些情况下,分词结果中也会收录一些短语和语素。一般来说,构建好的自动分词算法的关键是选择好的分词算法,构建好的分词词典(分词词典)。
常用的分词算法方法如下[13]:
1、Dictionary 匹配法:最大匹配法、逐词遍历法、反向匹配法。
2、Lenovo 词组法:如关联回溯AB法、关联树分析法、无同义词法。
3、知识与规则方法:如分词规则方法、分词与语义修正方法、规则描述分词方法。
4、人工智能方法:如专家系统、神经网络。
中文分词的难点在于:
1、语法的复杂性。汉字词组的组合非常灵活,很难确定汉字在词组中的位置。例如:“被子”不适合拆分为“被”和“子”两个词;而“菜刀”则适合拆分为“菜”和“刀”两个字。 [4]
2、分割的歧义。比如“好好学习”这句话,可以分为“好好学习”、“好好学习”(四声)、“好好学习”三种理解方式。
这里,本项目采用最大匹配分词算法,也称为贪心算法。分词过程需要去除不需要的词和干扰词。例如:“姚明陪同瑞士公主参观瑞士残疾学校”这句话,匹配算法最大的结果是:“姚明”、“访问”、“瑞士”、“残疾”、“学校”、“瑞士”、“公主”、“陪伴”。
2.4 专有名词的分词
专有名词的分词应该是2.3小节的一部分,但是2.3小节中描述的前向最大分词算法最大的问题是很容易将专有名词切错。 4.3.3 测试部分有一个多余的例子。测试中常称“F”、“-22”,例如“F-22”分词。这种分词的结果是因为词的结构不符合一般语言习惯。大多数专有名词出现在科技领域,都有特定的编号约定。 “F”是英文字母。在自然语言中,英文字母后面经常跟英文字母。 “-22”没有多大意义,所以按照人类的语言习惯,上面的分词结果是合理的。但是,F-22实际上是一个专有名词,它的分词无法通过常规的分词算法进行识别。本项目必须提供专有名词词典来解决专有名词分词问题[7]。
添加适当名词修正的分词算法伪代码,如算法2-1。
算法 2-1
字符串;
对于(inti=0;i
{
If(str收录专有名词)
{
将专有名词部分作为一个整体加入到分词结果中;
继续常规分词;
}
}
这个算法可以解决专有名词的分词问题,但是这个算法不是很完美,也没有完美的结合语言环境进行分词。因此,本项目必须结合常规的分词算法来规避这个问题。
识别2.5关键词和关键词
上一节2.4提到的分词算法可以将一个句子分割成多个词,对于本项目来说还不够;用户在阅读一条新闻时可能只关注其中的一个或几个。 关键词,这个项目需要从分词结果中找出用户可能关注的重点。因此,本项目引入了关键词和关键词的识别问题。例如:
“姚明陪同瑞士公主参观瑞士残疾学校”这句话,前向最大匹配算法的结果为:“姚明”、“访问”、“瑞士”、“残疾”、“学校” 、“瑞士”、“公主”、“陪伴”。对于一个NBA球迷来说,他只关心这句话中的“姚明”这个词。这句话的关键词应该是“姚明”,换成另一个作家《孔以继君》、《孔以继君请教瑞士残疾人学校》、《瑞士公主陪伴》这则新闻,体育迷们阅读不会有兴趣。为了能在文章中认出关键词 @,本文在文中提出了两种识别关键词的算法,并在4.3的测试部分对这两种算法进行了测试对比。
2.5.1 降噪算法
这个算法是发散算法。系统只剔除那些没有明显语义区别的分词,其余的都被认为是有意义的词。然而,系统的噪声词数据库不可能是完美的。因此,一些干扰词总会被系统误认为关键词,此时系统的推荐信息就会出现错误。所以这是一个发散算法。该算法的伪代码实现如算法2-2。
算法 2-2
StringGetKeyWord(stringinstring)
{
If(噪声词库收录sinstring)
{
返回字符串;
}
其他
{
返回空;
}
}
当然,这个算法与第二种算法相比有它的优势。该算法不会错误地缩小用户的实际兴趣范围,并且可以自动收录新的关键词。
2.5.2fixed关键词Thesaurus 算法
固定关键词词库算法并不代表关键词词库是固定不变的,固定关键词词库算法是指:只有关键词词库中存在的分词才能作为关键词贮存。该算法的伪代码如算法2-3。
算法 2-3
StringGetKeyWord(stringinstring)
{
If(关键词词库中containsinstring)
{
返回字符串;
}
其他
{
返回空;
}
}
算法2-2比算法2-3收敛效果更好,但是算法2-3可能会省略一些关键词用户感兴趣的,需要手动维护关键词词库,这个关键词的数量@在关键词词库中大约是一个数量级。
2.6 分词分类
本项目采用三层分类法对分词进行分类。图 2-1 是一个分类示例。
图2-1 三层分类图
顶级体育项目下有“NBA”、“CBA”和“世界杯”三个子类别。为保证系统的准确性,本项目采用手动顶层二级分类,并手动添加初始化训练样本进行子节点分类。第三级分类是特定的文本分割。这部分内容在聂荣金的论文中有详细的描述。
第 3 章用户兴趣模型
个性化信息推荐研究的关键是建立准确的用户兴趣模型。根据VSM模型,用户的兴趣是一个可以用表达式(2.1).用户兴趣的总和是基于单个不相交的用户兴趣向量是由基向量组成的向量空间,本章介绍了本项目的个性化信息推荐研究,关键是建立准确的用户兴趣模型。传统用户兴趣模型流程如图3-1所示。
图3-1 传统用户兴趣模型构建流程
图3-1所示的用户兴趣模型的构建过程并没有反映用户兴趣的变化。本文提出了一种基于计算机网络拥塞控制算法和路由算法的“用户-兴趣-时间”模型,以反映用户兴趣曲线随时间的变化。并讨论了模型曲线尽可能收敛到用户实际兴趣曲线的几种算法。
用户兴趣强度的计算通常有以下三种方式:
1、User 自己填写
2、根据用户行为分析用户兴趣
3、Further 根据用户对推荐信息的反馈更新兴趣强度
在系统中直接体现的第一种方式是用户设置自己感兴趣的领域。这种方式会增加用户的负担,也不是一种人性化的方式,因此不是本项目的主要研究方向。第二种和第三种类型是本文的主要关注点。第三种方法有一个增强效果:同时提高了兴趣曲线的收敛速度,增大了收敛曲线的误差。本文的下一部分将讨论第三种方法的增强效果。
3.1 特征权重
特征确定后,需要计算特征在向量中的权重来描述特征在文档中的重要性。常用的权重计算方法有布尔权重、权重和熵权。
由于布尔权重不能准确描述向量之间权重个数的关系,本项目使用权重来描述向量中特征的权重。
基于两个观点:文档中出现的特征越多越重要;文本中出现的特征越多,它就越不重要。 (G.Salton,etal.,1975)。一般有两个权重,一个反映第一种观点,第二种观点。
权重的计算方法如下(3.1):
(3.1)
其中,是特征在文档中出现的频率,是特征出现的文档数量。
3.2 特征权重的时间修正:快速启动,慢降算法
计算机网络是一个动态变化的网络。网络各部分的状态是动态变化的。及时检测网络拥塞状态的变化对提高网络利用率非常重要。 TCP协议为了最大可能地保持网络的利用率并具有较低的网络延迟,TCP协议采用了“加法增加,乘法减少”算法的拥塞控制策略。 [JamesF.Kurose, KeithW.Ross.177] 同样,人们的兴趣和爱好会随着时间而改变。为了更快速地收敛到用户的兴趣,反映用户兴趣随时间的变化,我使用了“开始快,慢下来”的算法来表达人们的兴趣与时间的关系。 “快启动,慢归约”算法说明如图3-2 图3-2 快启,全归约示例图
本项目介绍了以下一些概念的描述:
时间轴:在图3-2中,横坐标是本项目中表示的时间,其含义是:“用户相邻两次登录系统,与实际时间不一样。登录本项目月第一次,直到下次登录,中间的时间间隔为1"。
权重增量:用户浏览一次时某个分词A增加的权重增量。此项定义为0.125,分词最大权重为1.。也就是说,如果用户浏览同一个分词8次,分词的权重会增加到最大值1,继续浏览,权重为任意值。但是,它仍然为1.权重增量定义为0.125,即浏览八次可以将最大权重增加到最大权重,因为如果设置为布尔权重,即不是0也不是1,这个项目不能准确衡量一个人的兴趣爱好。但是,如果权重增量太小,某个分词要达到最大权重需要的次数过多,用户很难快速收敛到他的一个短期兴趣,即,收敛太慢了。例如,一个对IT不感兴趣的女人A看到乔布斯去世的消息,突然对乔布斯的生平产生了浓厚的兴趣,然后她想在接下来的一周内,由于体重增加,想了解乔布斯的情况。肖女士,她需要浏览100次职位相关网页,系统才会意识到她对职位非常感兴趣,然后主动向用户推送职位相关内容。此时,用户可能已经回到了平静的生活。 .
慢还原:这个世界有什么固定的?不,只有变化是不可变的。人们的兴趣爱好也在不断变化。很少关心乔布斯。乔布斯去世几天后,她突然对这个传奇人物产生了兴趣,于是浏览了很多乔布斯的介绍。此时,系统已经将用户A对“Jobs”的分词权重设置为最大权重。半个月后,她不再关心乔布斯,相应地,她对“乔布斯”的权重也相应地逐渐降低。因此,本项目提出“慢降”,即用户对每个分词的权重应该沿着时间轴递减。本项目将“慢减”权重定义为0.05,这意味着如果用户如果在二十个时间轴中没有浏览过某个分词的相关内容,那么“慢减”算法将减少分词的用户权重为0。
该算法需要较少的编程工作。本项目只需要在数据库服务器上建立定时作业即可。作业的伪代码描述如算法3-1所示。
算法 3-1
虽然时间是 0:0:0
updatet_PersonalWordsetkdegree=kdegree-1wherekdegree>1;
结束
3.3 页面聚类
该项目试图记录、描述和分析用户行为,而用户行为最终是通过页面内容来描述的——即基于内容的页面聚类。页面聚类技术基于以下假设:同一类别的文档之间的相似度较大,不同类别的文档之间的相似度较小。网页聚类根据网页的某种联系或相关性来组织网页。
3.4用户兴趣概念知识库
人工智能专家系统通常使用人工收录特定领域的知识库和规则库来提供自动化解决方案。为了提高用户兴趣分割的识别准确率,本项目采用构建用户兴趣概念知识库的方法来识别用户兴趣。用户兴趣概念知识库的本质是一个数据字典。它收录尽可能多的用户兴趣概念细分。
用户兴趣概念知识库的逻辑结构也满足图2-1描述的三层分词结构。知识库的所有知识都存储在图 2-1 中的叶节点上。本项目没有使用这种三层林存储结构,而是使用了一个存储在数据库中的二维关系表来存储知识库。为了用二维关系型数据库存储图2-1的三层逻辑结构,用户兴趣概念知识库的内容应收录表3-1所示内容。
表 3-1 知识库存储内容
知识
父节点
层
3.5 生成推荐信息
用户使用搜索引擎手动检索自己想知道的内容使用关键词检索,知识型信息推荐系统使用构建的用户兴趣模型访问搜索引擎生成推荐信息。用户兴趣是一个以用户兴趣知识库的知识为基向量组成的向量空间。本项目使用用户兴趣向量空间的基向量作为生成推荐信息的基础,即表达式(2.1)in。此时本项目无法确定由此生成的推荐信息的重要性项目对不同用户的推荐。本项目使用VSM模型向量的第二个分量表示的阈值来衡量推荐信息对用户的重要性。
3.5.1获取推荐信息
本项目选择用户最感兴趣的关键词,通过访问搜索引擎检索关键词信息获取推荐信息。这种方法类似于元搜索引擎。这个项目不需要像谷歌那样维护互联网页面的数据库备份。其次,单个搜索引擎的搜索结果召回率并不理想。即使对于谷歌这样的搜索引擎巨头,其数据库中收录的网页备份在互联网上的网页总数中所占的比例也很小。这个项目可以访问多个权威搜索引擎,可以获取更多用户感兴趣的关键词信息。之所以称为元搜索引擎,是因为这个项目不是即时搜索。当本地服务器长时间访问搜索引擎时,不需要在短时间内将搜索结果返回给用户。这确保了项目有时间对需要一定时间的搜索结果进行准确评分。
图 3-3 服务器搜索引擎交互
元搜索引擎的架构:
接口代理
这部分管理与各种搜索引擎的交互。某个搜索引擎对应的接口代理需要将用户的查询转换成搜索引擎识别的格式(以谷歌新闻搜索为例:)发送出去,负责解析接收到的搜索的搜索结果引擎。搜索结果传递给调度中心。
对结果重新排序(Re-rankingMechanism)
这部分整合了各个搜索引擎的搜索结果,对每个搜索结果进行评分,并根据评分对结果进行重新排序,形成统一的搜索结果列表。
结果存储(ResultStorage)
这部分将重新排序的搜索结果保存到数据库中,并在用户在线登录时将推荐结果推送给用户。
3.5.2搜索结果预处理
通过采集采集到的海量原创网页,也必须经过预处理,形成良好的数据结构,才能成为用户查询服务的核心和关键。搜索结果的预处理主要包括以下几个方面:
(1),关键词提取在一个含有大量HTML标签的网页文件中,按照一定的规则,提取出能够代表网页内容的关键词。也就是说,经过提取,你得到一个关键词集用式(3.2)的意思。
(3.2)
使用这个词集来表示网络内容。
(2),链接分析人们可以通过分析HTML文档中收录的指向其他文档的链接信息来判断网页与网页内容的关系。
(文章0@,计算网页的重要性。这个封面是指在预处理中判断网页的重要性,不同于后面描述的从用户查询中获取的网页的重要性。也就是说,它什么都没有与用户的查询有关。例如,使用 Google 的核心技术 PageRank 就可以体现这种重要性。
3.5.3搜索结果排名算法
传统的元搜索引擎评分排名不涉及其他用户数据,只是孤立地对搜索结果进行排名。重新排序通常有两种方式:
(1),使用标准评分机制重新评分后,对搜索结果进行排序。
此方法将为元搜索引擎调用的其他爬虫搜索引擎设置注释。
Point the conversion ratio, and then re-order according to the scoring standard. However, the various scoring standards that this method relies on are not necessarily reliable.
(2), use your own sorting algorithm to merge the search results and completely re-sort them.
The sorting algorithm here is the same as the sorting algorithm in traditional search engines. This method can generally
Get a more accurate sorting result. However, this method requires downloading and analyzing all web pages, so it’s not easy
It should be slower.
Score calculation of recommendation results:
For the convenience of presentation, this project assumes that there is a user "Zhang San", the search for this project 关键词 is "乔布斯", the secondary category is IT, this project needs to evaluate a certain page for Zhang San The score of pageA. This project uses traditional probability statistics to calculate the score of a page. First, this project obtains all the word segmentation in the category according to the secondary category "IT" of 关键词"乔布斯" retrieved by this project, records the weight of the word segmentation at the same time, and then calculates the number of times each word segment appears in the web page , So the score of this page can be calculated with the formula (3.文章0@.
(3.文章0@
Not all recommended results meet the recommendation requirements. In order to filter out those search results that users are not interested in, this project introduces a denoising algorithm for search results.
After the results returned by the search engine are scored, this project needs to filter the results to eliminate noise data. This item sets a more reasonable threshold. When the scoring result is greater than the defined threshold, it is normal data, otherwise it is noisy data and needs to be eliminated.
The pseudo code of the denoising algorithm for the search results is like Algorithm 3-2.
Algorithm 3-2 Denoising of search results
#defineVALUE5
If(score>5)
{
The result is stored in the database;
}
其他
{
At this time, it is noise data, remove it;
}
The definition of the threshold needs to be very careful. When the threshold is defined too large, it will seriously affect the speed of system convergence. Especially for the convergence of users' short-term interests.
When the threshold is set too large, although the system can find the user’s new interest tendency, in the early stage of the user’s interest, this interest will be considered as noise and filtered out, so the system will not take information related to this interest It is recommended to users to browse; this makes it difficult to increase the weight of 关键词 related to this interest. As a result, there will be a phenomenon that the weight of the recommended information will increase rapidly, and it is difficult for new hobbies to increase. Based on these considerations, the threshold defined in this project needs to be carefully revised when evaluating the accuracy of the system.
This project uses Bing to search for "Kobe" as an example to describe the algorithm of the meta-search engine.
(1), get keywords. The keywords are the word segmentation obtained by the system's automatic word segmentation and clustering of the page.
(2), call the search engine to search for keyword related information. This project takes Bing search as an example
Figure 3-4 Bing search 关键词"科比"
However, the search results are ordinary HTML code as shown below. This project needs to extract the hyperlinks of each search result in the HTML.
.htm"target="_blank"οnmοusedοwn="returnsi_T('&ID=news,5034.2')">Kobe has publicly questioned the union’s move that Paul succeeded Lao Yucheng as the next chairman?