2.845

2023影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于矩阵填充和物品可预测性的协同过滤算法

潘涛涛 文峰 刘勤让

孙新, 严西敏, 尚煜茗, 欧阳童, 董阔. 一种基于共享度模型的改进Rete算法. 自动化学报, 2017, 43(9): 1571-1579. doi: 10.16383/j.aas.2017.c160674
引用本文: 潘涛涛, 文峰, 刘勤让. 基于矩阵填充和物品可预测性的协同过滤算法. 自动化学报, 2017, 43(9): 1597-1606. doi: 10.16383/j.aas.2017.c160644
SUN Xin, YAN Xi-Min, SHANG Yu-Ming, OUYANG Tong, DONG Kuo. An Improved Rete Algorithm Using Shared Degree Model. ACTA AUTOMATICA SINICA, 2017, 43(9): 1571-1579. doi: 10.16383/j.aas.2017.c160674
Citation: PAN Tao-Tao, WEN Feng, LIU Qin-Rang. Collaborative Filtering Recommendation Algorithm Based on Rating Matrix Filling and Item Predictability. ACTA AUTOMATICA SINICA, 2017, 43(9): 1597-1606. doi: 10.16383/j.aas.2017.c160644

基于矩阵填充和物品可预测性的协同过滤算法

doi: 10.16383/j.aas.2017.c160644
基金项目: 

国家自然科学基金 61572520

国家高技术研究发展计划(863计划) 2014AA01A

详细信息
    作者简介:

    文峰:文锋 江南计算技术研究所高级工程师.主要研究方向为计算机应用.E-mail:wensinliu@163.com

    刘勤让 国家数字交换系统工程技术研究中心研究员.主要研究方向为片上网络设计. E-mail: qinrangliu@sina.com

    通讯作者:

    潘涛涛 国家数字交换系统工程技术研究中心硕士生.主要研究方向为人工智能和数据挖掘.本文通信作者.E-mail: pan_taotao@126.com

Collaborative Filtering Recommendation Algorithm Based on Rating Matrix Filling and Item Predictability

Funds: 

National Natural Science Foundation of China 61572520

National High Technology Research and Development Program (863 Program) 2014AA01A

