CN103368921B - 用于智能设备的分布式用户建模系统和方法 - Google Patents
用于智能设备的分布式用户建模系统和方法 Download PDFInfo
- Publication number
- CN103368921B CN103368921B CN201210100864.1A CN201210100864A CN103368921B CN 103368921 B CN103368921 B CN 103368921B CN 201210100864 A CN201210100864 A CN 201210100864A CN 103368921 B CN103368921 B CN 103368921B
- Authority
- CN
- China
- Prior art keywords
- user
- rule
- client
- smart machine
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供一种用于智能设备的分布式用户建模系统和方法。所述系统包括:控制器,读取配置文件;日志导入/解析模块,根据控制器读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模所需的信息;偏好统计模块,统计用户的偏好;模式挖掘模块,挖掘用户使用智能设备的频繁模式;规则生成模块,根据模式挖掘模块挖掘的频繁模式生成关联规则,其中,偏好统计模块统计的用户偏好以及规则生成模块生成的关联规则构成用户模型;应用程序接口API服务器,接收应用服务器或智能设备的客户端程序的请求,并提供相应的用户模型。
Description
技术领域
本发明涉及用户个性化服务,更具体地讲,涉及智能设备的用户建模和数据挖掘中的关联规则挖掘技术的应用。
背景技术
用户个性化系统或服务的关键是获取用户的信息。如果不能获得用户的个性化信息,个性化系统或服务就不能有效调整自身以适应用户的特点和偏好。用户建模(UserModeling或User Profiling)就是为特定领域的用户建立其偏好和行为模式的模型。
目前,有多种应用于用户建模的技术,比如基于统计的方法(DemographicStatistics Methods)、聚类方法(Clustering Methods)、重叠法(Overlay Methods)、原型法(Stereotype Methods)等,但更多的还是机器学习(Machine Learning)的方法,比如贝叶斯方法(Bayesian Methods)、遗传算法(Genetic Algorithm)、神经网络算法(NeuralNetwork Algorithm)等。
下面对上述提到的方法进行简要介绍。
1、基于统计的方法:基于统计的方法就是计算用户的单个实事或偏好出现的次数或者先验概率。对象出现次数越多或者概率值越大,表明用户对该对象越喜欢。
2、聚类方法:聚类是将数据集划分成若干个类别,使得每个类别中的对象尽可能相似,而不同类别中的对象尽量不相似。基于群体用户的建模通常采用聚类的方法。
3、重叠法:该方法是Carr和GoldStein在1977年提出来的。当时该方法用于构建的用户模型是专家模型的一个子集。专家模型被划分成多个更小的主题独立的部分,将这些更小的主题独立的部分连接起来就构成了用户模型。该方法广泛用于教育领域的用户建模。
4、原型法:原型是用户频繁出现属性的一个集合。创建原型是用户建模的一个非常通用的方法。首先为新用户初始化用户模型属性,然后根据初始化的用户模型属性给用户分配一个预定义的原型。少量的初始化信息用于推导用户的大量默认假设。当获取了用户假设的更多信息(例如,用户的偏好数据)之后,默认假设就会被改变成用户更个性化的设置。
5、贝叶斯方法:贝叶斯方法利用贝叶斯公式进行项概率的计算。贝叶斯方法又可分为贝叶斯分类和贝叶斯网络两种用户建模方法。贝叶斯分类首先计算项的先验概率,然后根据贝叶斯公式计算该项属于各个类别的后验概率,选择后验概率最大的类作为该项所属的类。但是贝叶斯分类法有个假设,即,各个类别之间是相互独立的。该假设简化了问题,但是很难满足该假设,因为现实世界中问题变量之间相互依赖的情况更常见。贝叶斯网络采用具有概率分布的有向弧描述随机变量之间相互依赖的图形模式。贝叶斯网络中节点表示事件或者变量,而变量或事件之间的关系用标注概率的有向弧表示。贝叶斯网络用于计划识别、用户需求的推导、情感状态的评估等。
6、遗传算法:该算法通过模拟自然进化的过程,采用选择、交叉和变异操作使得种群向更优良、更适应环境的方向进化,以达到最优解。如果用户的兴趣有变化,通过遗传算法的进化能够发现用户新的需求。而且,由于遗传算法有一定的随机性,因此有助于发现用户隐含的兴趣需求。
7、神经网络算法:神经网络算法中比较典型是BP神经网络。BP神经网络由多层神经元组成,学习样本从输入层输入,经过各个隐含层的处理,通过输出层输出结果。如果输出结果与期望不符,则将误差作为调整信号,逐层反向回传,并对权值进行修改。反复进行直到误差减小到可接受范围为止。
除了上述比较典型的方法外,还有基于本体的方法(Ontology-based Methods)、模糊网络方法(Fuzzy Network Methods)、概念聚类(Conceptual Clustering)等方法,由于这些方法不是很典型,这里不再详细描述。
虽然存在上述诸多用户建模方法,但是对于智能电视、智能手机等智能设备的用户的建模来说,这些用户建模方法存在如下的问题或不足:
1、对于基于统计的方法,只是分别考虑了用户单个偏好或实事的统计,忽略了用户偏好和实事之间的相关关系。例如,如果用户对李连杰的电影很感兴趣,那么该用户很可能对动作片都比较感兴趣。
2、对于聚类方法,只适合于对于群体用户建模,不适合于对单个用户个性化建模。
3、对于重叠法,需要依赖于领域知识。通常智能设备的用户个体的差别很大,而且也无从知道各个用户个体的领域知识。
4、对于原型法,需要预定义用户模型的原型,并对各个特征或属性设定默认值。该方法要求预先能够知道用户模型的所有特征及各个特征值的值域。
5、对于机器学习的方法,需要准备足够的训练样本进行较长时间的学习。该方法适合于建立长期的用户模型。而对于智能电视、智能手机等智能设备的用户,其兴趣爱好等受电视节目、电影广告、网络资讯等影响变化很快,可能学习的模型还没训练好,用户的兴趣和偏好就发生了变化。
6、对于遗传算法,由于需要将问题的求解编码成字符串,因此适合于对结构化对象进行处理。而对智能设备的用户建模,输入数据是基本无结构的日志,不能容易地反映用户的偏好及偏好的程度。
7、对于神经网络算法,其收敛速度慢,需要较长的训练时间,而且容易陷入局部最优;由于用户的偏好变化相对频繁,容易出现模型没训练好,用户的偏好已经发生变化的情况。
总的来说,有如下几个方面的问题需要改进:
1、分布式用户建模:由于智能电视、智能手机等智能设备的用户数量非常大,因此通过集中式、串行处理模式很难处理如此大规模的用户日志并满足用户和各种服务对响应时间的要求。
2、短期用户模型:建模算法需要能够适应用户模型经常变化的要求,最好不需要对模型进行单独的学习。
3、反映对象之间的关系:纯统计的方法能够分别统计用户实事或偏好,但是却不能反映实事或项之间的相关关系。智能设备的用户模型之间许多项或偏好之间有相关关系,而这种相关关系对于推荐等个性化系统与服务是非常重要的信息。
发明内容
根据本发明的一方面,提供一种用于智能设备的分布式用户建模系统,所述系统包括:控制器,读取配置文件;日志导入/解析模块,根据控制器读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模所需的信息;偏好统计模块,统计用户的偏好;模式挖掘模块,挖掘用户使用智能设备的频繁模式;规则生成模块,根据模式挖掘模块挖掘的频繁模式生成关联规则,其中,偏好统计模块统计的用户偏好以及规则生成模块生成的关联规则构成用户模型;应用程序接口API服务器,接收应用服务器或智能设备的客户端程序的请求,并提供相应的用户模型。
控制器可控制日志导入/解析模块、模式挖掘模块、偏好统计模块和规则生成模块的执行时机和调度顺序。
用户建模所需的信息可包括下列中的至少一种:用户标识、事件、应用程序、类型、关键字。
用户的偏好可包括下列中的至少一种:用户对智能设备的应用程序类型的偏好;用户对智能设备的应用程序关键字的偏好;用户对智能设备的应用程序的付费类型的偏好。
模式挖掘模块可统计指定时间区间内用户针对智能设备的会话。
模式挖掘模块根据配置文件设定的策略确定用户针对智能设备的会话,统计每个会话包含的应用程序,并调用频繁模式挖掘算法生成用户使用应用程序的频繁模式。
规则生成模块可通过以下操作生成关联规则:将模式挖掘模块挖掘的频繁模式分为非空的第一部分和第二部分作为关联规则,第一部分为规则头,第二部分为规则体,第二部分仅包含一个项;计算关联规则的置信度,比较关联规则的置信度是否大于或等于最小置信度;如果关联规则的置信度大于或等于最小置信度,则将所述关联规则插入规则集中;如果关联规则的置信度小于最小置信度,则剪掉所有包含所述规则体的关联规则的生成和置信度计算;继续将所述频繁模式划分为规则体包含两个项的关联规则,并计算关联规则的置信度,以选择置信度大于或等于最小置信度的关联规则并插入规则集中,直到规则头为空为止。
在应用服务器或智能设备的客户端程序请求与API服务器建立连接前,应用服务器或智能设备的客户端程序可申请API服务器进行鉴权,
其中,API服务器了通过以下操作进行鉴权:应用服务器或客户端程序向API服务器发送访问密钥和自身的IP地址;API服务器通过访问密钥检查该应用服务器或客户端程序是否是合法用户;如果是合法用户,则API服务器生成随机的种子密钥、会话ID及该会话的有效期,并将生成的种子密钥、会话ID及该会话的有效期发送到应用服务器或客户端程序;应用服务器或客户端程序将接收到的种子密钥与秘密密钥结合,生成加密字符串;应用服务器或客户端程序将接收到的会话ID与生成的加密字符串一起构成对会话进行标识的标识符。
应用服务器或智能设备的客户端程序可通过预定义的API请求用户模型,其中,应用服务器或智能设备的客户端程序可通过以下操作请求用户模型:应用服务器或客户端程序通过预定义的API请求特定的用户模型时,附带上对会话进行标识的标识符;API服务器通过解析所述标识符得到会话ID和加密字符串;API服务器通过会话ID查找到发送给应用服务器或客户端程序的种子密钥,将种子密钥和存储在API服务器上的秘密密钥结合,生成另一加密字符串;API服务器比较生成的所述另一加密字符串和从应用服务器或客户端程序接收到的加密字符串,如果两者匹配,则表示请求合法;如果请求合法,则API服务器根据接收到的请求将特定的用户模型提供给应用服务器或客户端程序。
根据本发明的另一方面,提供一种用于智能设备的分布式用户建模方法,所述方法包括:读取配置文件;根据读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模所需的信息;统计用户的偏好;挖掘用户使用智能设备的频繁模式;根据挖掘的频繁模式生成关联规则,其中,统计的用户偏好以及生成的关联规则构成用户模型;由应用程序接口API服务器接收应用服务器或智能设备的客户端程序的请求,并提供相应的用户模型。
挖掘用户使用智能设备的频繁模式的步骤可包括:根据配置文件设定的策略确定用户针对智能设备的会话;统计每个会话包含的应用程序;调用频繁模式挖掘算法生成用户使用应用程序的频繁模式。
生成关联规则的步骤可包括:将模式挖掘模块挖掘的频繁模式分为非空的第一部分和第二部分作为关联规则,第一部分为规则头,第二部分为规则体,第二部分仅包含一个项;计算关联规则的置信度,比较关联规则的置信度是否大于或等于最小置信度;如果关联规则的置信度大于或等于最小置信度,则将所述关联规则插入规则集中;如果关联规则的置信度小于最小置信度,则剪掉所有包含所述规则体的关联规则的生成和置信度计算;继续将所述频繁模式划分为规则体包含两个项的关联规则,并计算关联规则的置信度,以选择置信度大于或等于最小置信度的关联规则并插入规则集中,直到规则头为空为止。
在应用服务器或智能设备的客户端程序请求与API服务器建立连接前,应用服务器或智能设备的客户端程序可申请API服务器进行鉴权,其中,可通过以下步骤进行鉴权:应用服务器或客户端程序向API服务器发送访问密钥和自身的IP地址;API服务器通过访问密钥检查该应用服务器或客户端程序是否是合法用户;如果是合法用户,则API服务器生成随机的种子密钥、会话ID及该会话的有效期,并将生成的种子密钥、会话ID及该会话的有效期发送到应用服务器或客户端程序;应用服务器或客户端程序将接收到的种子密钥与秘密密钥结合,生成加密字符串;应用服务器或客户端程序将接收到的会话ID与生成的加密字符串一起构成对会话进行标识的标识符。
应用服务器或智能设备的客户端程序可通过预定义的API请求用户模型,其中,可通过以下步骤请求用户模型:应用服务器或客户端程序通过预定义的API请求特定的用户模型时,附带上对会话进行标识的标识符;API服务器通过解析所述标识符得到会话ID和加密字符串;API服务器通过会话ID查找到发送给应用服务器或客户端程序的种子密钥,将种子密钥和存储在API服务器上的秘密密钥结合,生成另一加密字符串;API服务器比较生成的所述另一加密字符串和从应用服务器或客户端程序接收到的加密字符串,如果两者匹配,则表示请求合法;如果请求合法,则API服务器根据接收到的请求将特定的用户模型提供给应用服务器或客户端程序。
附图说明
通过结合附图,从下面的实施例的描述中,本发明这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:
图1是根据本发明的用于智能设备的分布式用户建模系统的框图;
图2示出了MapReduce编程中的Map函数和Reduce函数的示意图;
图3示出了置信度剪枝的示意图。
图4是根据本发明的用于智能设备的分布式用户建模方法的流程图。
具体实施方式
以下,参照附图来详细描述本发明的实施例。
图1是根据本发明的用于智能设备的分布式用户建模系统的框图。
参照图1,用于智能设备的分布式用户建模系统包括控制器11、日志导入/解析模块12、偏好统计模块13、模式挖掘模块14、规则生成模块15和应用程序接口(API)服务器16。
控制器11读取配置文件。所述配置文件可定义日志导入策略、文件存储路径等配置信息。此外,控制器11控制日志导入/解析模块12、模式挖掘模块13、偏好统计模块14和规则生成模块15的执行时机和调度顺序。
日志导入/解析模块12根据控制器11读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模需要的信息,诸如用户标识(UserID)、事件(Event)、应用程序(Application)、类型(Category)、关键字(Keyword)等,将抽取的用户建模所需的信息存储到分布式文件系统中。分布式文件系统可以是亚马逊web服务(Amazon web service,AWS)上的S3或Hadoop的分布式文件系统(HadoopDistributed File System,HDFS),其中,S3是亚马逊web服务的一种核心产品。优选地,日志导入/解析模块12可基于MapReduce解析并抽取建模需要的信息。
偏好统计模块13统计用户的偏好。例如,偏好统计模块13可基于MapReduce的编程模式统计用户的偏好。一些统计项可能会依赖于一些元数据。这些元数据会随统计项的不同而不同,因此不包含在偏好统计模块13之内。例如,针对电视节目和电影等的统计就需要依赖相关节目和电影的元数据资源。用户的偏好可包括下列中的至少一种:用户对智能设备的应用程序类型的偏好;用户对智能设备的应用程序关键字的偏好;用户对智能设备的应用程序的付费类型(免费/付费)的偏好。
模式挖掘模块14挖掘用户使用智能设备的频繁模式。例如,用户在使用应用程序A的同时也会使用应用程序B,应用程序A和B总是频繁地同时出现。
规则生成模块15根据模式挖掘模块14挖掘的频繁模式生成关联规则。例如规则“A=>B”表示当项A出现时,蕴涵项B也会随着出现,这里,将A称为规则头,将B称为规则体。
偏好统计模块13统计的用户偏好以及规则生成模块15生成的关联规则构成用户模型。
API服务器16可定义鉴权策略和API,接收智能设备的客户端程序或其它服务的请求,并提供相应的用户模型。用户模型可存储在用户模型数据库(未示出)中,API服务器16可通过搜索用户模型数据库来提供相应的用户模型。
在本发明中,智能设备是指具有操作系统且用户能够自由安装和卸载软件的设备,比如智能手机、智能电视、平板电脑等。
下面以智能电视上的应用程序的使用为例描述分布式用户建模的实施过程,其中,分布式文件系统可以是亚马逊web服务上的S3或Hadoop的HDFS。
控制器11:
控制器11是分布式用户建模系统的主控模块,有三个任务:(1)通过定义在配置文件中的策略确定何时进行用户日志的导入;(2)通过定义在配置文件中的策略确定何时进行用户建模;(3)控制用户建模过程中各个任务的执行顺序(即,控制分布式用户建模系统的各个模块的执行时机和调度顺序)。
日志导入/解析模块12:
(1)将智能设备的日志服务器中新增的日志复制到亚马逊web服务的S3文件系统,其中,日志服务器的IP、端口号、用户名、口令、日志文件路径、以及S3中文件路径都配置在配置文件中。
(2)对新增的日志文件进行解压缩操作,将解压后的日志文件存储到指定目录中。如果原始日志文件未经压缩,则可省略此步骤。
(3)基于MapReduce对日志文件进行解析,抽取用户标识(UserID)、事件(Event)、应用程序(Application)、类型(Category)、关键字(Keyword)等信息,可以以用户标识作为Reduce函数的输出关键字(key),其它信息可拼接形成Reduce函数的输出值(value),并以适当的符号进行间隔。
偏好统计模块13:
(1)以解析的日志文件目录路径作为输入。
(2)在Map函数中抽取用户标识和应用程序类型,并以用户标识作为Map函数的输出关键字(key),以应用程序类型作为Map函数的输出值(value)。
(3)在Reduce函数中统计用户对各个类型的应用程序的使用次数,然后按照使用次数的高低排序,以用户标识作为Reduce函数的输出关键字(key),以诸如“类型1:次数^类型2:次数^...”的串作为Reduce函数的输出值(value)。
为了便于理解,下面简要描述MapReduce编程中的Map函数和Reduce函数。图2示出了MapReduce编程中的Map函数和Reduce函数的示意图。
参照图2,Map函数的形式为:Map(in_key,in_value)→{(out_keyj,out_valuej)|j=1...k};Reduce 函数的形式为:Reduce(in_key,[in_value 1,...,in_valuem])→(out_key,out_final_value)。
Map函数和Reduce函数输入、输出都是关键字-值对,Map函数有输入关键字,输入值,即上面的in_key和in_value,同时Map函数的输出也是关键字-值对形式,即上面的out_key和out_value。一个关键字-值输入对,经过处理可以产生一个或一组out_key和out_value。
Reduce函数的形式与Map函数类似,只是其处理的值为与in_key对应的一组in_value,即上面的[in_value1,...,in_valuem],这组值由多个不同Map函数产生;但是Reduce函数的输出为另一关键字-值对,即out_key和out_final_value。
Map函数输出关键字-值类型与Reduce函数输入的关键字-值一样,即Map函数的输出就是Reduce函数的输入。
在基于MapReduce编程中,输入通常是文件,所以在指定了文件类型后,Map函数的输入关键字就是划分后的文件标号,值通常是一行文本。
模式挖掘模块14:
(1)以用户一次开关智能电视作为一个会话(Session),并指定唯一的ID标识。
(2)以该会话内用户使用的应用程序作为项(Item),则每个ID对应一个项集合。
(3)在合适的统计时间区间内,用户应该会有多个会话,并有相应的项集合。
(4)对于不完整的会话,比如统计时间区间开始时,智能电视已经打开,则会话的开始时间以统计区间开始时间计算;如果统计时间区间结束时,智能电视仍在使用,则会话的结束时间以统计时间区间的结束时间计算。
(5)模式挖掘模块14根据配置文件设定的策略确定用户针对智能电视的会话,并统计每个会话包含的应用程序,(统计结果形如:Session_ID:{app1,app3,...},其中大括号中为在该Session中出现的应用程序集合);然后模式挖掘模块14调用频繁模式挖掘算法生成用户使用应用程序的频繁模式。常用的频繁模式挖掘算法有Apriori算法,PFP-Growth算法等,在本实施例中使用了在Apache Mahout算法库中已实现的PFP-Growth算法来挖掘频繁模式。
模式挖掘模块14的具体处理过程描述如下:
a.首先,统计指定时间区间内用户对于智能电视的会话,并为每个会话分配一个唯一的标识。在Map函数中,以用户标识作为输出关键字(key),对于智能电视开机日志,以实际时间字符串后面跟随“:Start”作为Map函数的输出值(value);对于智能电视关机日志,则直接忽略;对于应用程序使用日志,以app(应用程序)开始使用时间后面跟随“Application_ID”作为Map函数的输出值;在Reduce函数中,以用户标识作为输出关键字(key),对所有输入项按照时间先后顺序排序,将“Start”之间的应用程序看作集合;合并相同的集合,集合的出现次数相加;然后依次将各集合连接成诸如“1::app11,app12,app13:1^2::app21,app22:3^...”的字符串作为Reduce函数的输出值(value),其中“::”之前的数字为会话的ID,而app串之后的数字为该app集合出现的次数。
b.为每个用户调用Mahout中PFPGrowth算法挖掘该用户使用智能电视的频繁模式。
c.基于MapReduce将PFPGrowth算法的输出转换成“UserID,[app1,app2,...],3”的形式。
(6)上面的输出中的“[]”内的内容为挖掘到的模式,后面的数字为该模式出现的次数。
规则生成模块15:
(1)生成关联规则,根据配置文件中设定的最小置信度,在生成的关联规则中选取符合条件的关联规则(即,选取的关联规则的置信度大于最小置信度)。
(2)规则的支持度为挖掘的模式的出现次数与该用户会话总数的比率,即,其中,sup()表示规则的支持度,“xy”表示挖掘的模式,σ(xy)为挖掘的模式的出现次数,x(x≠φ)为模式的前半部分,y(y≠φ)为模式的后半部分,φ表示空集,即,x、y不能为空集;|Sessions |为该用户的会话的数量。为了简单,支持度通常使用绝对数表示,即,挖掘的模式出现的次数σ(xy)。本实施例中使用绝对数。
(3)规则(x=>y)的置信度为: p(y|x)表示条件概率,表示在x出现的情况下y出现的概率。因为规则x=>y是由频繁模式xy生成的,并且xy是频繁的,所以其子集x和y都是频繁的。上述置信度的计算公式就是频繁模式(xy)的支持度与频繁模式x(即,规则头)的支持度的比率,当用绝对值表示支持度时,置信度计算公式就是频繁模式(xy)的出现次数和频繁模式(x)的出现次数的比率。由于模式xy是频繁的(即,出现次数大于一个在配置文件中设定的最小支持度),所以其子集x和y都是频繁的。
规则生成模块15的处理过程描述如下:
a.在Map函数中,以用户标识作为Map函数的输出关键字(key),以诸如“app1,app2,..app:3”的串作为Map函数的输出值(value)。
b.在reduce函数中也以用户标识作为输出关键字(key),对于出现次数大于最小支持度的模式,将其分成非空的两部分,计算置信度,如果置信度大于最小置信度,则通过context输出“app1,app2:app3,...app:conf”,其中第一个冒号“:”之前的串““app1,app2”为规则前件,第一个冒号之后且第二个冒号之前的串“app3,...app”为规则的后件,第二个冒号之后的conf表示该规则的置信度。
c.将生成的所有关联规则存储到用户模型中。
规则生成模块15可基于置信度剪枝的方式生成关联规则,具体步骤如下:
将模式挖掘模块14挖掘的频繁模式Y分为非空的第一部分X和第二部分Y-X作为关联规则(形如X=>Y-X),第一部分X为规则头或规则前件,第二部分Y-X为规则体或规则后件,第二部分Y-X仅包含一个项(例如一个应用程序);
计算关联规则X=>Y-X的置信度,比较关联规则X=>Y-X的置信度是否大于或等于最小置信度;
如果关联规则的置信度大于或等于最小置信度,则将所述关联规则插入规则集中;
如果关联规则的置信度小于最小置信度,则剪掉所有包含规则体Y-X的关联规则的生成和置信度计算;
继续将所述频繁模式划分为规则体包含两个项的关联规则,并计算关联规则的置信度,以选择置信度大于或等于最小置信度的关联规则并插入规则集中,直到规则头为空为止。
如果模式挖掘模块14挖掘了多个频繁模式,则可针对每个频繁模式执行上述步骤,得到每个频繁模式的关联规则。
最后,规则集中的关联规则就是生成的关联规则。
剪枝原理如下:设X=>Y-X是频繁模式的一种切分,X1=>Y-X1是同一频繁模式的另一种切分,并且X1是X的非空子集,根据Apriori性质,count(X 1)>=count(X),那么conf(X 1=>Y-X 1)<=conf(X=>Y-X),所以就有结论:如果X=>Y-X的置信度小于最小置信度要求,那么X1=>Y-X1的置信度肯定小于最小置信度要求,并且规则体包含Y-X的所有规则的置信度都小于最小置信度要求,从而都可以不用再计算,即为剪枝。上面提到的count(X1)表示计数,即X1出现的次数;conf(X=>Y-X)表示规则X=>Y-X的置信度。
因此,在生成一条关联规则时,计算该关联规则的置信度,如果该关联规则的置信度小于最小置信度,就舍弃该关联规则和包含该规则体的所有其他关联规则,即剪掉了以该关联规则所在节点为根的子树。
图3示出了置信度剪枝的示意图。参照图3,如果conf(ABC=>D)的值小于最小置信度要求,那么可以剪掉包含该规则体D的所有其他关联规则,即,剪掉关联规则ABC=>D、AB=>CD、AC=>BD、BC=>AD、A=>BCD、B=>ACD、C=>ABD,因为上述关联规则中均包含规则体D(也就是,上述关联规则的规则体D、CD、BD、AD、BCD、ACD、ABD均包含规则体D)。
下面给出了关联规则生成的伪代码:
设Y∈{Y1,Y2,…,Yn}为频繁模式集中的一个频繁模式,|Y|表示该频繁模式的长度;
设PruneSets=φ,为初始的剪枝项集;
设RuleSet=φ,为初始的规则集;
输入:{Y1,Y2,…,Yn},最小置信度min_conf;
输出:RuleSet;
过程:
有生成规则的递归过程:
虽然上面描述了基于置信度剪枝的方式来生成关联规则,但是本发明不限于此,还可使用其它生成关联规则的方法。例如,枚举所有频繁模式的所有可能切分,并计算关联规则的置信度,然后检查关联规则置信度是否满足最小置信度要求,将满足最小置信度要求的关联规则插入到规则集中。
API服务器16:
API服务器通过定义API,为应用服务器或智能电视的客户端程序提供统一的用户模型请求服务。API服务器通常包含两部分:鉴权策略和请求API。
(1)鉴权策略
当应用服务器或客户端程序向API服务器申请建立连接前,首先要申请鉴权,鉴权的过程描述如下:
a.应用服务器或客户端程序向API服务器发送访问密钥(accessKey)和自身的IP地址。
b.API服务器通过访问密钥(accessKey)检查该应用服务器或客户端程序是否是合法用户,如果是非法用户,则API服务器返回错误代码;如果是合法用户,则API服务器生成随机的种子密钥(seedKey)、会话ID(SessionID)及该会话的有效期给该应用服务器或客户端程序。
c.该应用服务器或客户端程序将接收到的种子密钥与秘密密钥(secrectKey)结合,生成加密字符串。加密字符串可以是安全散列算法(security hash algorithm,SHA)-1加密字符串。
d.该应用服务器或客户端程序将接收到的会话ID与生成的SHA-1加密字符串一起构成对会话进行标识的标识符(例如,PFToken)。
(1)请求API
当在会话的有效期内,应用服务器或客户端程序需通过API请求用户模型时附带上在鉴权过程中生成的PFToken;但当会话失效时,需要重新鉴权。通过API请求用户模型的过程描述如下:
a.应用服务器或客户端程序通过定义好的API请求特定的用户模型时,附带上对会话进行标识的PFToken。
b.API服务器通过解析PFToken得到会话ID、SHA-1加密字符串以及其它API参数。
c.API服务器通过会话ID查找到发送给应用服务器或客户端程序的种子密钥,将种子密钥和存储在API服务器上的秘密密钥结合,生成另一个SHA-1加密字符串。
d.比较刚生成的SHA-1加密字符串和从应用服务器或客户端程序接收到的SHA-1加密字符串,如果两者不匹配,则表示该请求非法,返回错误代码给客户端;否则,表示请求合法。
e.如果请求合法,则API服务器根据接收到的请求查询用户模型数据库,返回特定的用户模型给该应用服务器或客户端程序。
(3)鉴权申请的例子如下:
GET sys/auth/seedkey HTTP S/1.1
accessKey:rf2w0ij 6-34hg-49er-sx7b-461dd9fas8kc
IP:109.120.113.82
(4)鉴权应答的例子如下:
(5)客户端请求特定用户对Application类型偏好的API接口例示如下:
GET sys/profile/app HTTP S/1.1
PFToken:
234c0721+ak314f3b49ddbf8d61c27b523gf0c313d437d051
user:MF25CRQ
type:CAT
n:3
(6)API服务器对客户端请求特定用户对Application类型偏好的应答如下:
(7)错误状态的应答例示如下:
应该理解,虽然上面以智能电视为例描述分布式用户建模的实施过程,但本发明不限于此,本发明的分布式用户建模也可应用于智能手机、平板电脑等其它类型的智能设备。
下面描述根据本发明的用于智能设备的分布式用户建模方法。图4示出了根据本发明的用于智能设备的分布式用户建模方法的流程图。
参照图4,在步骤401,读取配置文件。所述配置文件定义日志导入策略、文件存储路径等配置信息。
在步骤402,根据读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模所需的信息,诸如用户标识(UserID)、事件(Event)、应用程序(Application)、类型(Category)、关键字(Keyword)等。可将抽取的用户建模所需的信息存储到分布式文件系统中。
在步骤403,统计用户的偏好。
在步骤404,挖掘用户使用智能设备的频繁模式。
在步骤405,根据挖掘的频繁模式生成关联规则。统计的用户偏好以及生成的关联规则可构成用户模型.
在步骤406,接收应用服务器或智能设备的客户端程序的请求,并提供相应的用户模型。用户模型可存储在用户模型数据库(未示出)中,可通过搜索用户模型数据库来提供相应的用户模型。
采用根据本发明的用于智能设备的分布式用户建模系统和方法,可实现如下效果:
1、由于采用了基于MapReduce的编程模式进行统计和关联规则的用户建模,因此多个节点通过map和reduce函数实现了用户建模的分布式计算。
2、由于采用统计的方法建模,因此不需要准备样本数据和训练模型,能够随时进行用户建模,能满足用户模型经常变化的要求。
3、本发明采用关联规则挖掘的方法,能够发现不同项之间的相关关系,利用经常共现的行为模式充实用户模型,使得生成的用户模型更全面、更准确。
4、通过API服务器的鉴权策略,使得智能设备以及其它合法服务与系统访问用户模型,并保证了数据的安全。
5、能够利用现有的云计算平台(比如亚马逊web服务),能够满足系统扩展性要求。
虽然本发明是参照其示例性的实施例被具体描述和显示的,但是本领域的普通技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种改变。
Claims (12)
1.一种用于智能设备的分布式用户建模系统,包括:
控制器,读取配置文件;
日志导入/解析模块,根据控制器读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模所需的信息;
偏好统计模块,统计用户的偏好;
模式挖掘模块,挖掘用户使用智能设备的频繁模式;
规则生成模块,根据模式挖掘模块挖掘的频繁模式生成关联规则,其中,偏好统计模块统计的用户偏好以及规则生成模块生成的关联规则构成用户模型;
应用程序接口API服务器,接收应用服务器或智能设备的客户端程序的请求,并提供相应的用户模型,
其中,在应用服务器或智能设备的客户端程序请求与API服务器建立连接前,应用服务器或智能设备的客户端程序申请API服务器进行鉴权,
其中,API服务器通过以下操作进行鉴权:
应用服务器或客户端程序向API服务器发送访问密钥和自身的IP地址;
API服务器通过访问密钥检查该应用服务器或客户端程序是否是合法用户;
如果是合法用户,则API服务器生成随机的种子密钥、会话ID及该会话的有效期,并将生成的种子密钥、会话ID及该会话的有效期发送到应用服务器或客户端程序;
应用服务器或客户端程序将接收到的种子密钥与秘密密钥结合,生成加密字符串;
应用服务器或客户端程序将接收到的会话ID与生成的加密字符串一起构成对会话进行标识的标识符。
2.根据权利要求1所述的分布式用户建模系统,其中,控制器控制日志导入/解析模块、模式挖掘模块、偏好统计模块和规则生成模块的执行时机和调度顺序。
3.根据权利要求1所述的分布式用户建模系统,其中,用户建模所需的信息包括下列中的至少一种:用户标识、事件、应用程序、类型、关键字。
4.根据权利要求1所述的分布式用户建模系统,其中,用户的偏好包括下列中的至少一种:用户对智能设备的应用程序类型的偏好;用户对智能设备的应用程序关键字的偏好;用户对智能设备的应用程序的付费类型的偏好。
5.根据权利要求1所述的分布式用户建模系统,其中,模式挖掘模块统计指定时间区间内用户针对智能设备的会话。
6.根据权利要求5所述的分布式用户建模系统,其中,模式挖掘模块根据配置文件设定的策略确定用户针对智能设备的会话,统计每个会话包含的应用程序,并调用频繁模式挖掘算法生成用户使用应用程序的频繁模式。
7.根据权利要求1所述的分布式用户建模系统,其中,规则生成模块通过以下操作生成关联规则:
将模式挖掘模块挖掘的频繁模式分为非空的第一部分和第二部分作为关联规则,第一部分为规则头,第二部分为规则体,第二部分仅包含一个项;
计算关联规则的置信度,比较关联规则的置信度是否大于或等于最小置信度;
如果关联规则的置信度大于或等于最小置信度,则将所述关联规则插入规则集中;
如果关联规则的置信度小于最小置信度,则剪掉所有包含所述规则体的关联规则的生成和置信度计算;
继续将所述频繁模式划分为规则体包含两个项的关联规则,并计算关联规则的置信度,以选择置信度大于或等于最小置信度的关联规则并插入规则集中,直到规则头为空为止。
8.根据权利要求1所述的分布式用户建模系统,其中,应用服务器或智能设备的客户端程序通过预定义的API请求用户模型,
其中,应用服务器或智能设备的客户端程序通过以下操作请求用户模型:
应用服务器或客户端程序通过预定义的API请求特定的用户模型时,附带上对会话进行标识的标识符;
API服务器通过解析所述标识符得到会话ID和加密字符串;
API服务器通过会话ID查找到发送给应用服务器或客户端程序的种子密钥,将种子密钥和存储在API服务器上的秘密密钥结合,生成另一加密字符串;
API服务器比较生成的所述另一加密字符串和从应用服务器或客户端程序接收到的加密字符串,如果两者匹配,则表示请求合法;
如果请求合法,则API服务器根据接收到的请求将特定的用户模型提供给应用服务器或客户端程序。
9.一种用于智能设备的分布式用户建模方法,包括:
读取配置文件;
根据读取的配置文件中配置的日志导入策略,从智能设备的日志服务器导入用户日志,然后解析并抽取用户建模所需的信息;
统计用户的偏好;
挖掘用户使用智能设备的频繁模式;
根据挖掘的频繁模式生成关联规则,其中,统计的用户偏好以及生成的关联规则构成用户模型;
由应用程序接口API服务器接收应用服务器或智能设备的客户端程序的请求,并提供相应的用户模型,
其中,在应用服务器或智能设备的客户端程序请求与API服务器建立连接前,应用服务器或智能设备的客户端程序申请API服务器进行鉴权,
其中,通过以下步骤进行鉴权:
应用服务器或客户端程序向API服务器发送访问密钥和自身的IP地址;
API服务器通过访问密钥检查该应用服务器或客户端程序是否是合法用户;
如果是合法用户,则API服务器生成随机的种子密钥、会话ID及该会话的有效期,并将生成的种子密钥、会话ID及该会话的有效期发送到应用服务器或客户端程序;
应用服务器或客户端程序将接收到的种子密钥与秘密密钥结合,生成加密字符串;
应用服务器或客户端程序将接收到的会话ID与生成的加密字符串一起构成对会话进行标识的标识符。
10.根据权利要求9所述的分布式用户建模方法,其中,挖掘用户使用智能设备的频繁模式的步骤包括:
根据配置文件设定的策略确定用户针对智能设备的会话;
统计每个会话包含的应用程序;
调用频繁模式挖掘算法生成用户使用应用程序的频繁模式。
11.根据权利要求9所述的分布式用户建模方法,其中,生成关联规则的步骤包括:
将模式挖掘模块挖掘的频繁模式分为非空的第一部分和第二部分作为关联规则,第一部分为规则头,第二部分为规则体,第二部分仅包含一个项;
计算关联规则的置信度,比较关联规则的置信度是否大于或等于最小置信度;
如果关联规则的置信度大于或等于最小置信度,则将所述关联规则插入规则集中;
如果关联规则的置信度小于最小置信度,则剪掉所有包含所述规则体的关联规则的生成和置信度计算;
继续将所述频繁模式划分为规则体包含两个项的关联规则,并计算关联规则的置信度,以选择置信度大于或等于最小置信度的关联规则并插入规则集中,直到规则头为空为止。
12.根据权利要求9所述的分布式用户建模方法,其中,应用服务器或智能设备的客户端程序通过预定义的API请求用户模型,
其中,通过以下步骤请求用户模型:
应用服务器或客户端程序通过预定义的API请求特定的用户模型时,附带上对会话进行标识的标识符;
API服务器通过解析所述标识符得到会话ID和加密字符串;
API服务器通过会话ID查找到发送给应用服务器或客户端程序的种子密钥,将种子密钥和存储在API服务器上的秘密密钥结合,生成另一加密字符串;
API服务器比较生成的所述另一加密字符串和从应用服务器或客户端程序接收到的加密字符串,如果两者匹配,则表示请求合法;
如果请求合法,则API服务器根据接收到的请求将特定的用户模型提供给应用服务器或客户端程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210100864.1A CN103368921B (zh) | 2012-04-06 | 2012-04-06 | 用于智能设备的分布式用户建模系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210100864.1A CN103368921B (zh) | 2012-04-06 | 2012-04-06 | 用于智能设备的分布式用户建模系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103368921A CN103368921A (zh) | 2013-10-23 |
CN103368921B true CN103368921B (zh) | 2016-08-10 |
Family
ID=49369471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210100864.1A Active CN103368921B (zh) | 2012-04-06 | 2012-04-06 | 用于智能设备的分布式用户建模系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103368921B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905244B (zh) * | 2014-01-28 | 2018-05-11 | 北京奇虎科技有限公司 | 一种统计到访信息的装置和方法 |
CN104820587B (zh) * | 2015-04-13 | 2018-03-02 | 南京大学 | 细粒度的基于频繁项集挖掘产生api替换规则的方法 |
CN104809231A (zh) * | 2015-05-11 | 2015-07-29 | 浪潮集团有限公司 | 一种基于Hadoop的海量web数据挖掘方法 |
US20170083937A1 (en) * | 2015-09-18 | 2017-03-23 | Mms Usa Holdings Inc. | Micro-moment analysis |
CN105490813B (zh) * | 2015-11-26 | 2019-03-01 | 广州华多网络科技有限公司 | 一种用户安全访问web的方法及装置 |
CN105740397A (zh) * | 2016-01-28 | 2016-07-06 | 广州市讯飞樽鸿信息技术有限公司 | 一种基于大数据并行运算的语音信箱业务数据分析方法 |
CN107870934B (zh) * | 2016-09-27 | 2021-07-20 | 武汉安天信息技术有限责任公司 | 一种app用户聚类方法及装置 |
CN107577736B (zh) * | 2017-08-25 | 2021-12-17 | 武汉数字智能信息科技有限公司 | 一种基于bp神经网络的文件推荐方法及系统 |
CN110796505B (zh) * | 2018-08-03 | 2023-07-04 | 淘宝(中国)软件有限公司 | 一种业务对象推荐方法以及装置 |
CN109254965A (zh) * | 2018-08-22 | 2019-01-22 | 中国平安人寿保险股份有限公司 | 模型处理方法及系统、存储介质和电子设备 |
CN109656969A (zh) * | 2018-11-16 | 2019-04-19 | 北京奇虎科技有限公司 | 数据异动分析方法及装置 |
CN111639251B (zh) * | 2020-06-16 | 2023-09-29 | 李忠耘 | 信息检索方法和装置 |
CN111736481B (zh) * | 2020-07-14 | 2023-06-23 | 北京自如信息科技有限公司 | 基于用户行为特征的模型训练、智能家居控制方法及装置 |
CN112052279A (zh) * | 2020-09-02 | 2020-12-08 | 苏州律点信息科技有限公司 | 一种基于大数据的数据挖掘方法及系统 |
CN116214526B (zh) * | 2023-05-09 | 2023-08-04 | 合力(天津)能源科技股份有限公司 | 一种机器人运动轨迹的补偿控制方法及系统 |
CN116504076A (zh) * | 2023-06-19 | 2023-07-28 | 贵州宏信达高新科技有限责任公司 | 基于etc门架数据的高速公路车流量预测方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266610A (zh) * | 2008-04-25 | 2008-09-17 | 浙江大学 | 一种Web活跃用户网站访问模式的在线挖掘方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009213067A (ja) * | 2008-03-06 | 2009-09-17 | Toshiba Corp | 番組推薦装置および番組推薦方法 |
-
2012
- 2012-04-06 CN CN201210100864.1A patent/CN103368921B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266610A (zh) * | 2008-04-25 | 2008-09-17 | 浙江大学 | 一种Web活跃用户网站访问模式的在线挖掘方法 |
Non-Patent Citations (2)
Title |
---|
"Web日志中用户频繁访问路径挖掘算法的研究";王慧;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110915;全文 * |
"基于Web使用挖掘和关联规则的页面推荐模型的研究与实现";邓凯;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070815;正文第1页第3段,第4页第3段-第5页第2段,第9页第4段,第13页第2段-第14页第1段,第18页第1段-第22页第5段,第30页第2段-第32页结束,第43页第1段-第44页第2段,第54页第2段-第56页第5段 * |
Also Published As
Publication number | Publication date |
---|---|
CN103368921A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103368921B (zh) | 用于智能设备的分布式用户建模系统和方法 | |
US11196541B2 (en) | Secure machine learning analytics using homomorphic encryption | |
US10237368B2 (en) | Semantic information processing | |
US20190122310A1 (en) | System and method for conversation discovery | |
US8037409B2 (en) | Method for learning portal content model enhancements | |
US8612380B2 (en) | Web-based collaboration for editing electronic documents | |
US20150066817A1 (en) | System and method for virtual assistants with shared capabilities | |
US20150370872A1 (en) | Embeddable cloud analytics | |
Casino et al. | An efficient blockchain-based privacy-preserving collaborative filtering architecture | |
US20150067503A1 (en) | System and method for virtual assistants with agent store | |
CN105190595A (zh) | 唯一地识别网络连接实体 | |
CN101821736A (zh) | 与服务器交互的方法和系统,以及用于产生并呈现搜索结果的方法和系统 | |
CN110825975B (zh) | 一种信息推荐方法、装置、设备及计算机可读存储介质 | |
KR20110036930A (ko) | 복수의 디바이스들에 걸친 개인적인 디지털 자산들을 관리하는 방법 | |
CN114330312A (zh) | 标题文本处理方法、装置、存储介质和程序 | |
US20230222190A1 (en) | Systems and methods for providing user validation | |
JP7457131B2 (ja) | プライバシーを守る機械学習ラベリング | |
EP3158478A1 (en) | Embeddable cloud analytics | |
CN112861009A (zh) | 基于人工智能的媒体账号推荐方法、装置及电子设备 | |
CN115795156A (zh) | 物料召回和神经网络训练方法、装置、设备及存储介质 | |
Bouadjenek et al. | A distributed collaborative filtering algorithm using multiple data sources | |
CN113761272A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN113032625B (zh) | 一种视频分享方法、装置、计算机设备及存储介质 | |
Merchant et al. | The use of trust in social machines | |
Thrivani et al. | An efficient cloud based architecture for integrating content management systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 5-12 / F, building 6, 57 Andemen street, Yuhuatai District, Nanjing City, Jiangsu Province Patentee after: Samsung Electronics (China) R&D Center Patentee after: SAMSUNG ELECTRONICS Co.,Ltd. Address before: 17 ~ 19F, Xindi center, 188 Lushan Road, Nanjing, Jiangsu 210019 Patentee before: Samsung Electronics (China) R&D Center Patentee before: SAMSUNG ELECTRONICS Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |