一种用户需求驱动的服务匹配方法

文档序号:25949567发布日期:2021-07-20 17:05阅读:129来源:国知局
一种用户需求驱动的服务匹配方法
本发明涉及互联网应用领域,尤其涉及服务匹配方法。
背景技术
:web服务是依托于internet而存在的,它本身是一个独立于平台的具备低耦合、自包含特性的web应用程序,可以一次性为用户提供一个或多个功能服务。随着我国现代信息通信技术的快速进步和应用的深入化,我国现代信息技术加快了向服务化转型的趋势。云计算、物联网、移动互联网、大数据等信息技术与传统服务相结合,促进了服务的规模和种类趋于多样化,这些成果一方面推动了web服务的研究,另一方面也使得具有类似功能的服务的数量大幅度增长。用户面对大量的服务信息,需要从中获取得到满足其需求的服务,在这一过程中用户需求成为服务匹配关注的重点。服务匹配是对大规模服务实现筛选的一种方式。通过服务匹配获取定量的服务,降低用户在服务选择时的耗时。然而用户在进行服务匹配时其需求具有动态、复杂、易受影响的特点,同时大部分用户由于缺乏专业的领域知识,对个人的需求描述往往是不确定的,从一般到详细,都可能有所不同。这类情况易发生在对服务知识了解较少的“新用户”中,与具备一定服务知识或了解相关web服务系统的“老用户”相比,其描述会有一定差距。例如,在交通运输方面,一些老用户会提出诸如“路线导航,高速缴费,道路情况报告”之类的特定需求,而需求不明确的新用户则提出“交通运输”之类的模糊需求。因此,如何从用户需求本身出发对服务匹配中存在的问题进行改进,利用需求降低服务数量,减少用户对服务的选择时间,是目前需要解决的问题。依据上述问题进行展开可分为三个问题:①如何规范用户需求信息,提升用户对个人需求信息描述准确性的问题。目前大多数的web服务门户网站中采用的方法主要为:基于关键字匹配方法。该方法操作简单,计算复杂度低,便于使用。该方法与用户的交互性强,用户可自行组织描述语句进行需求表达,但这使得用户对于个人的多种需求无法做出清晰的描述,最终影响匹配的结果,使反馈的服务无法达到用户的预期。②用户通常难以完整准确的表达需求,如何从用户的多种需求信息中,选择可连接服务与用户的属性,来扩展匹配范围并补齐修正用户需求的问题。用户在服务匹配中,其偏好信息是组成用户需求的一部分。基于用户的从众心理,其偏好需求大都来源于其他用户的推荐。针对这类问题的研究大都采用协同过滤方法。该方法能够有效的发现用户的个人偏好,来满足用户多样化的需求。然而用户偏好信息种类多,无法实现对所有偏好信息的推荐,因此需要思考选择何种属性信息来帮助用户更好的梳理个人需求,扩展匹配范围,对需求信息进行修正和补齐。③如何对用户的多种需求信息进行优先级的划分,并实现需求与服务之间的逐级匹配问题。在服务匹配中由于用户需求繁多,但并非每一种需求对用户都是最重要的。因此需要思考如何实现对需求的分级匹配,在达成用户基本的需求信息的同时提高用户的满意度和忠诚度。技术实现要素:本发明针对上述问题,根据本发明的第一方面,提出一种服务匹配的方法,所述服务采用服务基础模型,所述服务基础模型包括:服务名称、类型、领域、标签、操作、服务质量的属性信息,所述方法包括:步骤100:接收用户输入的需求,所述需求至少包括服务名称的关键词、类型、领域;步骤310:根据所述用户输入的服务名称的关键词、类型、领域,与所述服务匹配,获得候选服务s1={s1,s2,s3,...,sx};步骤320:基于候选服务s1与所述用户输入的标签、操作进行匹配,获得候选服务s2={s1,s2,s3,...,sy}。在本发明的一个实施例中,其中步骤100中,用户输入的需求还包括标签操作、服务质量,所述方法还包括:步骤200:匹配所述用户的相似用户,从相似用户的标签中补齐所述用户的标签,并对补齐后的标签赋予权重,获得标签权重集合iuser。在本发明的一个实施例中,其中所述步骤200包括:通过余弦相似度计算与所述用户相似度大于预定第一阈值的n个用户ui,i=1…n,n为非负整数,其中所述余弦相似度计算为两个用户的共有标签数量除以两个用户标签数量模的乘积。在本发明的一个实施例中,其中所述步骤200还包括:统计所述用户与用户ui相比较缺少的标签,按推荐度对缺少的标签排序,为推荐度最高的标签赋予权重tcount,其余标签的权重依次递减,其中tcount为缺少的标签的数量,对于用户原有的标签,其权重为tcount+1。在本发明的一个实施例中,步骤300还包括:步骤330:基于候选服务s2与用户输入的服务质量进行匹配,获得候选服务s3={s1,s2,s3,...,sz};步骤340:对s2和s3的服务按照权重进行排序。在本发明的一个实施例中,所述输入的需求采用用户需求模型,所述用户需求模型包括基本需求、期望需求、和兴奋需求,其中,基本需求包括:服务名称、类型和领域;期望需求包括:标签和操作;兴奋需求包括:价格、评价和响应时间;其中,步骤310包括:如果服务的服务名称包含基本需求的关键词、或服务类型等于基本需求的类型、或者服务的领域等于基本需求的领域,则匹配成功,所有匹配成功的服务组成第一阶段的候选服务s1={s1,s2,s3,...,sx};以及步骤320包括:对s1中的服务进行匹配和权重的附加,如果服务标签的名称包括期望需求标签的名称,则对服务的权重进行增加,加上iuser中该标签的权重;如果服务的操作包含用户期望需求的操作,服务权重加1,将所有这种服务作为第二阶段的候选服务s2={s1,s2,s3,...,sy}。在本发明的一个实施例中,步骤330包括:如果服务的价格与兴奋需求的价格相等、或服务的评价与兴奋需求的服务评价相等、或服务的服务响应时间与兴奋需求的响应时间相等,则将服务的权重加1,将所有这种服务作为第三阶段的候选服务s3={s1,s2,s3,...,sz}。在本发明的一个实施例中,其中步骤340还包括:在排序前,计算候选服务在两次权重附加的过程中是否存在差值,如果不存在则去除掉该服务。根据本发明的第二方面,提供一种计算机可读存储介质,其中存储有一个或者多个计算机程序,所述计算机程序在被执行时用于实现本发明的服务匹配的方法。根据本发明的第三方面,提供一种计算系统,包括:存储装置、以及一个或者多个处理器;其中,所述存储装置用于存储一个或者多个计算机程序,所述计算机程序在被所述处理器执行时用于实现本发明的服务匹配的方法。本发明在输入阶段使用户在引导下输入需求来替代传统的基于关键字的服务匹配,并采用寻找相似用户以扩充修正用户的需求,并对需求进行根据优先级分类,按需求的优先级对服务逐层匹配,从而使服务匹配更为准确以为用户提供优质服务。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示出了根据本发明实施例的服务基础模型示意图;图2示出了根据本发明实施例的需求模型示意图;图3示出了根据本发明实施例的需求分类示意图;图4示出了根据本发明实施例的服务匹配整体原理图;图5示出了根据本发明实施例的服务匹配原理展开图。具体实施方式针对
背景技术
中提出的问题,发明人进行了研究,提出了一种用户需求驱动的服务匹配方法。概括来说,该方法首先建立服务基础模型与需求模型,并依据所能提供的服务形成服务数据,服务数据采用服务基础模型所提供的形式。具体到用户的一次具体需求输入,该方法采用用户需求作为输入,而不是传统的基于关键字的方法,用户在输入需求时,通过引导进行输入,以使得输入的需求可以采用需求模型所提供的形式。对于用户输入的需求,还可以进一步修正与扩充。对修正扩充后的需求按照需求的类型和优先级与服务数据进行匹配,形成用户所需的并按权重排序的服务列表。本发明的服务匹配作为服务发现的一个重要步骤,其作用的对象分别是用户和服务。用户是整个服务匹配过程的需求输入方,其需求信息繁杂且对服务的属性信息缺少更多维的了解,这使得用户在进行需求描述和服务选择时的时间增加。因此为了降低用户的时间,本发明提出用户需求分类的想法。在此想法的基础上,为了更好的定位用户需求,优化服务匹配过程,提高用户对于服务匹配结果的满意度,最终提出用户需求驱动的服务匹配方法。以下介绍本发明使用的服务基础模型和需求模型。服务基础模型服务的形式化描述是服务匹配的基础,也是构建用户需求模型的关键,可以依照个人的需求信息进行发现。用户在描述个人的需求信息时存在较多的不确定因素。因此为了实现需求与服务的精准匹配,需要捕捉服务的属性信息,以便于支持用户的需求和服务信息之间的匹配。为此依据服务的属性信息,定义了服务基础模型,如图1所示。同时为了提高用户在输入时的准确性,将服务的输入与输出进行了集合的定义:定义1.服务基础模型。依据用户需求,构建服务模型,定义服务为一个六元组。服务基础模型的形式化表示为:s=<sname,type,field,tags,opset,qos>其中,sname表示服务名称;type表示服务类型;field表示服务所属领域;tags是服务s的一组标签集合,opset是服务的一组操作,qos是一组服务质量属性信息。tags={<tagid,tagname>}其中,标签集合中可以包含多个标签,tagid是一个标签的序号,tagname是一个标签的名称。opset={<opname,input,output>}其中,一个服务包含多个操作,opname表示一个服务操作的名称,input为操作对应的输入参数集合,output为操作对应的输出参数集合。input={<inname,intype>}其中,input表示服务操作opname的输入参数的集合,包括输入参数名称inname和类型intype。output={<outname,outtype>}其中,output是服务操作opname的输出参数的集合,包括输出参数名称outname和类型outtype。非功能性属性qos的引入能够促进用户对于服务的匹配。而qos属性繁多,主要可分为三种类型:由服务提供商提供,例如服务价格,服务认证,授权等;由服务消费者使用服务,反馈信息得到,如服务评价;服务在运行阶段,由除了提供商和消费者以外的第三方提供,例如,服务响应时间,可用性,执行时间等。综合以上三部分定义qos为例如下面一个三元组。qos=<price,evaluation,responsetime>其中,price是服务价格,服务评价evaluation和服务响应时间responsetime。定义2.输入输出参数术语集.针对于服务的输入输出,假设当前领域存在n个服务s1,s2,s3,...,sn,任一服务si包含多个输入输出参数,按照领域将该领域中服务的输入与输出进行汇总,形成对应领域内的术语集sterm:sterm=(∪ini)∪(∪outi)输入输出集可依据服务领域进行组织,用户在进行匹配时,可按照领域从规定术语集中进行输入输出的提取,提高匹配的效率并保证用户输入的规范性。需求模型用户需求模型是对于在服务基础模型的基础上,依据需求类型,将实际的用户需求与服务属性建立联系,来促进用户需求描述的规范性,促进服务的匹配,因此如图2所示,用户需求模型中包含三部分,包括了基本需求,期望需求和兴奋需求。需求分类是在对用户需求进行研究时发现,由于用户需求逐渐多样化的同时,需求的优先级也会有所不同。基于1984年由noriakikano提出了kano模型的基础上,并充分考虑服务背景,将用户需求大致分为三类:基本需求(basicquality)、期望需求(performancequality)、兴奋需求(excitementquality),如图3所示。基本需求:该类需求是用户对于服务匹配的基本要求,这类需求被用户认为是必须满足的,如果该类需求被满足,用户的满意度不会提升。若未被满足,用户满意度则会下降。因此在基本需求集合主要对应到服务的一些基本属性信息。期望需求:该类需求是对于用户有一定吸引力的需求属性,用户满意度与该需求的实现度成比例相关。因此在期望需求集合中主要集中对应到服务的功能属性信息。兴奋需求:该类需求是对用户吸引力较大的需求属性,有助于提升用户满意度,因此在兴奋需求集合中主要针对服务的一些非功能性属性信息,对于用户的需求进行分类。如图2所示,需求模型定义如下:定义3.用户需求模型.根据需求类型,定义用户需求模型为一个三元组,用户需求模型的形式化表示为ur=<bq,pq,eq>其中,bq表示用户基本需求,pq表示用户期望需求,eq表示用户兴奋需求。bq=<sname,type,field>bq中与服务基础属性对应的信息为,服务名称sname、类型type和领域field。pq=<tags,opset>pq中与服务基础属性对应的信息为,标签tags和操作opset.tags={<tagname>}其中tags中仅包含标签名称tagname.opset=<input,output>其中,opset包含了输入参数集合input和输出参数集合output.input=<inname,intype>其中,input包括输入参数名称inname和类型intype.output=<outname,outtype>其中output包括输出参数名称outname和类型outtype.eq=<price,evaluation,responsetime>eq中与服务基础属性对应的信息为,价格price,评价evaluation和响应时间responsetime。由图4示出了服务匹配整体原理图,整个过程涉及四个阶段,分别是:需求输入、需求信息修正补齐及分类、服务匹配和输出。1.需求输入阶段在该阶段中,用户需要输入所有的需求,其中包括服务名称sname的关键词keyword、类型type、领域field、标签tags、操作opset、服务质量qos几类信息。根据本发明的一个实施例,其中关键词、类型和领域信息是必须需要填写的,其他信息为选填信息。用户可以通过需求的名称引导来进行输入。2.需求信息修正补齐及分类阶段该阶段主要对输入阶段得到的信息进行修正补齐和分类,利用输入阶段得到的标签信息,通过协同过滤算法匹配得到相似用户,实现对标签信息的修正与补齐,之后基于已构建完成的用户需求模型实现对需求信息的分类。在该模块中首先利用余弦相似度计算公式得到用户与用户之间的相似度,之后找到与当前用户a最相似的用户并获取该用户的偏好标签,其中偏好标签来源于用户以往的使用记录,具体的偏好标签数量可基于实际的应用环境进行设定。在用户间匹配完成后,与用户a相似度最高的用户为b,在b的偏好标签中,存在用户a在初始的需求描述中未添加的标签,则可计算用户a对这些标签的预测偏好值,之后再结合用户a原需求中的标签,形成一个新的推荐标签集,最后为每个标签赋予权重,其中原始的标签权重最高,候补标签按照预测偏好值的高低来赋值。根据本发明的一个实施例,具体流程如下。假设在旅游交通领域的背景下匹配相关的服务,用户a为当前活跃用户,用户a的需求标签为a.tags={d1,d2,d3,d4},选择旅游交通领域服务较多的老用户为olduser={u1,u2,u3,u4},每个老用户包含数量不等的兴趣标签k,老用户的兴趣标签来源于对于老用户曾使用过的服务的记录,取使用次数最多的前5个标签作为偏好标签,由于部分用户使用时间较短,偏好标签较少,因此,每个老用户的偏好标签数量k的范围为[1,5]。老用户的兴趣标签用t表示,匹配的阈值为min_threshold。通过相似度匹配,以及用户a对于标签的推荐度最终获得一组标签集用于需求与服务的匹配。(1)相似用户的匹配流程①用户a所选择的标签集为a.tags,a.tags来自于本次需求输入时输入的标签,如果没有输入标签,则不进行相似度用户匹配,老用户对应的标签集为olduser.tags,如表1所示。建立标签和用户之间的倒排表,如表2所示:表1用户-标签初始对应表用户标签ad1,d2,d3,d4u1d1,d2,d4,t1u2d1,d4,t2u3t3,t4u4d2,d3,t4表2标签-用户倒排表标签用户d1a,u1,u2d2a,u1,u4d3a,u4d4a,u1,u2t1u1t2u2t3u3t4u3,u4②计算用户a与任意用户ui的余弦相似度,如公式(1)所示:其中n(a)是用户a的标签集合,n(ui)是用户ui的标签集合,sim(a,ui)表示用户a与用户ui的相似值。分子为两个用户的共有标签数量,分母为两个用户标签数量模的乘积,夹角越小,表示相似度越高。③验证比对用户的相似度是否大于min_threshold,若大于则该用户为相似用户。根据本发明的一个实施例,在相似用户匹配的过程中,会存在相似用户匹配失败的意外情况,若发生此类情况,则直接利用当前用户所选择的标签进入到服务匹配的过程中。(2)标签推荐度流程①根据相似用户的匹配流程得到有n个用户与a相似,统计a与相似用户ui相比较缺少的标签tj,根据相似用户的匹配流程的①判断缺少标签对应的用户,计算用户a对于缺少标签的推荐度,如公式(2)所示:其中p(a,n)包含和用户a最接近的n个用户,q(j)是对标签j有偏好的用户集合,是用户a和用户ui的相似度(该值与sim(a.ui)相等),是用户ui对于标签j的兴趣。②由推荐度的高低为标签附加权重得到最终的标签权重集合:iuser={<tag1,weight1>,<tag2,weight2>,...,<tagn,weightn>}其中iuser为补齐修正后的标签集,tagn为标签名称,weightn为该标签对应的权重。权重的计算方式为:对于用户a缺少的标签,首先获取用户a缺少的标签的个数tcount,之后按照推荐度的高低对这些标签顺序排序,添加至集合irecommend={<t1,pt1>,...,<tj,ptj>,...,<tk,ptk>},其中tj是用户a缺少的标签ptj是该标签对应的推荐度。按照排序结果对标签附加权重,推荐度最高的标签权重为tcount(正数类型),其余标签的权重依次递减。若两个标签推荐度相同则附加相同的权重。对于用户a原有的标签,其权重为缺少的标签中权重的最高值加1。例如缺少的标签总数为5,则推荐度最高的标签其权重为5,之后一次递减,如果tag来自于用户a,,则a原始的标签的weight=6。3.服务匹配阶段该阶段用于对已完成分类的需求进行匹配,该阶段包含服务匹配模块。在该模块中提出了lmia算法,该算法的主要思路是,根据需求分类后的结果,按照需求的优先级,依次对用户的基本、期望和兴奋需求进行匹配。在匹配中对期望需求和兴奋需求均有权重的赋值。在完成对所有需求匹配后,需要对比两轮权重的差值,对产生差值的服务按照增长的幅度顺序排序输出。该模块具体流程如图5下半部分的“服务匹配阶段”所示。首先依据用户需求模型,定义用户在实际匹配中的输入内容。定义4.用户实际匹配输入.用户在实际匹配中,需要将需求信息按照一定的规则进行填写,因此定义一个六元组r<keyword,type,field,iuser,opset,qos>.其中,keyword表示查询的关键词;type表示类型;iuser表示标签,由于在相似用户匹配过程中,将用户的标签需求tags替换为iuser,因此用户需求标签用iuser表示;field表示领域;opset表示操作,包含服务的输入和输出,其来源为sterm;qos表示用户期望的服务质量属性的范围.通过用户填写信息,对需求信息分类,按照需求类型来进行服务的匹配与排序。lmia算法由五个主要部分构成:(1)需求分类:对于用户的需求信息,按照用户需求模型进行划分,同时将从相似用户匹配过程中获得的标签集替换用户初始填写的标签信息,得到基本需求ubq,期望需求upq,兴奋需求ueq。(2)基本需求匹配:该阶段通过ubq<keyword,type,filed>对于服务的名称和类型进行匹配。由于服务名称(sname)可以反映出服务的功能,因此将关键词与服务的名称进行匹配,同时匹配服务的类型与所属领域。如果服务名称包含基本需求的关键词、或服务类型等于基本需求的类型、或者服务的领域等于基本需求的领域,则匹配成功,将所有匹配成功的服务作为第一阶段的候选服务s1={s1,s2,s3,...,sn}。(3)期望需求匹配:该阶段通过得到的s1={s1,s2,s3,...,sx},首先通过标签集:iuser={<tag1,weight1>,<tag2,weight2>,...,<tagk,weightn>}对s1中的服务进行匹配和权重的附加,并计算该服务的权重总和。之后对服务输入输出进行匹配,由于用户对于服务的输入输出信息均从sterm中进行提取,因此简化了对于服务的匹配时间。如果服务标签的名称包括期望需求标签的名称,则对服务的权重进行增加,加上iuser中该标签的权重。如果服务opset包含期望需求opset,服务权重加1,将所有这种服务作为第二阶段的候选服务s2={s1,s2,s3,...,sy}。(4)兴奋需求匹配:依据得到的s2对服务进行服务质量属性的筛选以及排序。对每个服务的qos属性值与qos的用户目标期望值进行比较,最终得到满足条件的一组服务。如果服务的价格与兴奋需求的价格相等、或服务评价与兴奋需求的评价相等、或服务的响应时间与兴奋需求的响应时间相等,则将服务的权重加1,将所有这种服务作为第三阶段的候选服务s3={s1,s2,s3,...,sz}。(5)服务排序:计算候选服务在两次权重附加的过程中是否存在差值,如果存在则返回,不存在则去除掉,对返回的服务按照权重进行排序。lmia算法的伪代码描述如下:输入:用户需求r;已构建的用户需求模型ur;服务数据sd输出:服务列表us1.begin2.list<ubq,upq,ueq>=reclassification(ur);3.//用户需求分类4.forallservices∈sddo5.ifs.snamecontains(ubq.keyword)||6.s.stype==(ubq.type)||7.s.sfield==(ubq.field)then8.inserts1endif9.endfor10.forallservices∈s1do11.ifs.tags.tagnamecontains(upq.tags.tagname)then12.s.weight+=upq.iuser.weightendif13.//遍历opset判断14.ifs.opsetcontains(upq.opset)then15.s.weight+=1//有输入、输出均增116.inserts2endif17.endfor18.forallservices∈s2do19.ifs.price==ueq.price||20.s.evaluation==ueq.evaluation||21.s.responsetime==22.ueq.responsetimethen23.s.weight+=1//符合价格24.//评价和相应时间的范围都自增125.inserts3endif26.endfor27.//s2和s3两次权重对比28.//去掉没有变化的服务返回us29.forallservices2,s3∈s2,s3do30.ifs3.weight≠s2.weightinsertus31.endifendfor32.//按照权重对us中的服务排序返回33.sort(us.weight,us)34.returnus35.end4.输出阶段在该阶段,以列表的形式,输出服务的名称sname,服务类型type,服务所属领域field,服务的标签名称tags.tagname,服务的输入名称opset.input.inname和输出名称opset.output.outname。用户可对输出的服务进行服务的选择。现有技术中针对服务匹配的方法,主要集中在语义匹配和服务匹配算法的改进方面。本发明结合服务的特征,提出了一种基于用户需求的服务匹配方法。首先通过协同过滤的方式找到相似用户,并扩展查询标签集。其次通过用户需求模型,对用户需求进行分类,利用lmia算法对服务进行匹配并附加权重,最后依据权重对服务进行排序,输出用户满意的服务。为使本领域任何普通技术人员能够实现或者使用本公开内容,上面围绕本公开内容进行了描述。对于本领域普通技术人员来说,对本公开内容进行各种修改是显而易见的,并且,本文定义的通用原理也可以在不脱离本公开内容的精神或保护范围的基础上适用于其它变型。此外,除非另外说明,否则任何方面和/或实施例的所有部分或一部分可以与任何其它方面和/或实施例的所有部分或一部分一起使用。因此,本公开内容并不限于本文所描述的例子和设计方案,而是与本文公开的原理和新颖性特征的最广范围相一致。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1