基于神经网络的搜索引擎应用

时间:2022-08-11 07:48:31

基于神经网络的搜索引擎应用

摘 要:21世纪,随着网络的加速,网络信息资源就像爆炸式一样在增长。面对这些无序、及其庞大的数据,人们就像"大海捞针"一样,这就使搜索引擎孕育而生。在各个搜索引擎巨头之间进行着激烈的竞争,谁的搜索结果更精确决定着谁更有竞争力,更受用户的欢迎。对搜索引擎来说,每位用户不选择点击别的内容,只是简简单单通过点击一条搜索结果,向引擎实时提供有关他对搜索结果满意程度的信息。在线应用的最大优势就是,这些应用可以持续收到来自用户行为的反馈信息。我们可以利用一种方法,将用户点击查询结果的情况记录下来,然后利用这些记录改进搜索结果的次序,再呈现给用户。

关键词:搜索引擎 神经网络 自学习能力 反向传播法

一、绪论

1.本课题研究的背景

搜索是人们学习生活中不可或缺的一个重要环节,它是人们获取所需信息的一个捷径。当用户用关键词查询信息的时候,搜索引擎将在数据库中查询,假如找到和用户要求内容相似度很高的网站,将基于关键词的匹配程度,它们出现的位置,信息和网页连接质量的频率,计算每个网页的相关性及排名回馈给搜索用户。信息检索是当今最热门的网络技术,基于神经网络搜索引擎是一种信息检索的新方法。[1]

搜索引擎是按照特定的算法,加上运行计算机搜索程序搜索网络上的资源,经过一系列的组织和处理之后,向用户提供搜索功能,将用户检索的相应信息展现给用户的系统。而搜索引擎的算法决定了它的性能和易用性。好的搜索引擎如百度、谷歌,可以在用户几次查询行为之后,自动为用户选择呈现顺序,准确率也可以保持在一个很高的程度。

人工神经网络是在模拟人类的思维。信息采用分布式存储和并行协同处理。网络学习的核心在于:如果网络给出了错误的决定,通过网络自身的学习,应该做到降低下次犯同样错误的几率。神经网络是一种运算模型,是大量神经元和之间相互链接构成的。每个节点是一个输出函数,每两个节点间连接代表权重。通过总结归纳输出函数求出的值来判断是否激活神经元。并且对输入层、输出层和隐藏层的权重进行校正,这个就是自学习过程。通常是利用反向传播算法来建立模型。[2]

基于以上原因,本文构建一个人工神经网络,并向这个网络提供:查询条件中的关键词,返回给用户的搜索结果,用户的点击选择,然后再训练这个神经网络。当网络通过了许多次不同的查询训练之后,利用它我们可以改进搜索结果的次序,这样可以更好地反映用户在之前一段时间里的真实点击情况。[3]

1.1本文的创新性和特点

现有许多种不同类型的神经网络,但大都以一组神经元构成。而我将用一个名为多层感知机(multilayer perceptron, MLP)网络。这种网络是由多层神经元构成,第一层的神经元是负责接受输入――用户输入的单词。最后一层神经元负责输出――包括被返回的不同URL的权重表。中间层可以包含多个神经元,但为了简化运行的过程,只采用一层中间层,叫做隐藏层――负责对输入进行排列组合。这样可以直接很直观的验正反向传播算法的可实用性。本文将用python构建一个人工神经网络,并向这个网络提供:查询条件中的关键词,返回给用户的搜索结果,用户的点击选择,然后再训练这个神经网络。当网络通过了许多次不同的查询训练之后,利用它我们可以改进搜索结果的次序,这样可以更好地反映用户在之前一段时间里的真实点击情况。[4]

二、基于神经网络的搜索引擎应用的分析与设计

大多数情况下,当人们在构建神经网络的时候,网络中的全部节点都是预先用网络爬虫建好的,可以预先建立一个包含上百节点的隐藏层,并且让链接已就绪,但是我们将在需要的时候建立新的隐藏节点,这样可以让效率更高,也相对简单。[5]

2.1点击跟踪神经网络的设计分析

为了让我们建立的神经网络取得查询的最佳结果,设置对应于查询条件中出现的单词的输入节点值为1.当这些输入节点的输出端要输出时会尝试激活中间的隐藏层。当隐藏层中的某个节点得到了一个输入,就能被激活输出端,再激活输出层的节点。因为输出层中的节点经过不同的刺激将在处于不同程度上的活跃状态,我们就能利用输出节点的活跃程度,来判断一个URL与最开始查询中的关键单词联系上的紧密程度。图中的实线表示强连接,虚线表示弱链接,标粗文字代表这个节点已经变得很活跃,如图2-1所示:

