在话题关联计算中使用的方法及装置
技术领域
本公开涉及数据挖掘领域,具体地,涉及一种在话题关联计算中使用的方法及装置。
背景技术
当今,是知识爆炸的时代,只有不断学习才能够提高自己的知识储备量。为了便于学习,很多企业都建立了知识门户网站。用户可以登录到公司的知识门户网站,进入知识库学习,关注自己感兴趣的话题。同时,系统也可以根据用户关注的话题推荐相关的话题,包括文章、书籍、行业专家等。
话题关联计算的核心是话题关联度。目前,一般采用的是余弦相似度算法来计算话题关联度。但是,余弦相似度算法需要先计算复杂的语义信息,如特征词的概率分布等,得到词向量,再对词向量之间的夹角进行计算,才能得到话题间的关联度,计算复杂,效率低。
发明内容
有鉴于此,本公开的目的是提供一种在话题关联计算中使用的方法及装置,以实现高效率地进行关联话题计算的目的。
在本公开实施例的第一个方面中,提供了一种在话题关联计算中使用的方法,该方法包括:通过为若干个待选择话题分配随机权重,得到用于在SCA算法(sine cosinealgorithm,正弦余弦算法)中迭代的种群,其中,所述种群的每个个体中,每个待选择话题均具有对应的权重分量;利用SCA算法对所述种群中的个体进行迭代更新,其中,所述SCA算法使用的适应度函数以所述个体为变量,在所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正;将所述SCA算法迭代结束后所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
可选地,所述待选择话题与已关注话题之间的关联性统计数量为待选择话题与已关注话题在若干篇文档资料中同篇出现的次数;所述适应度函数fit(W
k)的解析式为:
其中,W
k表示所述种群中第k个个体;|Topic|表示用户已经关注的话题的个数,|T|表示所述待选择话题的个数,topic
i表示第i个已关注话题;t
j表示第j个待选择话题,w
kj表示W
k的第j个待选择话题的权重分量,count(topic
i,t
j)的函数返回值表示第i个已关注话题与第j个待选择话题在所述若干篇文档资料中同篇出现的次数。
可选地,所述方法还包括:在所述SCA算法迭代的每次迭代中,获取更新的动态淘汰值,所述动态淘汰值随着迭代次数增加逐渐减小;在每次迭代中,在允许被淘汰的个体数量大于等于所述动态淘汰值的情况下,从所述种群中淘汰出与所述动态淘汰值相应数量的允许被淘汰的个体,在允许被淘汰的个体数量小于所述动态淘汰值的情况下,从所述种群中淘汰出允许被淘汰的个体。
可选地,所述方法还包括:在所述SCA算法迭代的每次迭代中,保存所述适应度函数对应于当前迭代得到的种群个体的函数值;在所述SCA算法迭代的每次迭代中,根据上一次迭代保存的函数值及所述种群中个体数量,计算出种群平均适应度值;在所述SCA算法迭代的每次迭代中,通过将所述适应度函数对应于当前迭代得到的种群个体的函数值与当前迭代中计算出的种群平均适应度值进行比较,从所述种群中筛选出允许被淘汰的个体。
可选地,所述方法还包括:在所述种群中一个或多个个体被淘汰时,根据新个体生成算法,取得与被淘汰个体数量相应的新个体;所述新个体生成算法包括:通过将被淘汰个体与当前迭代中最优解个体之间的距离按照正弦或余弦函数随机振幅,取得随机步长,在被淘汰个体的权重的基础上通过累加所述随机步长取得新个体的权重。
可选地,所述方法还包括:根据所述已关注话题与若干个待选择话题的关联度进行话题推荐。
可选地,所述根据所述已关注话题与若干个待选择话题的关联度进行话题推荐包括:按照所述已关注话题与若干个待选择话题的关联度从高到低,选择一个或多个待选择话题进行推荐。
在本公开实施例的第二个方面中,提供了一种在话题关联计算中使用的装置,该装置包括:权重分配模块,被配置为通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,其中,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。迭代模块,被配置为利用SCA算法对所述种群中的个体进行迭代更新,其中,所述SCA算法使用的适应度函数以所述个体为变量,在所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正。输出模块,被配置为将所述SCA算法迭代结束后所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
可选地,所述在话题关联计算中使用的装置还包括:动态淘汰值获取模块,被配置为在所述SCA算法迭代的每次迭代中,获取更新的动态淘汰值,所述动态淘汰值随着迭代次数增加逐渐减小。淘汰模块,被配置为在每次迭代中,在允许被淘汰的个体数量大于等于所述动态淘汰值的情况下,从所述种群中淘汰出与所述动态淘汰值相应数量的允许被淘汰的个体,在允许被淘汰的个体数量小于所述动态淘汰值的情况下,从所述种群中淘汰出允许被淘汰的个体。
可选地,所述在话题关联计算中使用的装置还包括:保存模块,被配置为在所述SCA算法迭代的每次迭代中,保存所述适应度函数对应于当前迭代得到的种群个体的函数值。平均适应度计算模块,被配置为在所述SCA算法迭代的每次迭代中,根据上一次迭代保存的函数值及所述种群中个体数量,计算出种群平均适应度值。淘汰筛选模块,被配置为在所述SCA算法迭代的每次迭代中,通过将所述适应度函数对应于当前迭代得到的种群个体的函数值与当前迭代中计算出的种群平均适应度值进行比较,从所述种群中筛选出允许被淘汰的个体。
可选地,所述在话题关联计算中使用的装置还包括:新个体生成模块,被配置为在所述种群中一个或多个个体被淘汰时,根据新个体生成算法,取得与被淘汰个体数量相应的新个体。所述新个体生成算法包括:通过将被淘汰个体与当前迭代中最优解个体之间的距离按照正弦或余弦函数随机振幅,取得随机步长,在被淘汰个体的权重的基础上通过累加所述随机步长取得新个体的权重。
可选地,所述在话题关联计算中使用的装置还包括:推荐模块,被配置为根据所述已关注话题与若干个待选择话题的关联度进行话题推荐。
可选地,所述推荐模块被配置为按照所述已关注话题与若干个待选择话题的关联度从高到低,选择一个或多个待选择话题进行推荐。
在本公开实施例的第三个方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开第一个方面中任一实施例所述在话题关联计算中使用的方法的步骤。
在本公开实施例的第四个方面中,提供了一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现如本公开第一个方面中任一实施例所述在话题关联计算中使用的方法的步骤。
本公开上述技术方案,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,利用SCA算法种群中的个体进行迭代更新,且算法使用的适应度函数的解析式中,由待选择话题与已关注话题之间的关联性统计数量对待选择话题的权重分量进行修正,而SCA算法对种群中个体迭代更新的过程就是寻优的过程,因此,算法迭代结束时可以得到一个全局最优个体的权重向量,最优个体每个待选择话题的权重分量可以达到与表征关联性的统计数量相适应的最优权重分量,能够准确表示出关联度,从而可以将最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。且SCA算法迭代过程具有实现简单,全局寻优能力较强、计算量小、用时少的特点,因此,本公开实现了高效率地进行话题关联计算的目的。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的实施环境示意图。
图2是根据本公开第一方面中一示例性实施例示出的在话题关联计算中使用的方法的流程图。
图3是根据本公开第一方面中另一示例性实施例示出的在话题关联计算中使用的方法的流程图。
图4是根据本公开第一方面中示例性实施例示出的指数函数曲线图。
图5是根据本公开第一方面中又一示例性实施例示出的在话题关联计算中使用的方法的流程图。
图6是根据本公开第一方面中再一示例性实施例示出的在话题关联计算中使用的方法的流程图。
图7是根据本公开第一方面中再一示例性实施例示出的在话题关联计算中使用的方法的流程图。
图8是根据本公开第一方面中再一示例性实施例示出的在话题关联计算中使用的方法的流程图。
图9是根据本公开第二方面中一示例性实施例示出的在话题关联计算中使用的装置的框图。
图10是根据本公开第二方面中另一示例性实施例示出的在话题关联计算中使用的装置的框图。
图11是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的实施环境示意图。该实施环境包括:服务器101,用户终端102。其中,服务器101应用了本公开实施例提供的在话题关联计算中使用的方法。服务器101可以通过网络接收用户终端102发送的话题关注指令,对用户已关注话题进行记录,并通过本公开实施例提供的在话题关联计算中使用的方法计算用户已关注话题与待选择话题的关联度。还可以根据计算出的关联度从待选择话题中选择话题对用户进行推荐。
其中,服务器101与用户终端102之间的网络例如可以包括但不限于:WiFi(Wireless Fidelity,无线保真)、2G、3G、4G等网络。
图2是根据本公开第一方面中一示例性实施例示出的在话题关联计算中使用的方法的流程图。该方法可以应用于服务器。例如,可以应用于图1所示的服务器101。如图2所示,该方法可以包括:
在步骤210中,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,其中,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
所述已关注话题可以包括一个或者多个话题。
为了便于本公开进行说明,用向量的形式对已关注话题及带选择话题进行表示。例如,已关注话题为两个,可以将其用向量表示为:Topic=(topic1,topic2)。待选择话题可以是从用户在知识系统中近期浏览的每一篇博文中提取出的n个互不相同的主题词汇,可以将其用向量表示为:T=(t1,t2,t3,...,tn)。
SCA算法,即sine cosine algorithm,正弦余弦算法。SCA是一种元启发试算法,它是建立在正弦余弦函数上的自组织和群智能基础上的数值优化计算方法。开始于一组随机解,即本公开步骤220中分配随机权重产生的初始的种群。这个随机解通过一个目标函数也即本公开步骤220所述适应度函数反复被评估、优化。
例如,假设为n个待选择话题中的每个待选择话题分配随机权重w,则可以用待选择话题权重向量表示为W=(w1,w2,w3,...,wn)。假设为n个话题中每个待选择话题分配m个随机权重,则产生m个待选择话题权重向量,构成算法迭代的初始种群,初始种群中每个个体均为一个待选择话题权重向量:
W1=(w11,w12,w13,...,w1n),
W2=(w21,w22,w23,...,w2n),
Wm=(wm1,wm2,wm3,...,wmn)
在步骤220中,利用SCA算法对所述种群中的个体进行迭代更新,其中,所述SCA算法使用的适应度函数以所述个体为变量,在所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正。
在SCA算法中,每次迭代对种群中个体进行更新的计算式如下:
其中,
表示第t次迭代过程中第i个个体在搜索空间中的位置,
表示第t+1次迭代过程中第i个个体在搜索空间中的位置,α是一个线性递减的函数,其表达式为:
其中c为常数2,t为当前迭代次数,T为总的迭代次数,β是[0,2π]范围内的随机数,η是[0,2]范围内的随机数,P
i t是第t次迭代过程中的全局最优个体,r是[0,1]范围内的随机数。
SCA算法的适应度函数在解决不同问题时其定义是不同的。在本公开中,对适应度函数的定义并不进行限制,只要适应度函数以种群的个体为变量,在所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正即可。这样,在本公开SCA算法迭代过程中,由于所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正,从而每个个体的权重向量不断修正改变,最终可以输出一个称为最优解个体的权重向量。最优个体每个待选择话题的权重分量可以达到与关联性统计数量相适应的最优权重分量,能够准确表示出关联度。最优解个体权重向量中各个维度权重分量的大小,就是各个待选择话题的关联度。可见,在迭代过程中,使用本公开适应度值函数可以评价每个个体权重的优劣,依据适应度函fit()对个体权重进行更新。
例如,本公开一实施方式中,所述待选择话题与已关注话题之间的关联性统计数量为待选择话题与已关注话题在若干篇文档资料中同篇出现的次数。在图1所示实施环境下,服务器101可以预先保存有若干篇文档资料。
本公开对适应度函数的解析式中,所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正的实现方式不限。例如,在关联性统计数量为同篇出现次数的实施方式中,可以通过将待选择话题与已关注话题在若干篇文档资料中同篇出现的次数与待选择话题的权重分量相乘来对待选择话题的权重分量进行修正。
例如,本公开所使用的适应度函数fit(Wk)的解析式可以如下:
其中,Wk表示所述种群中第k个个体;|Topic|表示用户已经关注的话题的个数,|T|表示所述待选择话题的个数,topici表示第i个已关注话题;tj表示第j个待选择话题,wkj表示Wk的第j个待选择话题的权重分量,count(topici,tj)的函数返回值表示第i个已关注话题与第j个待选择话题在所述若干篇文档资料中同篇出现的次数。
在本公开上述适应度函数的定义下,fit()值越小,则待选择话题权重向量即个体和用户已经关注的话题Topic之间的关联度越高。当算法结束迭代时可以得到一个全局最优个体的权重向量,这个全局最优个体的权重向量的每一维度的权重分量即为各个待选择话题的关联度,权重分量越高表示此待选择话题和用户关注的话题之间的关联度越高。上述适应度函数的定义简单,计算量小,因此,有助于进一步提高关联度的计算效率。
在步骤230中,将所述SCA算法迭代结束后所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
可见,由于本公开通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,利用SCA算法种群中的个体进行迭代更新,且算法使用的适应度函数的解析式中,由待选择话题与已关注话题之间的关联性统计数量对待选择话题的权重分量进行修正,而SCA算法对种群中个体迭代更新的过程就是寻优的过程,因此,算法迭代结束时可以得到一个全局最优个体的权重向量,最优个体每个待选择话题的权重分量可以达到与表征关联性的统计数量相适应的最优权重分量,能够准确表示出关联度,从而可以将最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。SCA算法迭代过程具有实现简单,全局寻优能力较强、计算量小、用时少的特点,因此,本公开实现了高效率地计算出话题关联度的目的。
图3是根据本公开第一方面中另一示例性实施例示出的在话题关联计算中使用的方法的流程图。该方法可以应用于服务器。例如,可以应用于图1所示的服务器101。在该实施例中,进一步在所述SCA算法迭代的每次迭代中,获取更新的动态淘汰值,所述动态淘汰值随着迭代次数增加逐渐减小。在每次迭代中,在允许被淘汰的个体数量大于等于所述动态淘汰值的情况下,从所述种群中淘汰出与所述动态淘汰值相应数量的允许被淘汰的个体,在允许被淘汰的个体数量小于所述动态淘汰值的情况下,从所述种群中淘汰出允许被淘汰的个体。如图3所示,该方法可以包括:
在步骤310中,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
在步骤320中,判断当前迭代次数是否小于预设最大迭代次数。
在步骤321中,如果当前迭代次数小于预设最大迭代次数,获取更新的动态淘汰值,对已淘汰个体数量清零,并对所述种群的个体进行遍历。
例如,可以根据下面的公式计算得到更新的动态淘汰值Numdynamic:
其中,Num
dynamic为动态淘汰值,[]表示取整函数,可以是向上取整或向下取整,n是种群个体数,t
cur和t
max分别是当前迭代次数和预设最大迭代次数。如图4所示指数函数y=a
x(a>1)曲线图,以e为底数的指数函数是a>1的类型,所以符合当x<0时函数值单调递增的特点。在本公开的上述公式中e的指数是
是一个从-1向0渐变的负数,而
会不断的从小变大并向1渐变,所以
是一个小于1并且由大变小并向0渐变的值。这样就可以保证Num
dynamic的值随着迭代次数增加逐渐减小。
在步骤322中,对当前遍历到的个体进行更新。如果适应度函数对应于当前遍历到的个体更新后的函数值优于更新前,则保留更新后的个体,否则,保留更新前的个体。
在步骤323中,判断当前遍历到的个体是否允许被淘汰。如果判定当前遍历到的个体不允许被淘汰,返回到步骤325。
在步骤324中,如果当前遍历到的个体允许被淘汰且所述已淘汰个体数量小于所述动态淘汰值,则从所述种群中淘汰该个体。
在淘汰个体时,相应对当前迭代中已淘汰个体数量加一。
在步骤325中,判断是否还有未遍历到的个体。
在步骤326中,如果还有未遍历到的个体,继续遍历,并返回到步骤322。
在步骤327中,如果已完成遍历,对当前迭代次数加一,返回到步骤320。
在步骤330中,如果当前迭代次数大于等于预设最大迭代次数,将最后一次迭代中所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
在本实施例中,采用了基于寻优过程的动态淘汰策略。动态淘汰策略就是在迭代的过程中根据每次迭代更新的动态淘汰值从种群中淘汰掉一部分允许淘汰的个体。由于本公开采用了动态淘汰值,可以使得淘汰个数在种群迭代的初期值较大,在搜索的初期尽可能的在整个搜索空间进行全局探索以便找到更加精确的可行解,在迭代的后期值较小,便于在探索的后期局部开采,提高可行解的精度,避免后期淘汰很多个体导致计算量增加,拖慢算法的收敛。因此,本实施例的动态淘汰策略符合种群寻优过程,可使得淘汰个数从开始随着迭代的进行逐渐减小,保证算法的收敛,提高可行解精度和计算效率。
图5是根据本公开第一方面中又一示例性实施例示出的在话题关联计算中使用的方法的流程图。该方法可以应用于服务器。例如,可以应用于图1所示的服务器101。在该实施例中,进一步在所述SCA算法迭代的每次迭代中,保存所述适应度函数对应于当前迭代得到的种群个体的函数值;在所述SCA算法迭代的每次迭代中,根据上一次迭代保存的函数值及所述种群中个体数量,计算出种群平均适应度值;在所述SCA算法迭代的每次迭代中,通过将所述适应度函数对应于当前迭代得到的种群个体的函数值与当前迭代中计算出的种群平均适应度值进行比较,从所述种群中筛选出允许被淘汰的个体。如图5所示,该方法可以包括:
在步骤510中,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
在步骤520中,判断当前迭代次数是否小于预设最大迭代次数。
在步骤521中,如果当前迭代次数小于预设最大迭代次数,根据上一次迭代保存的函数值及所述种群中个体数量,计算出种群平均适应度值,并对所述种群的个体进行遍历。
例如,种群平均适应度值avrrageFit可以根据以下公式进行计算:
在步骤522中,对当前遍历到的个体进行更新。如果适应度函数对应于当前遍历到的个体更新后的函数值优于更新前,则保留更新后的个体,否则,保留更新前的个体。
在步骤523中,通过将适应度函数对应于当前遍历到的个体的函数值与种群平均适应度值进行比较,判断当前遍历到的个体是否允许被淘汰。如果根据比较结果判定当前遍历到的个体不允许被淘汰,进入步骤525。
在步骤524a中,如果根据比较结果判定当前遍历到的个体允许被淘汰,判断当前迭代中已淘汰个体数量是否已达上限。如果当前迭代中已淘汰个体数量已达上限,进入步骤525。
在步骤524b中,如果当前迭代中已淘汰个体数量还未达上限,则从所述种群中淘汰该个体,进入步骤525。
在淘汰个体时,相应对当前迭代中已淘汰个体数量加一。
在步骤525中,保存适应度函数对应于当前遍历到的个体的函数值,并判断是否还有未遍历到的个体。
在步骤526中,如果还有未遍历到的个体,继续遍历,并返回到步骤522。
在步骤527中,如果已完成遍历,保存适应度函数对应于本次迭代中种群个体的函数值,对当前迭代次数加一,返回到步骤520。
例如,可以定义一个向量FitStore保存适应度函数对应于本次迭代中种群个体的函数值,如下所示:
在步骤530中,如果当前迭代次数大于等于预设最大迭代次数,将最后一次迭代中所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
可以理解的是,在利用SCA算法迭代过程中,种群的个体不断地更新,并且适应度函数值越来越好。对于种群中的个体
而言,在经过局部更新后它的位置在搜索空间中的位置变为
要比较更新前与更新后的适应度值,保留具有较好适应度值的个体作为
参与到下一次的迭代当中。如果某一个体的适应度值比全局最优个体的适应度值还好的话,就对全局最优个体更新。如果种群中的每个个体都完成了局部更新就生成了新一代的种群,并开始下一轮的迭代。然而,在生成的新种群中也是有适应度值相对好的和相对比较差的。在本实施例中,整体种群每迭代一次,则FitStore就随之更新,作为下一次迭代过程中计算averageFit的依据。所以算法从第一次迭代开始的时候就可以使用averageFit作为判定依据,决定哪一些个体可以被淘汰掉。例如,在本公开实施例通过求最大值进行优化的情况下,则那些适应度值小于averageFit可以被淘汰掉,相反,则适应度值大于averageFit的个体可以被淘汰。
可见,本实施例根据平均适应度值筛选出了适应度值较差的个体,提高了整个种群的质量,进而提高了关联度计算效率和准确度。
图6是根据本公开第一方面中再一示例性实施例示出的在话题关联计算中使用的方法的流程图。该方法可以应用于服务器。例如,可以应用于图1所示的服务器101。在该实施例中,进一步在所述种群中一个或多个个体被淘汰时,根据新个体生成算法,取得与被淘汰个体数量相应的新个体。所述新个体生成算法包括:通过将被淘汰个体与当前迭代中最优解个体之间的距离按照正弦或余弦函数随机振幅,取得随机步长,在被淘汰个体的权重的基础上通过累加所述随机步长取得新个体的权重。如图6所示,该方法可以包括:
在步骤610中,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
在步骤620中,判断当前迭代次数是否小于预设最大迭代次数。
在步骤621中,如果当前迭代次数小于预设最大迭代次数,对所述种群的个体进行遍历。
在步骤622中,对当前遍历到的个体进行更新。如果适应度函数对应于当前遍历到的个体更新后的函数值优于更新前,则保留更新后的个体,否则,保留更新前的个体。
在步骤623中,判断当前遍历到的个体是否允许被淘汰。如果当前遍历到的个体不允许被淘汰,返回到步骤625。
在步骤624中,如果当前遍历到的个体允许被淘汰且当前迭代中已淘汰个体数量还未达上限,则从所述种群中淘汰该个体,并根据新个体生成算法,取得与当前淘汰的个体对应的新个体。
例如,可以基于正余弦函数产生新个体,公式如下:
其中,D表示当前遍历到的个体
的权重向量与当前迭代中最优解个体x
*的权重向量之间的距离:
是生成的新个体,
是当前被淘汰的个体,l∈[-1,1],p是介于0和1之间的随机数。
在步骤625中,判断是否还有未遍历到的个体。
在步骤626中,如果还有未遍历到的个体,继续遍历,并返回到步骤622。
在步骤627中,如果已完成遍历,对当前迭代次数加一,返回到步骤620。
在步骤630中,如果当前迭代次数大于等于预设最大迭代次数,将最后一次迭代中所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
可见,本实施例在淘汰一个或多个个体的情况下,产生了相应的新个体,并且新个体的生成参照了全局最优个体,保证了进化方向,提高了整个种群的质量,进而提高了关联度准确度。
图7是根据本公开第一方面中再一示例性实施例示出的在话题关联计算中使用的方法的流程图。该方法可以应用于服务器。例如,可以应用于图1所示的服务器101。在该实施例中,综合了以上各图所示实施方式来计算话题关联度。如图7所示,该方法可以包括:
在步骤710中,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
在步骤720中,判断当前迭代次数是否小于预设最大迭代次数。
在步骤721中,如果当前迭代次数小于预设最大迭代次数,根据上一次迭代保存的函数值及所述种群中个体数量,计算出种群平均适应度值,获取更新的动态淘汰值,对已淘汰个体数量清零,并对所述种群的个体进行遍历。
在步骤722中,对当前遍历到的个体进行更新。如果适应度函数对应于当前遍历到的个体更新后的函数值优于更新前,则保留更新后的个体,否则,保留更新前的个体。
在步骤723中,通过将适应度函数对应于当前遍历到的个体的函数值与种群平均适应度值进行比较,判断当前遍历到的个体是否允许被淘汰。如果根据比较结果判定当前遍历到的个体不允许被淘汰,进入步骤725。
在步骤724a中,如果根据比较结果判定当前遍历到的个体允许被淘汰,判断当前迭代中已淘汰个体数量是否小于所述动态淘汰值。如果不是,则进入步骤725。
在步骤724b中,如果当前迭代中已淘汰个体数量小于所述动态淘汰值,则从所述种群中淘汰该个体,并根据新个体生成算法,取得与当前淘汰的个体对应的新个体,进入步骤725。
在淘汰个体时,相应对当前迭代中已淘汰个体数量加一。
在步骤725中,保存适应度函数对应于当前遍历到的个体的函数值,并判断是否还有未遍历到的个体。
在步骤726中,如果还有未遍历到的个体,继续遍历,并返回到步骤722。
在步骤727中,如果已完成遍历,保存适应度函数对应于本次迭代中种群个体的函数值,对当前迭代次数加一,返回到步骤720。
在步骤730中,如果当前迭代次数大于等于预设最大迭代次数,将最后一次迭代中所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
可见,本实施例对SCA算法进行了一定的改进,在算法中引入了动态淘汰策略,基于寻优过程动态确定淘汰个数,通过动态淘汰策略可以平衡算法的全局寻优和局部寻优过程,既能够保证可行解的精度又能够保证算法的收敛,并使用平均适应度值作为是否淘汰某个个体的依据,可以将劣势个体淘汰,从而提升种群整体质量,在淘汰劣势个体时还产生新个体,且新个体的产生参照了被淘汰个体的位置和搜索空间最优值的位置,从而既提高了局部搜索的能力又保证了进化方向,综上本实施例提高了SCA算法在计算话题关联度上的整体性能。
图8是根据本公开第一方面中再一示例性实施例示出的在话题关联计算中使用的方法的流程图。该方法可以应用于服务器。例如,可以应用于图1所示的服务器101。在该实施例中进一步根据所述已关注话题与若干个待选择话题的关联度进行话题推荐。如图8所示,该方法可以包括:
在步骤810中,通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,其中,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
在步骤820中,利用SCA算法对所述种群中的个体进行迭代更新,其中,所述SCA算法使用的适应度函数以所述个体为变量,在所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正。
在步骤830中,将所述SCA算法迭代结束后所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
在步骤840中,根据所述已关注话题与若干个待选择话题的关联度进行话题推荐。
例如,可以按照所述已关注话题与若干个待选择话题的关联度从高到低,选择一个或多个待选择话题进行推荐。
下面,以某场景中的已关注话题和待选择话题为例进行说明。假设用户已关注话题分别为“Java”和“MySql”,表示为向量Topic=(Java,MySql)。待选择话题为从用户近期浏览的博客当中提取的互不相同的主题词汇得到待选择话题,表示为向量的形式:
T=(JavaWeb,Hadoop,SpringBoot,JavaScript,MySql数据库集群,
Oracle,MySql性能优化,Vue,MVC,设计模式)
通过步骤810为待选择话题的向量T随机产生M个权重向量:
W1=(0.15,0.32,0.51,0.17,0.46,0.80,0.34,0.73,0.92,0.85);
W2=(0.22,0.58,0.19,0.10,0.84,0.79,0.92,0.13,0.46,0.75);
W3=(0.46,0.63,0.50,0.04,0.77,0.61,0.34,0.73,0.92,0.85);……
WM=(0.93,0.24,0.52,0.54,0.44,0.09,0.71,0.55,0.39,0.78)。
通过步骤820使M个权重向量不断迭代变化,最终在步骤830输出全局最优个体的权重向量W*=(0.43,0.59,0.64,0.21,0.84,0.39,0.93,0.07,0.19,0.24),经过步骤840排序后为(0.93,0.84,0.64,0.59,0.43,0.39,0.24,0.21,0.19,0.07)。排序后的权重向量对应的待选择话题序列集合为:(MySql性能优化,MySql数据库集群,SpringBoot,Hadoop,JavaWeb,Oracle,设计模式,JavaScript,MVC,VUE)。如果系统设置为向用户推荐一个相似度最高的关联话题,则可以向用户推荐待选择话题“MySql性能优化”;如果推荐两个关联话题,则可以向用户推荐待选择话题“MySql性能优化”和“MySql数据库集群”;依次类推,只要备选话题有多个,就可以推荐多个关联话题。
可见,通过利用实现简单、全局寻优能力较强、计算量小、用时少的SCA算法计算得到已关注话题与若干个待选择话题的关联度,根据已关注话题与若干个待选择话题的关联度,从若干个待选择话题中选择关联度满足要求的待选择话题作为关联话题进行推荐,从而能够实现高效率地推荐关联话题的目的。
图9是根据本公开第二方面中一示例性实施例示出的在话题关联计算中使用的装置900的框图。该装置可以配置于服务器。例如,可以配置于图1所示的服务器101。如图9所示,该装置可以包括:权重分配模块910、迭代模块920及输出模块930。
该权重分配模块910,可以被配置为通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,其中,所述种群的每个个体中,每个待选择话题均具有对应的权重分量。
该迭代模块920,可以被配置为利用SCA算法对所述种群中的个体进行迭代更新,其中,所述SCA算法使用的适应度函数以所述个体为变量,在所述适应度函数的解析式中,由所述待选择话题与已关注话题之间的关联性统计数量对所述待选择话题的权重分量进行修正。
该输出模块930,可以被配置为将所述SCA算法迭代结束后所述种群中最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。
在本实施例中,由于权重分配模块910通过为若干个待选择话题分配随机权重,得到用于在SCA算法中迭代的种群,迭代模块920利用SCA算法种群中的个体进行迭代更新,且算法使用的适应度函数的解析式中,由待选择话题与已关注话题之间的关联性统计数量对待选择话题的权重分量进行修正,而SCA算法对种群中个体迭代更新的过程就是寻优的过程,因此,算法迭代结束时可以得到一个全局最优个体的权重向量,最优个体每个待选择话题的权重分量可以达到与表征关联性的统计数量相适应的最优权重分量,能够准确表示出关联度,从而输出模块930可以将最优解个体作为所述已关注话题与所述若干个待选择话题的关联度进行输出。且SCA算法迭代过程具有实现简单,全局寻优能力较强、计算量小、用时少的特点,因此,本公开实现了高效率地计算出话题关联度的目的。
图10是根据本公开第二方面中另一示例性实施例示出的在话题关联计算中使用的装置1000的框图。该装置可以配置于服务器。例如,可以配置于图1所示的服务器101。如图10所示,该装置可选地还可以包括:动态淘汰值获取模块940,被配置为在所述SCA算法迭代的每次迭代中,获取更新的动态淘汰值,所述动态淘汰值随着迭代次数增加逐渐减小。淘汰模块941,被配置为在每次迭代中,在允许被淘汰的个体数量大于等于所述动态淘汰值的情况下,从所述种群中淘汰出与所述动态淘汰值相应数量的允许被淘汰的个体,在允许被淘汰的个体数量小于所述动态淘汰值的情况下,从所述种群中淘汰出允许被淘汰的个体。在本实施例中,由于采用了动态淘汰值,可以使得淘汰个数在种群迭代的初期值较大,在搜索的初期尽可能的在整个搜索空间进行全局探索以便找到更加精确的可行解,在迭代的后期值较小,便于在探索的后期局部开采,提高可行解的精度,避免后期淘汰很多个体导致计算量增加,拖慢算法的收敛。因此,本实施例的动态淘汰策略符合种群寻优过程,可使得淘汰个数从开始随着迭代的进行逐渐减小,保证算法的收敛,提高可行解精度和计算效率。
可选地,如图10所示,所述在话题关联计算中使用的装置1000还可以包括:保存模块950,被配置为在所述SCA算法迭代的每次迭代中,保存所述适应度函数对应于当前迭代得到的种群个体的函数值。平均适应度计算模块951,被配置为在所述SCA算法迭代的每次迭代中,根据上一次迭代保存的函数值及所述种群中个体数量,计算出种群平均适应度值。淘汰筛选模块952,被配置为在所述SCA算法迭代的每次迭代中,通过将所述适应度函数对应于当前迭代得到的种群个体的函数值与当前迭代中计算出的种群平均适应度值进行比较,从所述种群中筛选出允许被淘汰的个体。在本实施例中,根据平均适应度值筛选出了适应度值较差的个体,提高了整个种群的质量,进而提高了关联度计算效率和准确度。
可选地,如图10所示,所述在话题关联计算中使用的装置1000还可以包括:新个体生成模块960,被配置为在所述种群中一个或多个个体被淘汰时,根据新个体生成算法,取得与被淘汰个体数量相应的新个体。所述新个体生成算法包括:通过在被淘汰个体与当前迭代中最优解个体之间的距离基础上按照正弦或余弦函数随机振幅,取得随机步长,在被淘汰个体的权重的基础上通过累加所述随机步长取得新个体的权重。在本实施例中,在淘汰一个或多个个体的情况下,产生了相应的新个体,并且新个体的生成参照了全局最优个体,保证了进化方向,提高了整个种群的质量,进而提高了关联度准确度。
可选地,如图10所示,所述在话题关联计算中使用的装置1000还可以包括:推荐模块970。该推荐模块970,可以被配置为根据所述若干个待选择话题的关联度进行话题推荐。
可见,通过推荐模块970根据所述已关注话题与若干个待选择话题的关联度进行话题推荐,能够实现高效率地推荐关联话题的目的。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种电子设备1100的框图。例如,电子设备1100可以被提供为一服务器。参照图11,电子设备1100包括处理器1122,其数量可以为一个或多个,以及存储器1132,用于存储可由处理器1122执行的计算机程序。存储器1132中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1122可以被配置为执行该计算机程序,以执行上述在话题关联计算中使用的方法。
另外,电子设备1100还可以包括电源组件1126和通信组件1150,该电源组件1126可以被配置为执行电子设备1100的电源管理,该通信组件1150可以被配置为实现电子设备1100的通信,例如,有线或无线通信。此外,该电子设备1100还可以包括输入/输出(I/O)接口1158。电子设备1100可以操作基于存储在存储器1132的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述在话题关联计算中使用的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1132,上述程序指令可由电子设备1100的处理器1122执行以完成上述在话题关联计算中使用的方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。