遗忘算法:算法概述

一、遗忘算法原理

能够从未知的事物中发现关联、提炼规律才是真正智能的标志,而遗忘正是使用智能生物具备这一能力的工具,也是适应变化的利器,“遗忘”这一颇具负能量特征的家伙是如何实现发现这么个神奇魔法的呢?


让我们从巴甫洛夫的狗说起:狗听到了铃声就知道开饭了。

铃声和开饭之间并不存在必然的联系,我们知道之所以狗会将两者联系在一起,是因为巴甫洛夫有意的将两者一次次在狗那儿重复出现。所以,重复是建立关联的必要条件。


我们还可以想象,狗在进食的时候听到的声音还可能有鸟叫声、风吹树叶的沙沙声,为什么这些同样具备重复特征声音却没有和开饭建立关联呢?


细分辨我们不难想到:铃声和开饭之间不仅重复共现,而且这种重复共现还具备一个相对稳定的周期,而其他的那些声音和开饭的共现则是随机的。


那么遗忘又在其中如何起作用呢?

1、所有事物一视同仁的按相同的规律进行遗忘;

2、偶尔或随机出现的事物因此会随时间而逐渐淡忘;

3、而具有相对稳定周期重复再现的事物,虽然也按同样的规则遗忘,但由于周期性的得到补充,从而可以动态的保留在记忆中。



在自然语言处理中,很多对象比如:词、词与词的关联、模版等,都具备按相对稳定重现的特征,因此非常适用遗忘来处理。



二、相关算法

那么,用什么来模拟遗忘呢?

提到遗忘,很自然的会想到艾宾浩斯遗忘曲线,如果这条曲线有个函数形式,那么无疑是模拟遗忘的最佳建模选择。遗憾的是它只是一组离散的实验数据,但至少让我们知道,遗忘是呈指数衰减的。另外有一个事实,有的人记性好些,有的人记性差些,不同人之间的遗忘曲线是不同的,但这并不会从本质上影响不同人对事物的认知,也就是说,如果存在一个遗忘的函数,它首先是指数形式的,其次在实用过程中,该函数的系数并不那么重要。

这提醒我们,可以尝试用一些指数形式的函数来代替遗忘曲线,然后用实践去检验,如果能满足工程实用就很好,这样的函数公式并不难找,比如:退火算法、半衰期公式。


三、牛顿冷却公式

现在,我们来讲一个新的问题:根据用户的投票,决定最近一段时间内的“热文排名”。我们可以把“热文排名”想象成一个“自然冷却”的过程:

1)任意时刻,网站中所有的文章,都有一个“当前温度”,温度最高的文章就排在第一位。

2)如果一个用户对某篇文章投了赞成票,该文章的温度就上升一度。

3)随着时间流逝,所有文章的温度都逐渐“冷却”。

这样假设的意义,在于我们可以照搬物理学的冷却定律,使用现成的公式,建立“温度”与“时间”之间的函数关系,轻松构造一个“指数式衰减”的过程。

       

伟大的物理学家牛顿,早在17世纪就提出了温度冷却的数学公式,然后被后人称作“牛顿冷却定律”用一句话概括:物体的冷却速度,与其当前温度与室温之间的温差成正比


数学公式:

其中,T(t) 是温度 T 的时间 t 函数,H表示室温,T(t) - H 表当前温度与室温的温差,a 室温与降温速率之间的比例关系。

第一步:改写方程,然后两边去积分。

        

第二步: 求积分的解,C为常数

                

第三步:假定在时刻t0,该物体的温度是T(t0),简写为T0。带入上面方程得到

        

第四步:将C带入第二步的方程

  

假设室温为0,那么

本期温度 = 上期温度*exp(-(冷却系数)*时间间隔)

同理:本期得分 = 上期得分*exp(-(冷却系数)*时间间隔)




展开阅读全文

没有更多推荐了,返回首页