一种基于隐马尔科夫链模型的智能推荐算法
技术领域
本发明涉及智能推荐领域,特别涉及一种基于隐马尔科夫链模型的智能推荐算法。
背景技术
互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,这就是所谓的信息超载问题。
解决信息超载问题一个非常有潜力的办法是推荐系统,它是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的个性化信息推荐系统。和搜索引擎相比推荐系统通过研究用户的兴趣偏好,进行个性化计算,由系统发现用户的兴趣点,从而引导用户发现自己的信息需求。一个好的推荐系统不仅能为用户提供个性化的服务,还能和用户之间建立密切关系,让用户对推荐产生依赖。
推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展和应用前景的领域就是电子商务领域。同时学术界对推荐系统的研究热度一直很高,逐步形成了一门独立的学科。
推荐系统有3个重要的模块分别为用户建模模块、推荐对象建模模块、推荐算法模块。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。推荐系统采用的推荐算法有多种,目前最常用的是组合推荐算法,各种算法都有优缺点,选择组合推荐算法可弥补或者避免单独推荐技术的弱点。
发明内容
基于此,针对上述现有技术,本发明的目的在于提供一种基于隐马尔科夫链模型的智能推荐算法,是综合了信息增益率和隐马尔科夫链的优点,弥补了单使用隐马尔科夫链算法作为推荐算法时推荐偏向数量大的状态的缺点,以及求解参数是的复杂性缺点。
为达到上述目的,本发明实施例采用以下方案:
针对文档特点,将信息增益率和相关度分别替代隐马尔科夫链模型中的状态的初始概率和状态转移概率;
计算客户阅读第t篇文档时的部分概率;
计算文档篇数t=n时每一篇文档的最优概率和最优文档序列,从所有最优概率中选择值最大的最优概率;
记录下最优文档序列,即是推荐给客户的所有文档序列。
根据上述本发明实施例的方案,将信息增益率和相关度分别替代了状态的初始概率和状态转移概率,然后结合常规HMM的算法步骤对信息属性进行分析得到多个同时与目标属性有强相关的属性,然后将其作出推荐。本方案综合了信息增益率和隐马尔科夫链的优点,弥补了单使用隐马尔科夫链算法作为推荐算法时推荐偏向数量大的状态的缺点,以及求解参数是的复杂性缺点,在推荐算法中具有较大的实用性和较高的精准性。
附图说明
图1是本发明实施例的基于隐马尔科夫链模型的智能推荐算法的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1中示出了一个实施例中的基于隐马尔科夫链模型的智能推荐算法的流程示意图,如图1所示,基于隐马尔科夫链模型的智能推荐算法包括如下步骤:
步骤S1:针对文档特点,将信息增益率和相关度分别替代隐马尔科夫链模型中的状态的初始概率和状态转移概率;
步骤S2:计算客户阅读第t篇文档时的部分概率;
步骤S3:计算文档篇数t=n时每一篇文档的最优概率和最优文档序列,从所有最优概率中选择值最大的最优概率;
步骤S4:记录下最优文档序列,即是推荐给客户的所有文档序列。
根据上述本发明实施例的方案,将信息增益率和相关度分别替代了状态的初始概率和状态转移概率,然后结合常规HMM的算法步骤对信息属性进行分析得到多个同时与目标属性有强相关的属性,然后将其作出推荐。本方案综合了信息增益率和隐马尔科夫链的优点,弥补了单使用隐马尔科夫链算法作为推荐算法时推荐偏向数量大的状态的缺点,以及求解参数是的复杂性缺点,在推荐算法中具有较大的实用性和较高的精准性。
在实施例中,上述步骤S1中,将信息增益率和相关度分别替代隐马尔科夫链模型中的状态的初始概率和状态转移概率可按如下方式进行:
隐马尔科夫链模型的主要思想是:隐马尔科夫链模型的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。所以,隐马尔可夫模型是一个双重随机过程,具有跟智能推荐类似的可以根据可观察状态的序列找到一个最可能的隐含状态序列的性质。隐马尔科夫链模型可以用五个元素来描述,包括可观测状态O、隐含状态S、初始状态概率矩阵π、隐含状态转移概率矩阵A、观测状态输出概率矩阵B。
信息增益率的主要思想是:在智能推荐系统中,一个状态出现是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之就大。故在信息论中,定义的不确定性函数
是概率P的单调递降函数,而两个独立状态所产生的不确定性应等于各自不确定性之和,即
,这称为可加性。同时满足这两个条件的函数
是对数函数,即
。而信息熵便为基于该不确定性函数的期望,且在本文算法应用的推荐系统中,一个状态是一个独立的单元,故一个状态的信息熵为:
而所有状态的信息熵为:
同由于在所应用的推荐系统中,一个状态是一个独立的单位,故状态的分裂信息等于
,则状态
的信息增益率为:
将信息增益率融合在隐马尔科夫链模型中,以信息增益率代替隐马尔科夫链模型中隐含状态的初始概率。信息增益率本身就涵盖了初始状态概率,且信息增益率能更准确地将对整体而言重要的状态推出,而不是过分地将数量大的状态推出,一定程度上能比纯初始状态概率的代入使推荐的结果更精准。
在智能推荐系统中,状态的变换显然是跟相关度有很大联系的,且一般推荐算法也主要考虑的是关联规则,故本文所要提供的推荐算法中的隐马尔科夫链模型的隐含状态转移概率矩阵A便是相关度矩阵C。
上述步骤S2中,计算客户阅读第t篇文档时的部分概率可按如下方式进行:
步骤1:计算 t=1 时刻的部分概率
当阅读第t=1篇文档的时候,阅读的某篇文档的序列还不存在,根据2.3所述,这时可以直接使用某文档的信息增益率和它跟文档
的输出概率的积来表示这时候的部分概率:
步骤2:计算 t>1 时刻的部分概率
往下则可以根据第t-1篇的部分概率来求第t篇的部分概率。
如客户阅读的第t篇文档是文档
,而阅读的第t-1篇文档有多种可能,而现从这多种可能中找出最可能即概率最大的一篇,以此类推寻至第1篇文档。
由于推荐阅读的后一篇文档都与前一篇文档有关系,且发生的概率值依赖于前一篇文档,故可以利用阅读到第t-1篇文档时为止的所有文档的转移矩阵即相关度矩阵和输出矩阵得到第t篇文档为
的概率:
将上面这个表达式推广,就可以得到客户点击阅读了文档
,则往下阅读的第t篇文档是具有最大部分概率的文档
的计算公式:
其中
表示的是文档
与文档
的相关度,即文档阅读转移的依赖系数;
表示的是文档
出现,文档
出现的概率,即输出概率。
上述步骤S3中,计算文档篇数t=n时每一篇文档的最优概率和最优文档序列可按如下方式进行:
最优概率是客户在阅读的第t篇文档是文档的所有可能文档序列中概率最大的文档序列的概率,记为
。显然阅读到的每一个文档都有对应的最优概率和最优文档序列。
上述步骤S4中,记录下最优文档序列可按如下方式进行:
在阅读的每一篇中间文档和结束文档都有一个部分最优概率。但是目的是找到最可能的隐藏文档序列,所以需要一个方法去记住部分最优文档序列的每一篇文档。
要计算第t篇文档的部分概率,只需要知道第t-1篇文档的部分概率,所以只需要记录那个导致了第t篇文档有最大部分概率的文档,也就是说,在阅读到任何一篇文档时,系统都必须处在一个能使下一篇文档具有最大部分概率的状态。则可以利用一个后向指针
来记录导致某篇文档具有最大局部概率的前一个状态,即:
其中argmax表示能最大化后面公式的j值。
以上所述实施例仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。