图2-1神经网络对“;world bank”;做的反应当然一次的结果并不能说明问题,最终的结果还要被逐渐纠正,通过纠正连接强度。这样,当用户执行搜索的时候,激活输入端,并从结果中选择所需要的链接,我们就能对网络进行训练。在图2-1所示的网络中,已经有很多人进行过搜索“;world bank”;,并且点击过World Bank 的相应的结果,通过这一步,可以加强单词与URL之间的关联。[6]

2.2 数据流程分析基于以上对点击神经网络跟踪过程的分析,得到神经网络的简化数据流程图如图2-2所示。神经网络从用户输入查询的关键词开始,首先把用户查询的单词与数据库已存在的数据做对比,看是否已经存在,若存在则把关键字和输出的URL之间的连接加强,即增加权重。如果之前不存在这个关键词,则在数据库中插入该数据并记录这次对应的查询输出结果。 图2-2 系统数据流程图

2.3 数据库的设计神经网络的核心在于通过当用户查询时不断选择来训练网络,所以我们需要在数据库中存储能够反映网络现状的信息。基于前面的分析,建立了以下一些数据库表。具体见表2-1。表2-1各数据库表字段说明1、单词表wordidsWORDID单词IDNAME单词名2、URL表 urlsURLIDurl IDURL_Link目的链接3、隐藏层数据表hiddennodeCREATE_KEY隐藏层新建节点4、单词层到隐藏层节点连接状况表wordhiddenFROMID输入端单词TOID输出端节点STRENGTH连接强度5、隐藏层与输出层连接状况表hiddenurlFROMID隐藏层节点TOID输出端URLSTRENGTH连接强度[7]

2.4功能需求分析本文基于神经网络的搜索引擎主要包括以下一些功能模块,如图2-3所示:

图2-3 基于神经网络的搜索引擎的功能模块功能模块的说明(1)判断连接强度因为新的连接只在单词不存在数据库时才会被创建,所以在连接不存在时返回一个默认值,从单词层到隐藏层为-0.2,从隐藏层到URL连接默认值为0.(2)利用新的强度值更新连接用以判断连接是否存在,同时使用新的强度值更新连接或创建连接。(3)为单词在隐藏层建立新节点每当一个新的单词出现,在隐藏层中建立一个新的节点。然后在单词与隐藏节点之间,查询节点与查询返回的URL结果间建立有权重的连接。(4)建立网络利用数据库中保存的信息,建立包括所有当前权重值的相应的网络。图2-4 tanh x函数(5)前馈算法接受输入一组单词,激活链接,并对URL给出输出。选择双曲函数(tanh),因为只有在前几次输入对权重影响时很大的,当次数增多,每次用户选择的URL都是同一个的时候,就无限趋近于1。 (6)反向传播算法通过沿着网络反向行进,进行权重的调整。当用户点击了预期的结果时,输出层节点的期望为1,反之则为0。只要知道tanh函数在输出级别上的斜率,就能反过来知道该节点的总输入。[8]

三、 基于神经网络的搜索引擎的实现

1.生成节点在现实世界中,搜索引擎中的所有节点都是预先建好的。但本文为了使这个神经网络更高效、简单,采用只有在需要时才建立新的隐藏节点。一个函数generatehiddennode在隐藏层建立新的一个节点,同时还建立了指向新建节点的连接。

2.前馈算法编写函数,作用是接受一组输入单词,激活网络中的连接,给出输出结果。首先,选择tanh函数用来观察每个节点对输入的响应程度。在数据库中查询节点与连接的信息,然后建立关于查询那部分网络,把所有的连接找出,包括权重值。前馈算法的执行过程是循环遍历所有位于隐藏层中的节点,将所有来自输入层的输出乘以连接强度再相加。每个节点的输出相当于全部输入和经过tanh函数后的结果传给输出层。输出层再经过相似的处理。只要不断持续将上层的输出结果作为下层的输入,可以对网络轻松的扩展,一个网络包含成百上千的层。[9]

参考文献

[1] 莫映,王开福.集体智慧编程[M].电子工业出版社,2009.

[2] ;戴葵.神经网络设计[M].机械工业出版社,2005.

[3] 朱明.数据挖掘.中国科学技术大学出版社.2008.

[4] 高凯,郭立炜,许云峰.网络信息检索技术及搜索引擎系统开发. 科学出版社,2010.

[5] 吴今培,张哲. 基于神经网络分类的搜索引擎在Internet信息监控中的应用[J],计算机应用与软件 2002(7):31~33.

[6] ;罗刚,王振东.自己动手写网络爬虫.清华大学出版社.2010.

[7] ;唐学韬.利用Python进行数据分析.机械工业出版社.2014.

[8] [美]Simon O.Haykin著. Neural Networks and Learning Machines. Prentice Hall.2008.

[9] [美]Segaran.T著. Programming Collective Intelligence. O’;Reilly. 2007.作者:崔子豪,学生,就读东北石油大学电气信息工程学院自动化专业11–;6班

上一篇:关于化学实验教学中观察能力的培养初探 下一篇:浅谈涂料有害物质检测技术