基于用户操作记录和资源内容的信息关联方法\n技术领域\n[0001] 本发明涉及操作系统环境下基于用户操作记录和资源内容的信息关联方法,属于计算机软件技术领域。\n背景技术\n[0002] 当今用户的个人信息量越来越大,过量的信息会使人们产生浪费时间、延迟决策、无法专注于主要任务和压力等问题,可参见参考文件Waddington,P.(1997).Dying for Information?A report on the effects of information overload in the UK and worldwide.Reuters.1997。知识工作者,比如教授、律师和工程师等职业的人,对于信息过载的情况感受最为深刻,因为他们在日常工作中需要进行各种不同的任务,而进行任务的过程中需要查找和处理大量的信息。这就不可避免的产生了一个问题,在任务被打断或者任务切换的时候,要为获得当前任务的相关信息或者资源付出大量的精力。\n[0003] 信息的雪崩式增长的现状,以及目前的操作系统没有提供针对用户需要的信息管理方式,使得个人用户无法有效获取和管理个人信息的问题变得十分突出。个人信息管理就是关于如何帮助人们解决这个问题的研究领域。为用户提供完美的个人信息管理会遇到很多心理学上的挑战。这些挑战可以归结为以下的两点:一,要把物品(比如文件)进行分类在认知上是非常困难的。二,用户能够记住的关于物品的细节常常不能够用于检索。当前的研究从解决这两个挑战的角度提出了许多解决方案。\n[0004] 为用户提供更好的信息组织和呈现方式是个人信息管理的重要研究方向。Ofer Bergman等人所实现的项目文件夹,可以文献Ofer Bergman,Ruth Beyth-Marom,Rafi Nachmias,The Project Fragmentation Problem in Personal Information Management,CHI 2006 Proceedings,2006为参考,将用户的所有同主题信息(包括文档、邮件、收藏的页面等)存储于同一文件夹下,用户可以在同一目录下存储和找回同主题信息。\n[0005] 除了更好地对信息进行组织和呈现之外,更强大的信息检索功能也是实现个人信息管理的重要手段。Dumais等人实现了一个Stuff I've Seen(SIS)系统,具体实现方法,参考Dumais,S.T.,Cutrell,E.,Cadiz,J.J.,Jancke,G.,Sarin,R.and Robbins,D.C.(2003).Stuff I've Seen:A system for personal information retrieval and re-use.In Proc.SIGIR 2003,72-79.。SIS的设计有两个关键的方面。一个方面是为不同组织结构的信息提供统一的标记,从而利用统一的标记实现统一的检索。另一个方面是利用比如浏览的时间、文件的作者等用户比较容易记住的上下文信息为用户提供检索。\n[0006] 信息组织和呈现的方式需要用户预先把资源进行分类,未能从根本上把用户从繁重的交互负担中解脱出来。信息检索的方式在一定程度中减小用户查找资源的开销,但是频繁检索会使得用户的任务产生中断,不能集中精力于当前的工作。\n[0007] 基于用户操作记录和资源内容的信息关联方法,可以为计算机用户提供一种实时而准确的资源推荐服务,解决上述存在的问题。\n发明内容\n[0008] 本发明的目的在于提出一种资源信息关联方法。本发明主要应用在个人计算机中,根据用户过去的操作记录和访问过的资源内容,在用户查找资源之前向用户推荐相关信息,为用户节省查找信息的时间开销。\n[0009] 为达成上述目的,本发明的技术方案是:基于用户操作记录和资源内容的信息关联方法,其步骤包括:\n[0010] 1)监听用户在计算机中多个操作事件,获取资源内容和操作记录并储存于本地或远程数据库;\n[0011] 2)将所述操作记录转化为特定格式向量,建立基于操作记录的任务模型;\n[0012] 2-1)对所述操作记录进行时间片序列切分和向量转化;\n[0013] 2-2)根据隐式狄利克雷分配模型以所述操作事件为数据,同时以所述时间片为单元,建立任务模型;\n[0014] 3)根据所述资源内容建立基于资源内容的主题模型;\n[0015] 3-1)根据所述资源内容中提取的单词集合和词汇表,将每个资源的内容转换为词频向量表示;\n[0016] 3-2)将所述词频向量通过隐式狄利克雷分配模型表示,建立主题模型;\n[0017] 4)分别计算当前资源与其他资源所述主题模型和任务模型的关联程度,完成信息关联的处理并选择关联度最高的资源返回用户。\n[0018] 所述操作事件包括:打开资源事件、关闭资源事件、由一资源切换到另一资源事件,所述资源内容包括:文档和网页。\n[0019] 所述文档有关的操作事件需要采集的属性包括时间、事件类型、资源的标题和资源的路径,与所述网页有关的操作事件需要采集的属性包括时间、事件类型、网页标题和网页URL。\n[0020] 所述时间片序列切分方法是:\n[0021] i)统计操作记录中所有资源,建立每个资源在词汇表中的编号,将所述资源组成一词汇表;\n[0022] ii)定义采样向量Aj={a1,a2,...,an,...,aN}用于表示第j次采样时所有资源的状态,其中a=(0,1),n为操作事件对应资源编号,N为资源总数,j为第j次采样;\n[0023] iii)根据周期c对时间片进行采样,得到切分时间片序列 其中,\n为向量总个数,i为采样次数,t为时间片的长度,c为采样周期。\n[0024] 所述资源内容的提取包括:去除标点符号、中文分词、去除停用词、统计词汇表,得到词频向量,通过上述操作每个资源的内容转换为词频向量。\n[0025] 优选地,在所述任务模型中,得到给定时间片的任务分布概率和给定任务的资源分布概率及任务关于某个资源的发生的分布概率。\n[0026] 优选地,在所述主题模型中,得到给定资源的主题分布概率和给定主题的单词分布概率。\n[0027] 优选地,计算关联程度的方法是:根据Kullback-Leibler模型距离计算当前资源与其他资源在所述任务模型和主题模型的概率分布的相似性,进行加权得到总的距离。\n[0028] 优选地,所述任务模型和主题模型的学习中通过Gibbs采样进行参数估计。\n[0029] 优选地,所述用户计算机安装Windows或者Android系统。\n[0030] 本发明的积极效果为:\n[0031] 本发明提出了一种资源关联及推荐方法。根据用户对个人计算机中的操作历史记录和操作中涉及的资源内容,自动挖掘基于操作历史记录的任务模型和基于资源内容的主题模型,能够在用户使用资源时,自动推荐可能与该资源相关的其他资源,且期间无需任何额外操作。本发明旨在节省用户对文件的查询时间,尽可能保证用户任务的一致性,有效地减轻用户切换任务时的负担。\n附图说明\n[0032] 图1是本发明基于用户操作记录和资源内容的信息关联方法的实施例中系统结构框图;\n[0033] 图2是本发明实施例中信息采集模块的流程图;\n[0034] 图3是本发明实施例中信息管理模块的流程图;\n[0035] 图4是本发明基于用户操作记录和资源内容的信息关联方法对操作事件进行时间片切分的示例;\n[0036] 图5是本发明基于用户操作记录和资源内容的信息关联方法对资源内容进行预处理的流程图;\n[0037] 图6是本发明任务模型与隐式狄利克雷分配(LDA)模型的对应关系图;\n[0038] 图7是本发明的推荐模块流程图;\n[0039] 图8是本发明的推荐系统界面实例。\n具体实施方式\n[0040] 发明原理\n[0041] 本发明根据用户对个人计算机中的操作历史记录和操作中涉及的资源内容,自动挖掘用户的基于操作记录的任务模型和基于资源内容的主题模型,然后结合任务模型和主题模型衡量信息之间的关联关系,在用户使用资源时为用户找出与当前资源最相关的其他资源并呈现给用户,在整个过程中无需用户进行任何额外操作。\n[0042] a)在操作系统环境下,监听用户对两个或多个目标资源的操作事件,获取资源的内容。\n[0043] b)对用户的操作记录历史数据做时间片序列的切分和转换,然后利用隐式狄利克雷分配模型具体算法可参见[Blei 2002]Blei,D.M.,Ng,A.Y.,&Jordan,M.I.(2002).Latent Dirichlet allocation.In Advances in NeuralInformation Processing Systems 14.MIT Press,Cambridge,MA,2002.建立基于操作记录的任务模型。\n[0044] c)对用户的操作记录中涉及的资源做内容抽取、预处理和词频向量化,然后利用隐式狄利克雷分配模型建立基于资源内容的主题模型。\n[0045] d)根据基于操作记录的任务模型和基于资源内容的主题模型对资源的相关性进行衡量。\n[0046] 步骤a所述用户操作事件包括:打开资源事件、关闭资源事件、由一个资源切换到另一个资源事件。\n[0047] 步骤a通过下述方式实现对所述两个或多个目标资源的监听:监听用户的操作事件;将所述(上述的三种事件)事件转换为交互数据;将操作事件中涉及的资源的内容转换为内容数据;由所述交互数据筛选用户对两个或多个目标资源所作的操作;所述交互数据和内容数据可整体储存于本地或远程数据库备用。\n[0048] 综合而言,本发明方法可以通过以下方式实施:\n[0049] 1)利用信息采集模块监听用户在计算机中的操作事件,获取操作事件中涉及的资源的内容,并将操作事件和资源内容发送到信息管理模块。\n[0050] 2)利用信息管理模块接收来自信息采集模块的操作事件和资源内容,记录到数据库,并响应数据预处理模块的数据查询请求。\n[0051] 3)利用数据预处理模块对查询得到的操作数据和资源内容进行过滤和转换,然后把特定格式的操作数据和资源内容传给数据挖掘模块。\n[0052] 4)数据挖掘模块对操作数据经过预定算法的学习之后,生成任务模型;对资源内容经过预定算法的学习之后,生成主题模型。然后把生成的任务模型和主题模型传给推荐模块。\n[0053] 5)推荐模块在得到两种模型后,根据指定的推荐策略,为当前资源筛选出最相关的前N个资源进行推荐。\n[0054] 操作事件中的资源包括但不限于下列类型的资源:文档、网页。\n[0055] 信息采集模块的工作方法为:\n[0056] 1)采集用户在计算机上的操作事件和内容,不同的操作事件需要采集不同的属性。与文档有关的操作事件需要采集的属性包括时间、事件类型、资源的标题和资源的路径,与网页有关的操作事件需要采集的属性包括时间、事件类型、网页标题和网页URL。\n[0057] 2)将采集到的操作事件和资源内容发送到信息管理模块。\n[0058] 信息管理模块的工作方法为:\n[0059] 1)接收信息采集模块发来的操作事件和资源内容,并在数据库中加以保存。\n[0060] 2)响应来自数据预处理模块的数据查询请求,把请求中所规定时间段的操作事件和资源内容发给数据预处理模块。\n[0061] 预处理模块可以分为两部分,一部分负责对操作事件的历史数据进行预处理,另一部分对资源内容进行预处理。\n[0062] 对操作事件进行预处理的工作方法如下:\n[0063] 将用户的操作事件的历史数据用时间片切分,将每个时间片中的操作事件转化为词频的方式去表示。首先需要统计操作数据中涉及到的所有资源,所有资源组成一个词汇表,每个资源在词汇表中拥有唯一的编号。操作事件利用其所操作资源对应的标号来表示。\n这里需要定义两个参数,一个是时间片的长度t,另一个是采样周期c,表示每过周期c的时间就采样一次,这里t和c的单位都定义为秒。还有,需要定义采样的向量Aj={a1,a2,…,an,…,aN},其中a={0,1},n为操作事件对应资源的编号,N为资源的总个数,j表示第j次采样,Aj反映了第j次采样时所有资源的状态。以周期c来采样时间片t,我们可以得到m个向量A,其中 我们最终定义 其中K是时间片序列,表示了时间片内每\n个资源的运行状态,i表示第i次采样,m表示时间片内的采样次数。上述方式以时间片为单元,以时间片中的操作事件为数据,实现了时间片序列到词频向量的转换。\n[0064] 对资源内容进行预处理的工作方法如下:\n[0065] 1)去除标点符号\n[0066] 标点符号没有实际意义,对内容分析会产生负面影响,可以采用过滤器的方法把它去除,标点符号的原来位置以空格取代。\n[0067] 2)中文分词\n[0068] 利用中文分词程序对资源内容进行分词。\n[0069] 3)去除停用词\n[0070] 停用词指的是文章中出现的频率比较高,但是却没有什么实际意义的词,主要是一些副词、虚词和语气词等,比如“还”,“的”、“啊”(参考自,化柏林.知识抽取中的停用词处理技术.现代图书情报技术.2007年,第8期,48-51)。这些词在数据挖掘的过程中会产生干扰效果,所以必须删除。删除的方法是依据停用词表,把在停用词表出现的单词删除后,被删词的原位置以空格代替。\n[0071] 4)统计词汇表,得到词频向量\n[0072] 统计所有文章的所有不同单词,组成词汇表,每个单词在词汇表中具有唯一的编号。经过分词后,每个资源的内容是一个单词的集合。对每个资源,根据其单词集合和词汇表,将每个资源的内容转换为词频向量来表示。\n[0073] 数据挖掘模块的工作方法为:\n[0074] 在得到向量化的数据之后,经过隐式狄利克雷分配模型的学习以后,可以得到分布概率。在任务模型中,得到的是给定时间片的任务分布概率和给定任务的资源分布概率,同时得到任务关于某个资源的发生的分布概率。在主题模型中,得到的是给定资源的主题分布概率和给定主题的单词分布概率。\n[0075] 推荐模块的工作方法为:\n[0076] 为当前资源推荐相关资源的依据是资源之间的关联程度。基本途径是利用资源之间的关联程度对资源进行排序。推荐模块从数据挖掘模块中得到任务模型和主题模型,这两种模型分别从操作和内容两个不同的角度对资源之间的关联程度进行了衡量。推荐模块对这两种关联程度进行加权得到一个总的关联程度,然后根据总的关联程度进行排序和推荐。\n[0077] 在任务模型中实现的是时间片序列-任务-资源与隐式狄利克雷分配模型中的文章-主题-单词的对应,而衡量资源之间的关联程度,也就相当于衡量单词之间的关联程度。单词之间的关联程度可以从它们在各个主题的相似程度上去衡量。设有单词w1和w2,它们的关联程度可以通过条件主题分布P(Z|w1)和P(Z|w2)来衡量。\n[0078] 在主题模型中衡量资源之间的关联程度,就是衡量文章之间的关联程度。在隐式狄利克雷分配模型中,文章相当于从维度很高的词的向量降到了维度比较低的主题向量。\n所以,计算两个文章之间的相似性,可以通过它们的主题概率分布来计算。\n[0079] 衡量两个分布的差别的标准方法是计算它们的KL距离可参考如下的方式来实现:Steyvers,M.,&Griffiths,T.(2007).Probabilistic Topic Models.In T.Landauer,D McNamara,S.Dennis,and W.Kintsch,editors,Latent Semantic Analysis:A Road to Meaning.Laurence Erlbaum,In Press.。Kullback-Leibler距 离,也 叫 KL差 异(Kullback-Leibler divergence),它衡量的是相同事件空间里两个概率分布的差异情况。\n假设两个概率分布分别是p和q,它们的KL距离可以用下面的式子来计算:\n[0080] \n[0081] 其中,pi和qi分别表示概率分布向量p和q的第i维,T表示p和q的总的维度。\n[0082] 从式子可以知道,当p和q的每一维都对应相等时,即两个分布完全相等时,D(p,q)=0。KL距离是非对称的,也就是说D(p,q)≠D(q,p)。在推荐的应用中,使用的是一个基于KL距离的对称的距离,计算公式如下:\n[0083] \n[0084] 任务模型和主题模型能为两个资源分别计算一个衡量概率分布差异性的KL距离,设任务模型得到的距离是KL1,主题模型得到的距离是KL2,通过下面的式子计算总的距离L:\n[0085] L-α*KL1+β*KL2\n[0086] 其中,α和β是设定的参数,可以通过经验值设定,也可以根据用户偏好设定。\n[0087] 最后距离L越小的资源,表示与当前资源越相似,所以关联程度越高,越应该推荐给用户。\n[0088] 下面通过实施例结合附图对本发明作进一步描述。\n[0089] 本发明方法通过图1所示的实施例系统实施。\n[0090] 如图1所示,本实施例系统主要包括:信息采集模块,用于监听用户的操作事件,获取操作事件涉及的资源内容,并发送到信息管理模块;信息管理模块,接收操作事件和资源内容并响应数据查询请求;数据预处理模块,用于对操作事件和资源内容进行转换为特定格式并传给数据挖掘模块;数据挖掘模块,用于对操作数据和资源内容通过预定算法进行学习,分别产生任务模型和主题模型;推荐模块,用于根据指定的推荐策略,提供当前资源最相关的资源推荐列表。\n[0091] 下面介绍各模块的内部流程。\n[0092] 信息采集模块(如图2)在后台工作,负责实时采集用户在计算机上的操作事件,包括打开资源、关闭资源、由一个资源切换到另一个资源事件,并获取操作事件涉及的资源内容。与文档有关的操作事件需要采集的属性包括时间、事件类型、资源的标题和资源的路径,与网页有关的操作事件需要采集的属性包括时间、事件类型、网页标题和网页URL。所采集到的操作事件和资源内容实时发送到信息管理模块。\n[0093] 信息管理模块(如图3)负责实时接收来自信息采集模块的操作事件和资源内容。\n首先,将操作事件转换为操作数据,将操作数据和资源内容记录到数据库,数据库中的数据可以供其他应用使用;然后,响应来自数据预处理模块的数据查询请求,把请求中所规定时间段的操作数据和资源内容返回给数据预处理模块。\n[0094] 数据预处理模块负责两方面的数据预处理,一方面对查询所得的操作数据进行预处理,使用发明内容部分所述的“对操作事件进行预处理的工作方法”,将用户的操作事件的历史数据用时间片切分,将每个时间片中的操作事件转化为词频的方式去表示,最终表示为词频向量。图4示出了对操作事件进行时间片切分的一个示例。\n[0095] 另一方面,对资源内容进行预处理,使用发明内容部分所述的“对资源内容进行预处理的工作方法”(如图5),经过去除标点符号,中文分词,去除停用词,统计词汇表、得到词频向量四个步骤,将每个资源的内容转换为词频向量来表示。\n[0096] 所得的操作数据的词频向量和资源内容的词频向量供数据挖掘模块使用。\n[0097] 数据挖掘模块采用隐式狄利克雷分配(LDA)模型对向量化的数据进行学习,得到分布概率,用于推荐模块对两个资源关联程度的计算。\n[0098] 在任务模型中,定义待挖掘的任务对应LDA模型中的主题,每个时间片的向量描述对应LDA模型中的一篇文章,每个资源对应LDA模型中的单词(如图6)。通过Gibbs采样的方法进行参数估计来实现LDA模型的学习,可以求得给定时间片的任务分布概率和给定任务的资源分布概率,同时,也能够获得任务关于某个资源的发生的分布概率。\n[0099] 在主题模型中,每个资源内容的向量描述即对应LDA模型中的一篇文章,每个资源内容通过分词所得的每个词语即对应LDA模型中的单词。按照与任务模型相似的方法,通过Gibbs采样进行参数估计从而实现LDA模型的学习,可以得到给定资源的主题分布概率和给定主题的单词分布概率。\n[0100] 推荐模块(如图7)负责实时刷新推荐界面,为当前资源推荐相关的资源,而推荐的依据是资源之间的关联程度。任务模型和主题模型分别从操作和内容两个不同的角度对资源之间的关联程度进行了衡量,因此推荐策略采用对两种模型得到的关联程度进行加权得到一个总的关联程度,然后根据总的关联程度进行排序和推荐。\n[0101] 在任务模型中,资源对应于LDA模型中的单词,资源之间的关联程度也就是LDA模型中单词之间的关联程度。可以通过给定单词的条件主题分布的相似程度来衡量两个单词的关联程度。设有单词w1和w2,它们的条件主题分布分别为P(Z|w1)和P(Z|w2),可以通过计算P(Z|w1)和P(Z|w2)的KL距离具体来衡量它们之间的差别,从而衡量单词w1和w2的关联程度,也就是它们对应的资源的关联程度。\n[0102] 在主题模型中,资源对应于LDA模型中的文章,衡量资源之间的关联程度也就是计算两个文章之间的相似性。设有文章d1和d2,在主题模型中得到了他们的主题概率分布P(Z|d1)和P(Z|d2),同样可以计算它们的KL距离来衡量他们之间的差别,从而衡量文章d1和d2对应的资源之间的关联程度。\n[0103] KL距离的计算方法如发明内容部分所述。当用户正在使用某个资源时,对于用户操作历史中的其他资源,分别按照上述方法在任务模型和主题模型中计算一个衡量与当前资源的概率分布差异性的KL距离,设任务模型中得到的距离是KL1,主题模型中得到的距离是KL2,最终通过加权的方式计算一个综合这两种模型的总的距离L=α*KL1+β*KL2,α和β是设定的参数。\n[0104] 总距离L越小,表示一个资源与当前资源之间的关联程度越高。最终,推荐系统界面进行实时刷新,并按照资源关联程度由高到低的顺序(即总距离L由小到大)在界面中显示资源推荐列表。图8示出了推荐系统界面的实例,用户可以直接双击界面中的资源来打开它。