基于马尔可夫逻辑网络的在线活动识别方法及系统的利记博彩app
【专利摘要】本发明公开了一种基于马尔可夫逻辑网络的在线活动识别方法及系统,方法包括:对所有操作行为进行采集并储存于数据库中,得到行为数据;根据行为数据,对其进行处理并识别出对应的活动结果,得到活动数据;将识别得到的活动数据进行处理并以可视化的方式进行呈现。系统包括:数据采集单元、识别处理单元和数据呈现单元。本发明通过建立活动识别模型能从动作日志中自动识别用户活动,并且有良好扩展性,允许使用者添加逻辑规则,而且采用规则挖掘算法从训练样本集中挖掘出强关联规则作为逻辑规则,有效解决了解决动作与在线活动的对应关系的不确定性,大大提高识别的准确性。本发明可广泛应用于计算机领域中。
【专利说明】
基于马尔可夫逻辑网络的在线活动识别方法及系统
技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种基于马尔可夫逻辑网络的在线活动识 别方法及系统。
【背景技术】
[0002] 随着移动互联网的高速发展,智能手机、智能手表等智能设备越来越普及,人类的 活动越来越多的在线上发生。用户与在线系统的交互操作记录的形势被记录下来。如何从 用户在线系统记录的动作数据中识别出背后的活动,对提高网站的点击率、提供个性化服 务等有非常大的帮助,特别是智能家居、医疗监护、电子商务等研究领域。
[0003] 活动识别的目的是对计算机记录的用户动作记录进行分析,从而识别出用户当前 正在进行的活动。动作记录反映的是用户的一个操作片段,例如网站记录的一条用户打开 某个URL的日志,而用户背后正在进行的活动是比较不同产品价格,或者是评估产品性能。
[0004] 而在线活动具有高度的复杂性和多样性,具体来说有下面的几个挑战:
[0005] 1、动作与在线活动的对应关系的不确定性,一个在线活动能产生多个被记录下来 的动作,而不同的活动可能触发同样的动作。
[0006] 2、活动的并发性:人们能够同时在做几个活动,实际的在线活动一般不会按时间 先后顺序依次发生(没有时序性),而是互相交错进行。比如用户可能一边浏览新闻,一边进 行购物。
[0007] 3、数据中的噪音:在线系统搜集到的动作日志是带有很多噪音的,这些噪音由各 方面导致的,例如用户一些无意义的,与当前活动不相关的操作。
[0008] 但是现有的方法不能很好的解决以上的几个问题。基于逻辑的方法依赖确定的逻 辑规则进行推理,不能很好的解决动作与在线活动的对应关系的不确定性,另外也不能很 好的解决数据总的噪音问题。而基于概率推理的方法需要大量的训练样本,实践中往往难 以获取,而且无法利用活动识别的领域背景知识。
【发明内容】
[0009] 为了解决上述技术问题,本发明的目的是提供一种能有效处理噪音,提高识别准 确性的基于马尔可夫逻辑网络的在线活动识别方法及系统。
[0010] 本发明所采取的技术方案是:
[0011] 基于马尔可夫逻辑网络的在线活动识别方法,包括以下步骤:
[0012] A、对所有操作行为进行采集并储存于数据库中,得到行为数据;
[0013] B、根据行为数据,对其进行处理并识别出对应的活动结果,得到活动数据;
[0014] C、将识别得到的活动数据进行处理并以可视化的方式进行呈现。
[0015] 作为所述的基于马尔可夫逻辑网络的在线活动识别方法的进一步改进,所述步骤 A包括:
[0016] A1、对所有操作行为发出的HTTP请求进行截取;
[0017] A2、从HTTP请求中获取请求信息,并将其储存于数据库中,得到行为数据。
[0018] 作为所述的基于马尔可夫逻辑网络的在线活动识别方法的进一步改进,所述步骤 B包括:
[0019] B1、将行为数据导出并进行预处理,得到行为数据集;
[0020] B2、根据行为数据集,进行活动识别建模,得到活动识别模型;
[0021 ] B3、通过活动识别模型对行为数据集进行推理识别,得到活动数据。
[0022]作为所述的基于马尔可夫逻辑网络的在线活动识别方法的进一步改进,所述步骤 B2包括:
[0023] B21、根据行为数据集,通过规则发掘算法得出一阶逻辑规则;
[0024] B22、对行为数据以及其对应的活动进行数据标注;
[0025] B23、根据标注的数据作为训练数据,进行一阶逻辑规则的权重学习,得到每条规 则的权重。
[0026]本发明所采用的另一技术方案是:
[0027] 基于马尔可夫逻辑网络的在线活动识别系统,包括:
[0028] 数据采集单元,用于对所有操作行为进行采集并储存于数据库中,得到行为数据; [0029]识别处理单元,用于根据行为数据,对其进行处理并识别出对应的活动结果,得到 活动数据;
[0030] 数据呈现单元,用于将识别得到的活动数据进行处理并以可视化的方式进行呈 现。
[0031] 作为所述的基于马尔可夫逻辑网络的在线活动识别系统的进一步改进,所述数据 采集单元包括:
[0032] 请求截取单元,用于对所有操作行为发出的HTTP请求进行截取;
[0033]信息获取单元,用于从HTTP请求中获取请求信息,并将其储存于数据库中,得到行 为数据。
[0034]作为所述的基于马尔可夫逻辑网络的在线活动识别系统的进一步改进,所述识别 处理单元包括:
[0035]预处理单元,用于将行为数据导出并进行预处理,得到行为数据集;
[0036]建模单元,用于根据行为数据集,进行活动识别建模,得到活动识别模型;
[0037]活动识别单元,用于通过活动识别模型对行为数据集进行推理识别,得到活动数 据。
[0038] 作为所述的基于马尔可夫逻辑网络的在线活动识别系统的进一步改进,所述建模 单元包括:
[0039] 规则发掘单元,用于根据行为数据集,通过规则发掘算法得出一阶逻辑规则;
[0040] 数据标注单元,用于对行为数据以及其对应的活动进行数据标注;
[0041] 权重学习单元,用于根据标注的数据作为训练数据,进行一阶逻辑规则的权重学 习,得到每条规则的权重。
[0042]本发明的有益效果是:
[0043]本发明基于马尔可夫逻辑网络的在线活动识别方法及系统通过建立活动识别模 型能从动作日志中自动识别用户活动,并且有良好扩展性,允许使用者添加逻辑规则,而且 采用规则挖掘算法从训练样本集中挖掘出强关联规则作为逻辑规则,有效解决了解决动作 与在线活动的对应关系的不确定性,大大提尚识别的准确性。
【附图说明】
[0044] 下面结合附图对本发明的【具体实施方式】作进一步说明:
[0045] 图1是本发明基于马尔可夫逻辑网络的在线活动识别方法的步骤流程图;
[0046] 图2是本发明基于马尔可夫逻辑网络的在线活动识别方法步骤A的步骤流程图;
[0047] 图3是本发明基于马尔可夫逻辑网络的在线活动识别方法步骤B的步骤流程图;
[0048] 图4是本发明基于马尔可夫逻辑网络的在线活动识别方法步骤B2的步骤流程图;
[0049] 图5是本发明基于马尔可夫逻辑网络的在线活动识别系统的系统方框图。
【具体实施方式】
[0050] 参考图1,本发明基于马尔可夫逻辑网络的在线活动识别方法,包括以下步骤:
[0051] A、对所有操作行为进行采集并储存于数据库中,得到行为数据;
[0052] B、根据行为数据,对其进行处理并识别出对应的活动结果,得到活动数据;
[0053] C、将识别得到的活动数据进行处理并以可视化的方式进行呈现。
[0054]参考图2,进一步作为优选的实施方式,所述步骤A包括:
[0055] A1、对所有操作行为发出的HTTP请求进行截取;
[0056] A2、从HTTP请求中获取请求信息,并将其储存于数据库中,得到行为数据。
[0057]其中,请求信息包括请求的类型,访问的时间,请求的资源等具体信息。
[0058]本发明实施例中,系统的用户是通过Web的形式访问系统的,因此我们通过记录系 统后台收到的每个HTTP请求来实现数据采集的目的。
[0059]当系统后端收到Nginx转发的HTTP请求时,Django先将该请求转成HttpRequest的 对象,然后传递给Request中间件处理。如果该中间件返回了HTTP Response,那么就交到 Response中间件处理;否则传给view中间件,同理,如果view中间件没有返回HTTP Response,那么Django就会根据系统后端URL的匹配结构,来调用对应的view函数,之后返 回HTTP Response给Response中间件。如果在过程中抛出异常,就转到Exception中间件处 理。最后Response中间件处理完HTTP Response对象后,返回HTTP响应给客户端。
[0060] 其中,系统主要逻辑在自定义函数中,根据功能的不同,编写对应的view函数和设 置对应的URL模式。系统中的这种MVC设计模式,就能很方便应用程序根据用户访问的不同 URL,转跳到不同的View函数处理来实现不同的功能。
[0061] 通过在系统服务器后端添加钩子函数(hook)的方法来实现对每个HTTP请求的检 测和记录。即先定义一个钩子函数,该函数主要作用是记录每个接收到HTTP请求,获取其中 的类型,然后存储到MySQL数据库中。我们需要在系统服务器把HttpResponse传给Response 中间件前,执行该hook函数。
[0062] 因此,定义一个hook函数on_request,函数声明如下:
[0063] def on_request(request,access_type,action,param=None):
[0064] on_request函数接收4个参数,其中request是对应的HttpRequest对象,access_ type表示该请求处理状态,成功或者失败;action是这次HTTP请求的具体动作类型,param 是action的参数。
[0065] 当收到从view中间件传来的httpRequest对象时,D jango框架中的URLDispatcher 根据访问的URL不同,把httpRequest对象转发到对应的view函数处理,view函数处理完后, 在返回httpResponse对象前,执行on_request函数记录本次的操作记录。
[0066] Django的URLConf接收到view中间件传来的HttpRequest对象,根据该对象中的 url属性,调用对应UploadSubmission函数,UploadSubmission函数先检查作业提交的时间 是否属于题目规定的时间内,如果是,仓ll建一个UploadSubmission任务,并把任务放到后端 的任务队列中异步处理,任务队列处理完(评完分数)会将分数保存到数据库中;然后执行 hook函数on_request存储这次用户提交答案的动作到数据库中;最后返回HttpResponse给 Response中间件。然后Response中间件模块执行已经设置好的Response中间件,最后返回 Http回应给客户端。
[0067] 参考图3,进一步作为优选的实施方式,所述步骤B包括:
[0068] B1、将行为数据导出并进行预处理,得到行为数据集;
[0069] B2、根据行为数据集,进行活动识别建模,得到活动识别模型;
[0070] B3、通过活动识别模型对行为数据集进行推理识别,得到活动数据。
[0071] 其中,导出数据。有两种方法,第一种从MySQL数据库中直接导出AccessRecord表, 第二种方法通过Django的0RM模型导出。
[0072]数据预处理,包括数据格式转换和去除重复项等处理。
[0073]推理识别的方法可采用极大化推理(MAP)和概率推理等。
[0074]参考图4,进一步作为优选的实施方式,所述步骤B2包括:
[0075] B21、根据行为数据集,通过规则发掘算法得出一阶逻辑规则;
[0076] B22、对行为数据以及其对应的活动进行数据标注;
[0077] B23、根据标注的数据作为训练数据,进行一阶逻辑规则的权重学习,得到每条规 则的权重。
[0078]本发明实施例中的一阶逻辑规则如下: VTimestep t, Identifier id :
[o079] m CurrentAction('?Click submit question button'!, id,t) 二〉CurrentActivity("Ask a question",id,f)
[0080] VTimestep t, Identifier id: ⑶ CurrcntAction("Click submit question answer buttcm' id4) =>CuiTcntActivity("Answer a question ", id, 〇 VTimestep t, Identifier id : ^. CurrentAction(" Open FAQ Page", id?t) V 3 ) ; =>CurrentActivity('!View a question", id,/) VTirncstcp t, ,t,, Identifier id: (4) CurrcntAetivityC'Correct assignment answer", id,t,)A(t2>tl) " ^>!CurrcntActivity("Writc assignment answer", id, t2)
[0081] 上述的第1,2,3条规则,是在数据集中挖掘出的规则,都是关于互动问答环节的。 规则1说明如果用户在t时刻点击了提交FAQ问题按钮的动作,就代表用户在t时刻的活动是 提问问题。规则2表示用户在t时刻点击了提交FAQ回答按钮动作,说明该用户正在回答问 题。规贝lj3表示用户在t时刻点击了 FAQ页面的动作,说明该用户浏览问题。
[0082] 规则4描述的是编写作业答案和改正答案两个活动之间的先后顺序。考虑用户做 编程题目的场景,编写完程序(活动"Write assignment answer")提交后,如果没有通过, 用户根据系统批改反馈的信息,对程序进行修改(活动"Correct assignment answer")后 再次提交,直到完全正确为止。用一阶逻辑描述是"Write assignment answer"要发生在 "Correct assignment"活动之前,规则4就是对应的一阶逻辑表达式。
[0083]本发明实施例中,规则发掘算法采用的Apriori挖掘关联规则的思路,从训练数据 集中找出所有满足给定的最小置信度阀值(threshold)的关联规则。对于查找出的关联规 则八〇1:;[011 = >八(31:;[¥;^7,对应]\11^的一阶逻辑规则为〇111'代1^八(:1:;[011(&(31:;[011,1(1,1:;[1116)=> CurrentActivity(activity,id, time)。整个算法的过程如下:
[0084] 1.用户给定训练集合,Action类型集合,Activity类型集合以及设置最小置信度 阀值。
[0085] 2 ?计算所有Act ion,Activity,以及(Act ion, Activity)的支持度。
[0086] 3.求出数据集中所有的Action = >Activity和Activity = >Action的组合并且求 出其对应的置信度。
[0087] 4.最后挑选出大于给定的最小置信度阀值的关联规则,以及其可信度。
[0088]其中,Action表示行为数据,Activity表示活动数据
[0089]本发明具体实施例如下,用户在系统上面进行各种操作,比如点击了某个页面按 钮,转跳到某个页面,提交作业,提问了一个问题等。系统服务器后端收到来自客户端发来 的HTTP请求,经过后端一系列的处理后,在返回响应内容给客户端前,系统对该请求截取并 且记录该请求的类型。系统从该HTTP请求中获取请求的类型,访问的时间,请求的资源等具 体信息,并存储到数据库中。系统按照正常流程继续执行返回内容给客户端,用户继续正常 使用系统。
[0090]从数据存储系统的数据库中查询并导出相关行为数据。把得到的行为数据进行处 理后,作为推理数据输入活动识别系统中进行学习活动识别。识别系统内部使用活动识别 方法,对输入的数据推理,识别出对应用户学习活动的结果,最后以统一格式输出。对识别 出来的活动数据做进一步处理,存储到存储系统中,方便后面的活动可视化展示和其它的 应用。
[0091 ]使用活动识别方法,对活动建模,定义活动识别模型。主要工作有定义在系统上的 活动,编写一阶逻辑规则和相关的背景规则。针对定义好的学习活动,标注原始数据。从收 集到的行为数据集中取出典型的部分行为数据来人工标注,标识出每条记录对应的背后的 学习活动。训练学习活动的活动识别模型。使用得到的标注数据作为训练数据,输入识别系 统中进行活动识别模型的规则权重学习。最后得到每条规则的权重。
[0092] 最后,用户通过浏览器访问系统的活动可视化Web页面。用户在该Web页面点击想 要查看的链接。浏览器转跳到对应的活动识别展示页面。用户在该页面能够查看活动,能够 自由地放大/缩小,伸缩,移动时间轴。
[0093]参考图5,基于马尔可夫逻辑网络的在线活动识别系统,包括:
[0094]数据采集单元,用于对所有操作行为进行采集并储存于数据库中,得到行为数据; [0095]识别处理单元,用于根据行为数据,对其进行处理并识别出对应的活动结果,得到 活动数据;
[0096] 数据呈现单元,用于将识别得到的活动数据进行处理并以可视化的方式进行呈 现。
[0097] 进一步作为优选的实施方式,所述数据采集单元包括:
[0098]请求截取单元,用于对所有操作行为发出的HTTP请求进行截取;
[0099]信息获取单元,用于从HTTP请求中获取请求信息,并将其储存于数据库中,得到行 为数据。
[0100] 进一步作为优选的实施方式,所述识别处理单元包括:
[0101] 预处理单元,用于将行为数据导出并进行预处理,得到行为数据集;
[0102] 建模单元,用于根据行为数据集,进行活动识别建模,得到活动识别模型;
[0103] 活动识别单元,用于通过活动识别模型对行为数据集进行推理识别,得到活动数 据。
[0104] 进一步作为优选的实施方式,所述建模单元包括:
[0105] 规则发掘单元,用于根据行为数据集,通过规则发掘算法得出一阶逻辑规则;
[0106] 数据标注单元,用于对行为数据以及其对应的活动进行数据标注;
[0107] 权重学习单元,用于根据标注的数据作为训练数据,进行一阶逻辑规则的权重学 习,得到每条规则的权重。
[0108] 从上述内容可知,本发明基于马尔可夫逻辑网络的在线活动识别方法及系统通过 建立活动识别模型能从动作日志中自动识别用户活动,并且有良好扩展性,允许使用者添 加逻辑规则,而且采用规则挖掘算法从训练样本集中挖掘出强关联规则作为逻辑规则,有 效解决了解决动作与在线活动的对应关系的不确定性,大大提高识别的准确性。
[0109]以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施 例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替 换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
【主权项】
1. 基于马尔可夫逻辑网络的在线活动识别方法,其特征在于,包括以下步骤: A、 对所有操作行为进行采集并储存于数据库中,得到行为数据; B、 根据行为数据,对其进行处理并识别出对应的活动结果,得到活动数据; C、 将识别得到的活动数据进行处理并以可视化的方式进行呈现。2. 根据权利要求1所述的基于马尔可夫逻辑网络的在线活动识别方法,其特征在于:所 述步骤A包括: Al、对所有操作行为发出的HTTP请求进行截取; A2、从HTTP请求中获取请求信息,并将其储存于数据库中,得到行为数据。3. 根据权利要求1所述的基于马尔可夫逻辑网络的在线活动识别方法,其特征在于:所 述步骤B包括: Bl、将行为数据导出并进行预处理,得到行为数据集; B2、根据行为数据集,进行活动识别建模,得到活动识别模型; B3、通过活动识别模型对行为数据集进行推理识别,得到活动数据。4. 根据权利要求3所述的基于马尔可夫逻辑网络的在线活动识别方法,其特征在于:所 述步骤B2包括: B21、根据行为数据集,通过规则发掘算法得出一阶逻辑规则; B22、对行为数据以及其对应的活动进行数据标注; B23、根据标注的数据作为训练数据,进行一阶逻辑规则的权重学习,得到每条规则的 权重。5. 基于马尔可夫逻辑网络的在线活动识别系统,其特征在于,包括: 数据采集单元,用于对所有操作行为进行采集并储存于数据库中,得到行为数据; 识别处理单元,用于根据行为数据,对其进行处理并识别出对应的活动结果,得到活动 数据; 数据呈现单元,用于将识别得到的活动数据进行处理并以可视化的方式进行呈现。6. 根据权利要求5所述的基于马尔可夫逻辑网络的在线活动识别系统,其特征在于:所 述数据采集单元包括: 请求截取单元,用于对所有操作行为发出的HTTP请求进行截取; 信息获取单元,用于从HTTP请求中获取请求信息,并将其储存于数据库中,得到行为数 据。7. 根据权利要求5所述的基于马尔可夫逻辑网络的在线活动识别系统,其特征在于:所 述识别处理单元包括: 预处理单元,用于将行为数据导出并进行预处理,得到行为数据集; 建模单元,用于根据行为数据集,进行活动识别建模,得到活动识别模型; 活动识别单元,用于通过活动识别模型对行为数据集进行推理识别,得到活动数据。8. 根据权利要求7所述的基于马尔可夫逻辑网络的在线活动识别系统,其特征在于:所 述建模单元包括: 规则发掘单元,用于根据行为数据集,通过规则发掘算法得出一阶逻辑规则; 数据标注单元,用于对行为数据以及其对应的活动进行数据标注; 权重学习单元,用于根据标注的数据作为训练数据,进行一阶逻辑规则的权重学习,得 到每条规则的权重。
【文档编号】G06K9/62GK105894017SQ201610188359
【公开日】2016年8月24日
【申请日】2016年3月28日
【发明人】王欣明, 聂瑞华, 赵淦森, 纪求华
【申请人】中山大学