More Information
    Author Bio:

    Senior engineer at the Jiangnan Computing Technology Research Institute. His main research interest is computer application

    Researcher at the China National Digital Switching System Engineering and Technological R & D Center. His main research interest is network-on-chip

    Corresponding author: PAN Tao-Tao Master student at the China National Digital Switching System Engineering and Technological R & D Center. His research interest covers artificial intelligence and data mining. Corresponding author of this paper
  • 摘要: 针对传统矩阵填充算法忽略了预测评分与真实评分之间的可信度差异和传统Top-N方法推荐精度低等问题,提出了一种改进的协同过滤算法.该算法首先利用置信系数C区分评分值之间的可信度;然后提出物品可预测性的概念,综合物品的预测评分与物品的可预测性进行物品推荐并将其转化为0-1背包问题,从而筛选出最优化的推荐列表.实验结果表明:该算法能有效缓解稀疏性的影响,提高推荐性能,并且算法具有良好的可扩展性.
  • 专家系统(Expert system)是一种运用专家提供的领域知识进行推理和判断, 求解那些需要专家才能解决的复杂问题的智能计算机程序[1].专家系统在人工智能领域应用广泛.在很多领域, 专家系统发挥了很大作用, 例如智能医疗和决策规划等[2].

    专家系统是推理机和知识库的结合[3], 知识库用来保存专门的知识, 推理机使用知识库里的知识来解决问题.一直以来, 专家系统面临两个核心问题[4]:知识表示和知识推理.其中, 知识推理是专家系统中的关键技术, 也是近些年来优化专家系统的主要方向.

    Rete算法是Forgy针对专家系统中推理问题提出的一种解决方法[5], 作为一种前向链形推理算法, 其核心思想是采用增量匹配的概念, 根据内容动态构造匹配树, 以达到显著降低计算量的效果.目前大部分规则推理引擎都使用Rete算法作为核心推理算法.但Rete算法也存在诸如推理网络构造复杂、推理速度过低等问题.在生成推理网络的时候, Rete算法没有考虑规则中节点的分布情况, 生成的规则网络可能过于复杂, 导致存储Rete网络的代价过大, 影响Rete网络的推理速度.

    针对Rete算法推理过程中存在的问题, 本文提出了一种基于节点共享度模型的高共享性Rete网络构建算法(Rete algorithm based on the shared degree model, ReteSDM), 结合自动机理论优化推理系统中Rete网的构建过程.实验结果显示, 该算法有效提高Rete网络的节点共享性能, 减少冗余节点, 提升推理效率.

    有穷自动机理论最先是在讨论计算理论中的问题时被提出[6].它用来描述计算能力和资源极其有限的计算机模型[7].

    首先给出确定型有穷自动机(Deterministic finite automaton, DFA)的形式化定义[8].

    定义1. 确定型有穷自动机是一个5元组( $Q$ , $\Sigma$ , , $q_{0}$ , $F$ ), 其中

    1) $Q$ 是一个有穷集合, 称为状态集;

    2) $\Sigma$ 是一个有穷集合, 称为字母表;

    3) $\delta :Q \times \Sigma \to Q$ 称为转移函数;

    4) ${q_0} \in Q$ 称为起始状态;

    5) $F \subseteq Q$ 称为接受状态集.

    非确定型有穷自动机的形式化定义与确定型有穷自动机的形式化定义类似, 不同点在于两者的转移函数.下面给出非确定型有穷自动机(Non deterministic finite automaton, NFA)的形式化定义[9].

    定义2. 非确定型有穷自动机是一个5元组( $Q$ , ${\Sigma}$ , ${\delta}$ , $q_{0}$ , $F$ ), 其中

    1) $Q$ 是一个有穷集合, 称为状态集;

    2) ${\Sigma}$ 是一个有穷集合, 称为字母表;

    3) $\delta :Q \times {\Sigma _\varepsilon } \to P(Q)$ 称为转移函数;

    4) ${q_0} \in Q$ 称为起始状态;

    5) $F \subseteq Q$ 称为接受状态集.

    这里, 称 $P(Q)$ 为 $Q$ 的幂集, 称为 ${\Sigma _\varepsilon }$ .

    在DFA中, 转移函数取一个输入符号和一个状态, 产生下一个状态.而在NFA中, 状态函数取一个输入符号或者空串, 以及一个状态, 产生下一个状态的集合.可以证明, 每一台非确定型有穷自动机都等价于某一台确定型有穷自动机.

    Rete算法是一种前向规则快速匹配算法, 其匹配速度与规则数目无关.在该算法中, 有以下几个重要的基本概念.

    1) 事实.对象之间及对象属性之间的多元关系, 一般使用一个三元组表示;

    2) 规则.由条件及其结论构成的推理语句, 当满足事实时, 相应的结论被激活;

    3) 模式.规则的IF部分, 是已知事实的泛化形式, 未实例化的多元关系.

    Rete算法将规则集转化为Rete网络进行规则匹配. Rete网络是一个用于过滤事实数据的有向无环图, 包括三个部分:根节点(Root node), Alpha网络和Beta网络[10].根节点是所有事实对象进入网络的入口, 是一个虚拟节点, 不具有实际意义. Alpha网络用于过滤事实, 通过模式匹配找出事实集中所有符合的模式集合. Alpha网络包括两种节点:类型节点(Object type node)和条件节点(Alpha node).类型节点是根节点的直接子节点, 保存了规则中事实对象对应的类型.如果对某一对象类型的模式有条件约束, 则该约束会进入Alpha网络形成条件节点; 当对象存在多个条件约束时, 则从类型节点出发, 对每一条规则形成一个条件节点链, 允许模式之间存在节点共享. Beta网络用于匹配规则, 通过连接操作将模式集组合形成匹配集, 最终将匹配集转化为规则结论(Action)并执行. Beta网络包含两类节点:连接节点(Beta node)和终端节点(Terminal node).连接节点接收条件节点的输入, 并将规则中关联的条件节点组合起来.终端节点对应规则的结论部分.

    Rete网络和有穷自动机结构类似, 可以这么说, 依据Rete网络推理机其实本身就是自动机的一种, 下面给出基于有穷自动机的Rete网络的定义.

    定义3. Rete网络形如为的五元组, 其中

    1) 状态集 $Q$ : Rete网络中的各节点, 包含Root节点, Alpha节点, Beta节点和Terminal节点.其中, Root节点为初始状态, Terminal节点为终止状态, Alpha节点和Beta节点对应自动机中的普通状态节点.

    2) 字母表 ${\Sigma}$ : Rete网络中事实的幂集, 即Alpha和Beta节点中描述语言.

    3) 转移函数 ${\delta}$ : Rete网络中节点合并的规则.表示为, 当然在一般环境下, 此笛卡尔积的规模是一个稀疏结构.

    4) 初始状态 ${q_0}$ : Rete网络中的Root节点.

    5) 终止状态集 $F$ : Rete网络中的Terminal节点.

    通过使用有穷自动机对Rete网络推理机描述, 我们可以使用更加规范的语言来表示Rete网络推理机. Rete网络的构造算法如下.

    算法1. Rete网络构造算法

    输入. 规则集合

    输出. Rete节点网络

    for $i=1$ ; $i \le RuleNum$ ; $i++$ do

      取出规则 $R_i$

      for $j=1$ ; $j \le ConditionNum$ of $R_i$ ; $j++$ do

        if $Condition_j$ 不存在于Alpha网络中then

          将 $Condition_j$ 作为 $Alpha(j)$ 节点插入

           Alpha网络

        endif

        if ${j = 2}$ then

          将 $Beta(1)$ 节点插入Beta网络中, 其父

          节点为 $Alpha(1)$ 和 $Alpha(2)$ ;

        endif

        if ${j > 2}$ then

          将 $Beta(j)$ 节点插入Beta网络中, 其父

          节点为 $Beta(j-1)$ 和 $Alpha(j)$ ;

      endif

     endfor

    endfor

    通过Rete网络构造的过程不难发现, 条件顺序对Alpha网络和Beta网络的节点共享性能有较大影响, 先加入的条件被优先共享.这样会导致Rete网络趋向复杂, 从而影响Rete网络的推理速度[11].

    节点共享是Rete网络的一大特性, 通过节点共享, 可以避免重复匹配, 提高匹配效率[12].但是在建立Rete网络时, 模式的条件顺序会极大影响网络的节点共享性能, 下面分析模式的条件顺序对共享性能的影响.

    Rete网络包含Alpha网络和Beta网络, 模式的条件顺序对这两个网络节点共享性能的影响不同, 首先分析对Alpha网络的影响.

    假设存在两个规则, 其模式分别为( $c_1, c_2, \cdots$ , )和(, $c_{bq}$ ), 这里 $c_{i}$ 表示同一类型条件.显然这两个模式有 $n$ 个相同条件, 对应的Alpha网络模型如图 1(a)所示.这里将第二个模式的第一个条件移到第 $n$ 个条件后, 即将模式变为(, $c_{bq}$ ).那么当建立Rete网络时, 由于两个模式相同条件的条件顺序不同, 虽然有 $n$ 个相同节点但是却没有一个共享节点, 节点共享失败, 其对应的Rete网络如图 1(b)所示.可以看出, 对于同一类型的条件, 其排列顺序对Alpha网络的节点共享有很大影响.

    图 1  Alpha网络节点共享模型图
    Fig. 1  The shared model of alpha network node

    下面分析模式的条件顺序对Beta网络的影响.假设存在两条规则, 其模式分别为 $(C, D, E)$ 和 $(C$,, 其中 $C, D, E, F$ 代表不同类型的条件, 其对应的Beta网络如图 2所示.如果将第二条规则的条件顺序改变为 $(D, E, F, C)$ , 那么构建Rete网络时, 将不存在节点共享, 如图 3所示.

    图 2  Beta网络节点共享模型
    Fig. 2  The shared model of beta network node
    图 3  变换顺序后Beta网络节点共享模型
    Fig. 3  The shared model of beta network node shu†ed

    通过上面的分析可以看出, 条件顺序对Alpha网络和Beta网络的节点共享性能有较大影响, 先加入的条件被优先共享.因此, 对条件进行排序可以降低对性能的影响.为了使排序更加合理, 提高Rete网络的共享性, 本文提出共享度模型的概念.

    节点共享度代表一个节点需要被共享的程度, 这里使用引用该节点条件的规则数对其进行量化.例如, 一个条件如果被三条规则引用, 则该条件对应节点的共享度为3.下面给出形式化定义.

    定义4. 节点共享度为其在规则集中被共享的程度.设 $d_c$ 为节点 $c$ 的节点共享度, 则

    $ \begin{align} {d_c} = \sum\limits_{i = 1}^n {Contains(Rul{e_i}, d)} \ \end{align} $

    (1)

    其中

    $ \begin{align} Contains(Rul{e_i}, d)= \begin{cases} 1, &{Rul{e_i}\text{包含}c}\\ 0, &{Rul{e_i}\text{不包含}c} \end{cases} \end{align} $

    (2)

    在理想情况下, 整个Rete网络中不存在相同节点, 则节点的共享度为该条件出现的次数, 显然 $d_c$ 越大, 条件的共享程度应当越高.由于条件的共享程度和顺序相关, 条件顺序越靠前其共享程度越高, 因此需要将条件按其节点共享度排序.例如由模式( $c_1$ , $c_2$ )和( $c_3$ , $c_1$ )组成的模式集, 将其按节点度排序后变为( $c_1$ , $c_2$ ), ( $c_1$ , $c_3$ ), 在构造Rete网络时, $c_1$ 被先加入网络并得到共享.

    这种简单排序可以解决一部分共享问题, 但是对于节点共享度相同的条件, 由于其排序是随机的, 同样会对网络的共享性能造成影响, 例如由模式( $c_1$ , $c_2$ , $c_4$ ), ( $c_1$ , $c_3$ ), ( $c_1$ , $c_2$ , $c_3$ , $c_4$ )组成的模式集, 按照节点度对其降序排列, $c_1$ 排在第一位, 剩余的 $c_2$ , $c_3$ , $c_4$ 由于节点共享度相同, 其排序是随机的, 假设其排序为 $c_2$ , $c_3$ , $c_4$ , 那么对应的Alpha网络如图 4(a)所示.只有 $c_2$ 被共享, $c_3$ 和 $c_4$ 没有共享, 如果将排序变为 $c_2$ , $c_4$ , $c_3$ , 则Alpha网络变为如图 4(b)所示.此时, $c_2$ , $c_4$ 被共享, $c_3$ 没有共享.

    图 4  节点共享度相同示例图
    Fig. 4  The situation that the node shared degree is equal

    实际中, 节点共享度相同是比较普遍的现象, 当同一节点共享度的条件数量很多时, 其排序对Rete网络的节点共享性能影响很大.因此需要对有相同节点共享度的条件进一步排序.这里再引入模式节点共享度的概念, 其形式化定义如下.

    定义5. 模式是由若干条件组成的, 将模式的节点共享度定义为模式中所有条件节点共享度的和, 设模式 $M$ 包含 $n$ 个条件( $c_1$ , $c_2$ , $\cdots$ , $c_n$ ), 则其模式共享度

    $ \begin{align} {d_M} = \sum\limits_{i = 1}^n {{c_i}} \end{align} $

    (3)

    模式的节点共享度反映了整个模式在网络中的共享程度, $d_M$ 越大, 则模式的共享程度越高.由于模式包含条件, 模式的共享程度高则表示其包含的条件共享程度高, 因此可以使用模式的节点共享度对具有相同节点共享度的条件做进一步排序.条件会出现在多个模式中, 设条件 $c$ 出现在 $p$ 个模式( $M_1$ , $M_2$ , $\cdots$ , $M_p$ )中, 模式的节点共享度为( $d_{M1}$ , $d_{M2}$ , $\cdots$ , $d_{Mp}$ ).则 $c$ 的模式共享度.

    模式共享度反映了其他条件对该条件的依赖情况, $d_{cM}$ 越大, 依赖程度越高, 而依赖程度越高, 其共享程度就越高, 顺序应当靠前.因此, 可以依据模式共享度对节点共享度相同的条件降序排列, 来区分相同节点共享度的条件.

    根据节点共享度和模式的共享度, 我们可以对节点在规则集中的共享程度进行排序, 构建高共享性Rete网络.

    2.3.1   Alpha网络构建

    在一个Rete网络中, 规则通过网络节点的形式呈现.规则的条件构成Alpha网络, 每一个条件都对应一个Alpha节点; 规则模式构成Beta网络, Beta节点由Alpha节点相互连接形成, 每一个Beta节点代表模式的一部分, $Beta(n)$ 节点代表规则的全部模式, 规则的结论对应终端节点, 是Beta网络的叶子节点, 也是 $Beta(n)$ 节点的子节点.因此, 构建Rete网络需要完成Alpha网络和Beta网络的构建. Alpha网络实际上是规则条件的网络, 其共享性能依赖条件顺序, 首先使用第2.2节提出的节点共享度模型和模式共享度模型, 对条件进行降序排序.获得按共享度降序排列的条件集合之后, 可以使用这个集合直接构造Alpha网络, 不需要再次读取规则集.

    2.3.2   Beta网络构建

    Beta网络使用连接和投影的方式进行模式匹配, 连接的对象是Alpha节点而不是条件, 因此在考虑条件节点共享度的同时也需要考虑Alpha节点的共享度.

    Rete算法在构造Alpha网络时会对Alpha节点进行分类, 节点共享度模型可以保证在同一类型中Alpha节点的排序, 但是却无法保证各个类型的排序, 这不仅影响节点共享性, 还会大大增加匹配的计算规模.

    因此需要对构建好的Alpha分类进行排序, Alpha分类包含多个Alpha节点, 每一个Alpha节点对应一个条件, 根据节点共享度模型, 可以计算出整个Alpha分类的共享度.设Alpha分类中有 $n$ 个Alpha节点, 对应的节点共享度为( $d_1$ , $d_2$ , $\cdots$ , $d_n$ ), 那么Alpha分类的共享度.

    共享度高的分类, 顺序应当靠前.对于共享度相同的分类, 随机排列顺序可能会降低Beta网络的节点共享性.设两个Alpha分类的共享度均为 $n$ , 一个分类只含1个节点, 一个分类含 $n$ 个节点.如果含 $n$ 个节点的分类被排在前面, 那么每次都需要先和 $n$ 个节点进行 $n$ 次连接; 如果含1个节点的分类排在前面, 每次只需要进行1次连接即可.为了反映分类中节点个数对共享性能的影响, 这里为Alpha分类引入平均共享度的概念, 对于一个含有 $m$ 个Alpha节点, 共享度为 $n$ 的Alpha分类, 其平均共享度.共享度相同的分类, 平均共享度高的顺序靠前. Alpha分类排序算法如下.

    算法2. Alpha分类排序算法

    输入. Alpha网络

    输出. 分类排序之后的Alpha网络

    步骤1. 建立分类集合H.

    步骤2. 遍历Alpha网络, 计算Alpha分类的共享度保存至分类集合H中.

    步骤3. 对Alpha分类按共享度降序排列.

    步骤4. 按平均共享度对共享度相同的Alpha分类降序排列.

    步骤5. 返回排序后的Alpha网络.

    通过算法2可以获得按Alpha分类降序排列的Alpha网络, 使用这个网络可以保证共享度高的Alpha分类被优先连接, 从而提高Beta网络的节点共享性能. Alpha网络配合规则集可以构造Beta网络, 具体描述如下.

    算法3. Beta网络构建算法

    输入. 排序后的Alpha网络

    输出. Beta网络

    for $i=1$ ; $i \le $ 规则集数目; $i++$ do

      取出规则 $R_i$

      for $j=1$ ; $j \le R_i$ 中规则条件数目; $j++$ do

        if $j\geq 2$ then

           将 $Beta(j)$ 节点插入Beta网络中, 其父

          节点为 $Beta(j-1)$ 和 $Alpha(j)$ ;

        endif

      endfor

      将规则 $R_i$ 的结论封装成终端节点, 作为 $Beta(n)$

      的子节点

    endfor

    返回Beta网络.

    2.4.1   Rete网络共享性指标

    为了体现算法的优化效果, 需要对Rete网络的节点共享性能进行量化, 这里引入Rete网络节点共享性能的概念. Rete网络分为Alpha网络和Beta网络, 下面分别讨论这两种网络的节点共享性能.

    设规则集 $R$ 共有 $n$ 条规则 $r_1$ , $r_2$ , $\cdots$ , $r_n$ , 每个规则模式包含的条件数为 $c_1$ , $c_2$ , $\cdots$ , $c_n$ .设 $T$ 为规则集 $R$ 的Rete网络, $A$ 为Alpha网络中的总节点数, $B$ 为Beta网络中的总节点数.则 $T$ 的Alpha共享性能为Alpha节点数与条件总数的比值, 记为 $S_A$ , 则

    $ \begin{align} {S_A}=\frac{A}{{\sum\limits_{i = 1}^n {{c_i}} }} \end{align} $

    (4)

    考虑Beta网络, 对于含有 $c_i$ 个条件的规则 $r_i$ , 共进行 $c_i-1$ 次连接操作, 考虑终端节点, 至多生成 $c_i$ 个Beta节点, 将其Beta共享性能记为 $S_B$ , 则

    $ \begin{align} {S_B}=\frac{B}{{\sum\limits_{i = 1}^n {{c_i}} }} \end{align} $

    (5)

    显然, Rete网络的总节点共享性能为Alpha共享性能和Beta共享性能的和, 记为 $S$ , 则

    $ \begin{align} {S}={S_A}+{S_B} \end{align} $

    (6)

    在极端情况下, 则Rete网络没有一个共享节点, 那么, . $S_A$ 和 $S_B$ 的值域均为 $\left(0, 1\right]$ , 则 $S$ 的值域为 $\left(0, 2\right]$ .对于一个Rete网络而言, $S$ 的值越大, 其节点共享性能越差.反之, 其节点共享性能越好, 这同样适用于Alpha网络和Beta网络.

    2.4.2   高共享性Rete网络推理优化

    在使用传统Rete算法进行推理每次查找Alpha节点时, 总会遍历所有的Alpha节点.其时间复杂度为, 其中 $n$ 为Alpha节点的数量.对于一次查找操作, 的时间复杂度可以忽略.但是随着查找次数上升, 查找时间对总的推理时间仍会产生巨大影响.另外, 在使用传统Rete算法进行推理时, 一般按照严格的顺序, 即先根据事实产生Alpha节点, 再由Alpha节点生成Beta节点依次进行推理.如果可以根据事实产生的Alpha节点, 直接找出后面出现的Beta节点, 推理的速度将会有很大的提升.

    针对上述现象, 可以建立一个Hash表快速定位Alpha节点和Beta节点, 加快查找的速度.引入Hash表存储对象的位置映射, 将Alpha节点及Beta节点和其在网络中的存储位置相互对应.那么在Rete网络事实匹配的过程中, 对于一些节点的查找工作将在的时间复杂度之内完成.这样操作之后, 可以大大提升事实匹配的整体效率.

    上述对Rete网络的优化构建方法, 主要对规则中的条件依据共享度重新排序, 而对规则本身不产生任何影响.假设有下面一条规则:

    $ \begin{align} Cond1 \wedge Cond2\; \cdots \;CondN \Rightarrow Result \end{align} $

    (7)

    无论其规则中条件如何改变, 对于一个待推理的事件包含且仅包含这条规则中的所有条件, 其推理的结果不会发生变化.这确保了本算法推理结果同传统Rete网络构建的推理结果的一致性.

    选择UCI的Adult[13]、Bank marketing[14]和Nursery[15]作为测试数据集.其中Adult数据集包含了14维的48842条数据, 通过Apriori算法, 挖掘出3285条规则; Bank marketing数据集包含了17维的45211条数据, 一共挖掘出5987条规则; Nursery数据集包含了8维的12960条数据, 最后挖掘出91条规则.在上述数据挖掘过程中, Apriori算法的置信度均设置为0.5, 支持度均设置为0.025.对于挖掘出来的规则, 我们进行了统一的编码, 条件之间使用空格分隔, 条件和结果之间使用符号$分隔, 编码的规则如下:

    $ \begin{align} Rul{e_i} = Cond1\;Cond2\; \cdots \;CondN\$ Result \end{align} $

    (8)

    由于UCI数据集的条件是按照条件分类进行排序, 本身具有一定的次序, 因此采用传统构造方法得到的Rete网络有较好的节点共享性能.为了更一般的显示各个算法的推理性能, 将规则集中的规则进行打乱操作(Shuffle)作为一个对照实验.

    对于每一个数据集, 我们使用传统方法在原规则集、传统方法在打乱的规则集和改进方法在原规则集中分别进行实验, 每个实验均进行4次.其结果如表 1所示.其中, Rete组表示使用传统Rete算法构建网络, Rete Shuffled组表示在打乱的规则集上使用传统Rete算法构建网络, ReteSDM组表示使用基于共享度模型的Rete算法构建网络.

    表 1  网络构建对比实验结果(ms)
    Table 1  The result of network construction (ms)
    数据集 序号 Rete Rete Shuffled ReteSDM
    构建时间 共享性 构建时间 共享性 构建时间 共享性
    Adult 1 38 0.095 43 0.301 53 0.077
    2 31 0.095 38 0.301 47 0.077
    3 31 0.095 38 0.302 55 0.077
    4 32 0.095 37 0.302 47 0.077
    AVG 33 0.095 39 0.301 50.5 0.077
    Bank marketing 1 61 0.077 64 0.296 72 0.059
    2 61 0.077 66 0.296 75 0.059
    3 61 0.077 66 0.296 74 0.059
    4 60 0.077 62 0.295 72 0.059
    AVG 60.75 0.077 64.5 0.295 73.25 0.059
    Nursery 1 3 0.492 3 0.549 5 0.477
    2 4 0.492 4 0.554 5 0.477
    3 4 0.492 4 0.538 5 0.477
    4 3 0.492 3 0.518 5 0.477
    AVG 3.5 0.492 3.5 0.539 5 0.477
    下载: 导出CSV 
    | 显示表格

    表 1可以看出, 使用优化之后的基于共享度 模型的网络构建算法, 无论是在打乱的数据集和有顺序的数据集中, Rete网络中节点的共享性能都有提升.特别是对于大数据集来说, 提升的幅度更大.在Adult数据集中, 在原数据集上提升了19%, 在打乱的数据集上提升了74%;在Bank Marketing数据集中, 在原数据集上提升了23%, 在打乱的数据集上提升了80%;对于小数据集Nursery而言, 其节点共享性能也略有提升.主要原因是本文提出的ReteSDM算法使用了节点共享度和模式共享度对条件进行了重新排序, 提升了网络中节点的共享性.

    在构建时间上, ReteSDM算法构建时间与传统的算法相比略有增加(增加幅度均不超过50%), 主要原因是增加了条件排序和Alpha分类节点排序, 但是增加的时间较其获得的效果(节点共享性能)来说, 其代价是比较小的.在实际应用中, 规则集是稳定且不轻易发生变化的.因此, Rete网络的构建频率很低, 网络构建时间不是衡量推理机性能的重要指标, 其时间增加的幅度是完全可以接受的.

    使用在Rete网络构建实验中的三个数据集(Adult、Bank marketing和Nursey数据集)进行事实匹配算法的对比实验.实验条件分别为:

    1) 在传统Rete网络上(由原规则集产生)使用传统事实匹配算法推理, 记为Rete.

    2) 在传统Rete网络上(由打乱的规则集产生)使用传统事实匹配算法推理, 记为Rete shuffled.

    3) 在共享性Rete网络上使用传统事实匹配算法推理, 记为ReteSDM.

    4) 在共享性Rete网络上使用基于哈希索引的Rete推理算法, 记为Hashed ReteSDM.

    实验分为3组.在Adult和Bank marketing数据集中, 第1组选择其中的10000条数据, 第2组选择其中的20000条数据, 第3组选择其中的30000条数据; 在Nursery数据集中, 第1组选择其中的4000条数据, 第2组选择其中的8000条数据, 第3组选择其中的12000条数据.以上实验均进行了3次, 然后对结果取均值, 其结果如表 2所示.

    表 2  推理性能对比实验结果(s)
    Table 2  The result of ratiocination effiency (s)
    数据集 分组 Rete Rete Shuffled ReteSDM Hashed ReteSDM 偏差率
    Adult 1 0.865 0.962 0.736 0.535 0
    2 1.721 1.950 1.472 1.071 0
    3 2.633 2.735 2.202 1.553 0
    Bank marketing 1 0.996 1.115 0.823 0.625 0
    2 2.102 2.327 1.650 1.256 0
    3 3.001 3.423 2.436 1.903 0
    Nursery 1 0.105 0.115 0.089 0.080 0
    2 0.203 0.217 0.193 0.159 0
    3 0.312 0.332 0.290 0.250 0
    下载: 导出CSV 
    | 显示表格

    表 2中, 偏差率是指在ReteSDM组和Hashed ReteSDM组中的推理结果与在Rete中的推理结果的不一致的个数.由于本算法实质是改变规则中条件的顺序, 理想环境下, 不会与传统的网络推理结果产生偏差.实验的结果也验证了这一点.

    可以看出, 高共享性网络和基于哈希索引的Rete推理算法对推理速度都有较大的提升.高共享性网络通过节点共享度调整规则的条件和Alpha节点的顺序, 提高了整个Rete网络的节点共享性能, 减少了冗余节点.在事实推理时, 就可以有效减少节点匹配次数, 进而缩短推理时间, 提高推理效率.基于哈希索引的Rete推理算法通过对事实进行分类减少计算规模, 再通过Hash索引加快查找分类的速度, 有效提高推理效率.

    综合来看, 同时采用高共享性网络和基于哈希索引的Rete推理算法可使推理效率提高, 而且随着事实集的增加, 推理效率会有进一步提升.

    近年来, 人工智能在各方面都取得了良好的应用[16-18], 专家系统在人工智能领域扮演了很重要的角色.在专家系统中, 推理机是一个重要的组成部分.但是专家系统在推理过程上存在不足, 例如规则保存和推理速度等. Rete算法是专家系统中的经典算法, 但是传统的Rete算法也存在空间和性能方面问题.

    本文根据节点共享度模型和模式共享度模型, 提出了一种新型Rete网络构造算法, 在Rete网络的构建中, 将规则中条件按照共享度进行排序, 构建出高共享性的Rete网络.并且在此基础上, 使用索引的方法对其进行推理优化.实验结果表明, 使用本算法创建Rete网络之后, 能够降低Rete网络的复杂度, 提升节点的共享度, 进而加快推理速度.


  • 本文责任编委  周涛
  • 图  1  物品层次划分

    Fig.  1  Hierarchy of item

    图  2  $C$ 与MAE的关系

    Fig.  2  The relationship between $C$ and MAE

    图  3  $Q$ 与precision的关系

    Fig.  3  The relationship between $Q$ and precision

    图  4  Movielens_100k中 $k$ 与MAE的关系

    Fig.  4  The relationship between $k$ and MAE in Movielens_100k

    图  5  Movielens_100k中 $k$ 与precision的关系

    Fig.  5  The relationship between $k$ and precision in Movielens_100k

    图  6  Movielens_100k中 $k$ 与Coverage的关系

    Fig.  6  The relationship between $k$ and Coverage in Movielens_100k

    图  7  Movielens_100k中稀疏度与MAE的关系

    Fig.  7  The relationship between sparsity and MAE in Movielens_100k

    图  8  基于物品可预测性算法可扩展性对比

    Fig.  8  Scalability comparison of algorithms

    图  9  三种算法的运行时间对比

    Fig.  9  Comparing the running time of the three algorithms

  • [1] Chen Y, Tsai W T. Service-Oriented Computing and Web Software Integration: From Principles to Development (Fourth edition). Dubuque, IA, USA: Kendall Hunt Publishing, 2014. http://dl.acm.org/citation.cfm?id=2559268
    [2] Yu F, Zeng A, Gillard S, Medo M. Network-based recommendation algorithms: a review. Physica A: Statistical Mechanics and its Applications, 2016, 452: 192-208 doi: 10.1016/j.physa.2016.02.021
    [3] 孙光福, 吴乐, 刘淇, 朱琛, 陈恩红.基于时序行为的协同过滤推荐算法.软件学报, 2013, 24(11): 2721-2733 http://cdmd.cnki.com.cn/Article/CDMD-10358-1014299735.htm

    Sun Guang-Fu, Wu Le, Liu Qi, Zhu Chen, Chen En-Hong. Recommendations based on collaborative filtering by exploiting sequential behaviors. Journal of Software, 2013, 24(11): 2721-2733 http://cdmd.cnki.com.cn/Article/CDMD-10358-1014299735.htm
    [4] Hernando A, Bobadilla J, Ortega F. A non negative matrix factorization for collaborative filtering recommender systems based on a Bayesian probabilistic model. Knowledge-Based Systems, 2016, 97: 188-202 doi: 10.1016/j.knosys.2015.12.018
    [5] Lv G, Hu C L, Chen S B. Research on recommender system based on ontology and genetic algorithm. Neurocomputing, 2016, 187: 92-97 doi: 10.1016/j.neucom.2015.09.113
    [6] Mashal I, Alsaryrah O, Chung T Y. Performance evaluation of recommendation algorithms on internet of things services. Physica A: Statistical Mechanics and its Applications, 2016, 451: 646-656 doi: 10.1016/j.physa.2016.01.051
    [7] Zhang J, Peng Q K, Sun S Q, Liu C. Collaborative filtering recommendation algorithm based on user preference derived from item domain features. Physica A: Statistical Mechanics and its Applications, 2014, 396: 66-76 doi: 10.1016/j.physa.2013.11.013
    [8] Kim H N, Ji A T, Ha I, Jo G S. Collaborative filtering based on collaborative tagging for enhancing the quality of recommendation. Electronic Commerce Research and Applications, 2010, 9(1): 73-83 doi: 10.1016/j.elerap.2009.08.004
    [9] 李聪, 骆志刚.基于数据非随机缺失机制的推荐系统托攻击探测.自动化学报, 2013, 39(10): 1681-1690 http://www.aas.net.cn/CN/abstract/abstract18205.shtml

    Li Cong, Luo Zhi-Gang. Detecting shilling attacks in recommender systems based on non-random-missing mechanism. Acta Automatica Sinica, 2013, 39(10): 1681-1690 http://www.aas.net.cn/CN/abstract/abstract18205.shtml
    [10] 冷亚军, 梁昌勇, 丁勇, 陆青.协同过滤中一种有效的最近邻选择方法.模式识别与人工智能, 2013, 26(10): 968-974 doi: 10.3969/j.issn.1003-6059.2013.10.009

    Leng Ya-Jun, Liang Chang-Yong, Ding Yong, Lu Qing. Method of neighborhood formation in collaborative filtering. Pattern Recognition and Artificial Intelligence, 2013, 26(10): 968-974 doi: 10.3969/j.issn.1003-6059.2013.10.009
    [11] 邓爱林, 朱扬勇, 施伯乐.基于项目评分预测的协同过滤推荐算法.软件学报, 2003, 14(9): 1621-1628 http://cdmd.cnki.com.cn/Article/CDMD-10663-1016757098.htm

    Deng Ai-Lin, Zhu Yang-Yong, Shi Bo-Le. A collaborative filtering recommendation algorithm based on item rating prediction. Journal of Software, 2013, 14(9): 1621-1628 http://cdmd.cnki.com.cn/Article/CDMD-10663-1016757098.htm
    [12] Xu R Z, Wang S Q, Zheng X W, Chen Y N. Distributed collaborative filtering with singular ratings for large scale recommendation. Journal of Systems and Software, 2014, 95: 231-241 doi: 10.1016/j.jss.2014.04.045
    [13] 陈刚, 刘发升.基于BP神经网络的数据挖掘方法.计算机与现代化, 2006, (10): 20-22 doi: 10.3969/j.issn.1006-2475.2006.10.007

    Chen Gang, Liu Fa-Sheng. Method for data mining based on BP neural network. Computer and Modernization, 2006, (10): 20-22 doi: 10.3969/j.issn.1006-2475.2006.10.007
    [14] Jang S, Yang J, Kim D K. Minimum MSE design for multiuser MIMO relay. IEEE Communications Letters, 2010, 14(9): 812-814 doi: 10.1109/LCOMM.2010.072610.100583
    [15] Eldar Y C. Universal weighted MSE improvement of the least-squares estimator. IEEE Transactions on Signal Processing, 2008, 56(5): 1788-1800 doi: 10.1109/TSP.2007.913158
    [16] Kaleli C. An entropy-based neighbor selection approach for collaborative filtering. Knowledge-Based Systems, 2014, 56: 273-280 doi: 10.1016/j.knosys.2013.11.020
    [17] Zou D X, Gao L Q, Li S, Wu J H. Solving 0-1 knapsack problem by a novel global harmony search algorithm. Applied Soft Computing, 2011, 11(2): 1556-1564 doi: 10.1016/j.asoc.2010.07.019
    [18] 高建煌, 陈恩红, 刘淇.基于用户兴趣传播的协同过滤方法.电子技术, 2010, 47(6): 1-4 http://www.cnki.com.cn/Article/CJFDTOTAL-DZJS201006003.htm

    Gao Jian-Huang, Chen En-Hong, Liu Qi. User interests transmission based collaborative filtering approach. Electronic Technology, 2010, 47(6): 1-4 http://www.cnki.com.cn/Article/CJFDTOTAL-DZJS201006003.htm
    [19] Javari A, Gharibshah J, Jalili M. Recommender systems based on collaborative filtering and resource allocation. Social Network Analysis and Mining, 2014, 4: 234 doi: 10.1007/s13278-014-0234-0
    [20] Hu Y C. Recommendation using neighborhood methods with preference-relation-based similarity. Information Sciences, 2014, 284: 18-30 doi: 10.1016/j.ins.2014.06.043
    [21] Choi K, Suh Y. A new similarity function for selecting neighbors for each target item in collaborative filtering. Knowledge-Based Systems, 2013, 37: 146-153 doi: 10.1016/j.knosys.2012.07.019
    [22] 朱郁筱, 吕琳媛.推荐系统评价指标综述.电子科技大学学报, 2012, 41(2): 163-175 http://www.cnki.com.cn/Article/CJFDTOTAL-DKDX201202003.htm

    Zhu Yu-Xiao, Lv Lin-Yuan. Evaluation metrics for recommender systems. Journal of University of Electronic Science and Technology of China, 2012, 41(2): 163-175 http://www.cnki.com.cn/Article/CJFDTOTAL-DKDX201202003.htm
  • 期刊类型引用(17)

    1. 郑建兴,李沁文,王素格,李德玉. 融合属性偏好和多阶交互信息的可解释评分预测研究. 自动化学报. 2024(11): 2231-2244 . 本站查看
    2. 马鑫,王芳. 融合类目偏好和数据场聚类的协同过滤推荐算法研究. 现代情报. 2023(01): 6-18 . 百度学术
    3. 吴金荣,胡建华,宋燕,沈春根. 无向高维稀疏网络的深度潜在因子模型. 小型微型计算机系统. 2023(07): 1375-1381 . 百度学术
    4. 张彬,董雅倩,徐建民. 基于蕴含情感要素用户正负偏好的电影推荐方法. 河北大学学报(自然科学版). 2023(06): 653-664 . 百度学术
    5. 苏凯,张萱,付静. 基于项目属性聚类及相似度优化的协同过滤算法. 海军工程大学学报. 2022(02): 20-26 . 百度学术
    6. 戴兴,刘永坚,解庆,刘平峰. 基于特征权重与情感偏好的可解释推荐. 计算机工程与设计. 2022(08): 2130-2136 . 百度学术
    7. 刘佳耀,王佳斌. Slope One算法的改进及其在大数据平台的实现. 计算机工程与应用. 2020(01): 83-91 . 百度学术
    8. 徐慧君,王忠,马丽萍,饶华,何承恩. 改进Mini Batch K-Means时间权重推荐算法. 计算机工程. 2020(03): 73-78+86 . 百度学术
    9. 王留芳,刘镇镇,魏蓝,吴正江. 基于双因子混合加权相似度的协同过滤推荐算法. 河南理工大学学报(自然科学版). 2020(06): 133-138 . 百度学术
    10. 李征,段垒. 基于用户兴趣评分填充的改进混合推荐方法. 工程科学与技术. 2019(01): 189-196 . 百度学术
    11. 冯永,陈以刚,强保华. 融合社交因素和评论文本卷积网络模型的汽车推荐研究. 自动化学报. 2019(03): 518-529 . 本站查看
    12. 杨文龙,肖程望. 一种具有自适应动量因子的BP神经网络算法实现. 计算机与数字工程. 2019(05): 1199-1202+1269 . 百度学术
    13. 邝神芬,黄业文,宋杰,李洽. 基于深度矩阵分解网络的矩阵填充方法. 计算机科学. 2019(10): 55-62 . 百度学术
    14. 王剑,余青松. 关联性动态加权的协同过滤推荐. 计算机应用研究. 2019(11): 3230-3232+3249 . 百度学术
    15. 叶莉,吴春明,强保华,谢武. 基于矩阵填充与改进PSO算法的多标准协同过滤. 计算机工程. 2019(12): 176-181+200 . 百度学术
    16. 吴婷. 融合辅助文本信息的项目冷启动推荐研究. 现代计算机(专业版). 2018(13): 17-21 . 百度学术
    17. 李涛,符丁. 基于协同过滤算法的自动化隐式评分音乐双重推荐系统. 计算机测量与控制. 2018(11): 171-175 . 百度学术

    其他类型引用(31)

  • 加载中
  • 图(9)
    计量
    • 文章访问数:  2179
    • HTML全文浏览量:  413
    • PDF下载量:  839
    • 被引次数: 48
    出版历程
    • 收稿日期:  2016-09-08
    • 录用日期:  2017-01-16
    • 刊出日期:  2017-09-20

    目录

    /

    返回文章
    返回