首页> 中国专利> 一种把离线算法在线进行计算的方法及装置

一种把离线算法在线进行计算的方法及装置

摘要

本发明公开了一种把离线算法在线进行计算的方法及装置,属于互联网领域。所述方法包括:获取用户在第一时间段内操作的每个业务信息对应的历史记录,所述第一时间段为离当前最近且时长为预设时长的时间段;根据所述每个业务信息对应的历史记录,构建第一用户兴趣矩阵;根据所述第一用户兴趣矩阵,对保存的第二用户兴趣矩阵进行修正,得到第三用户兴趣矩阵;根据预设的业务信息矩阵和所述第三用户兴趣矩阵,计算出在线业务推荐矩阵。所述装置包括:获取模块、构建模块、修正模块和计算模块。本发明能够提高推荐业务信息的准确度。

著录项

  • 公开/公告号CN104090892A

    专利类型发明专利

  • 公开/公告日2014-10-08

    原文格式PDF

  • 申请/专利权人 深圳市腾讯计算机系统有限公司;

    申请/专利号CN201310688366.8

  • 发明设计人 罗如海;

    申请日2013-12-16

  • 分类号G06F17/30;

  • 代理机构北京三高永信知识产权代理有限责任公司;

  • 代理人关文魁

  • 地址 518000 广东省深圳市南山区高新区高新南一路飞亚达大厦5-10楼

  • 入库时间 2023-12-17 01:49:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-08

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20131216

    实质审查的生效

  • 2014-10-08

    公开

    公开

说明书

技术领域

本发明涉及互联网通信领域,特别涉及一种把离线算法在线进行计算的方 法及装置。

背景技术

目前,用户经常在网络上浏览不同类型的业务信息,如视频、广告和商品 信息等,服务器可以根据用户过去浏览的业务信息,预测用户当前可能感兴趣 的业务信息,并将预测的业务信息推荐给用户。

服务器推荐业务信息的过程如下所示:

服务器在离线的情况下,先获取用户离当前最近且时长为预设时长的时间 段内操作的每个业务信息对应的历史记录,该业务信息的对应的历史记录至少 包括该业务信息的标识,操作该业务信息的操作行为类型和操作该业务信息的 操作时间。根据每个业务信息对应的历史记录离线计算出该用户的用户兴趣矩 阵BK*N,用户兴趣矩阵BK*N的每一行对应业务信息的一种属性因子,每一列对 应一种操作行为,用户兴趣矩阵BK*N中的元素Bij表示该用户对属性因子i发生 操作行为j的兴趣值,并保存在离线情况下计算得到的用户的用户兴趣矩阵 BK*N。然后服务器每隔预设时长的时间,按上述方法离线计算该用户的用户兴趣 矩阵,并将保存的用户兴趣矩阵更新为新计算的用户兴趣矩阵。

当需要推荐业务信息给该用户时,获取预设的业务信息矩阵AM*K,业务信 息矩阵AM*K的每一行对应一个业务信息,每一列对应业务信息的一种属性因子, 业务信息矩阵AM*K中的元素Aij表示属性因子j在业务信息i中的权重。根据获 取的业务信息矩阵AM*K和保存的离线计算得到的该用户的用户兴趣矩阵BK*N, 计算出离线业务推荐矩阵WM*N,离线业务推荐矩阵WM*N的每一行对应一个业 务信息,每一列对应一种操作行为,离线业务推荐矩阵WM*N中的元素Wij表示 该用户对业务信息i发生操作行为j的兴趣程度。根据离线业务推荐矩阵WM*N获取用户发生操作行为的兴趣程度最大的几个业务信息,将获取的业务信息作 为用户当前可能感兴趣的业务信息并推荐给用户。

在实现本发明的过程中,发明人发现现有技术至少存在如下问题:

服务器每隔预设时长的时间更新一次该用户的用户兴趣矩阵,预设时长往 往为半个月或一个月等。而用户对业务信息的感兴趣程度是时刻变化的,如此 根据用户兴趣矩阵得到的离线业务推荐矩阵中包括的兴趣程度较大的业务信息 可能不是当前用户所感兴趣的业务信息,从而降低了推荐业务信息的准确度。

发明内容

为了提高推荐业务信息的准确度,本发明提供了一种把离线算法在线进行 计算的方法及装置。所述技术方案如下:

一种把离线算法在线进行计算的方法,所述方法包括:

获取用户在第一时间段内操作的每个业务信息对应的历史记录,所述第一 时间段为离当前最近且时长为预设时长的时间段;

根据所述每个业务信息对应的历史记录,构建第一用户兴趣矩阵;

根据所述第一用户兴趣矩阵,对保存离线计算得到的第二用户兴趣矩阵进 行修正,得到第三用户兴趣矩阵;

根据预设的业务信息矩阵和所述第三用户兴趣矩阵,计算出在线业务推荐 矩阵。

一种把离线算法在线进行计算的装置,所述装置包括:

获取模块,用于获取用户在第一时间段内操作的每个业务信息对应的历史 记录,所述第一时间段为离当前最近且时长为预设时长的时间段;

构建模块,用于根据所述每个业务信息对应的历史记录,构建第一用户兴 趣矩阵;

修正模块,用于根据所述第一用户兴趣矩阵,对保存离线计算得到的第二 用户兴趣矩阵进行修正,得到第三用户兴趣矩阵;

计算模块,用于根据预设的业务信息矩阵和所述第三用户兴趣矩阵,计算 出在线业务推荐矩阵。

在本发明实施例中,获取用户在第一时间段内操作的每个业务信息对应的 历史记录,第一时间段为离当前最近且时长为预设时长的时间段;根据每个业 务信息对应的历史记录,构建第一用户兴趣矩阵;根据第一用户兴趣矩阵,对 保存离线计算得到的第二用户兴趣矩阵进行修正,得到第三用户兴趣矩阵;根 据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务推荐矩阵。由于 根据用户在第一时间段内操作的每个业务信息对应的历史记录,构建了第一用 户兴趣矩阵,并利用第一用户兴趣矩阵,对保存离线计算得到的第二用户兴趣 矩阵进行修正,得到第三用户兴趣矩阵,如此根据第三用户兴趣矩阵得到的在 线业务推荐矩阵中包括的兴趣程度较大的业务信息更贴近用户当前感兴趣的业 务信息,从而提高了推荐业务信息的准确度。

附图说明

图1是本发明实施例1提供的一种把离线算法在线进行计算的流程图;

图2是本发明实施例2提供的一种把离线算法在线进行计算的流程图;

图3是本发明实施例3提供的一种把离线算法在线进行计算的装置结构示 意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。

实施例1

参见图1,本发明实施例提供了一种把离线算法在线进行计算的方法,包括:

步骤101:获取用户在第一时间段内操作的每个业务信息对应的历史记录, 第一时间段为离当前最近且时长为预设时长的时间段;

步骤102:根据每个业务信息对应的历史记录,构建第一用户兴趣矩阵;

步骤103:根据第一用户兴趣矩阵,对保存离线计算得到的第二用户兴趣矩 阵进行修正,得到第三用户兴趣矩阵;

步骤104:根据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务 推荐矩阵。

优选地,获取该用户在第一时间段内操作的每个业务信息对应的历史记录, 包括:

从该用户的历史记录文件中获取操作时间在第一时间段内的业务信息对应 的历史记录;

如果获取的业务信息对应的历史记录的数目大于预设个数,则从获取的业 务信息对应的历史记录中获取操作时间离当前最近的预设个数个业务信息对应 的历史记录。

进一步地,获取该用户在第一时间段内操作的每个业务信息对应的历史记 录,还包括:

如果获取的业务信息对应的历史记录的数目小于或等于预设个数,则选择 获取的每个业务信息对应的历史记录。

优选地,根据每个业务信息对应的历史记录,构建第一用户兴趣矩阵,包 括:

根据每个业务信息对应的历史记录构建业务行为矩阵,业务行为矩阵的每 一行对应一个业务信息,每一列对应一种操作行为,业务行为矩阵中的元素表 示该用户对业务信息发生操作行为的次数;

从预设的业务信息矩阵中获取每个业务信息对应的一行记录并组成第一业 务信息矩阵;

根据业务行为矩阵和第一业务信息矩阵,获取第一用户兴趣矩阵。

优选地,根据业务行为矩阵和第一业务信息矩阵,获取第一用户兴趣矩阵, 包括:

根据每个业务信息对应的历史记录,分别计算每个业务信息对应的时间相 关系数;

在第一业务信息矩阵中将每个业务信息对应的一行记录分别与每个业务信 息对应的时间相关系数相乘,得到第二业务信息矩阵;

根据第二业务信息矩阵的转置矩阵和业务行为矩阵,计算第一用户兴趣矩 阵。

优选地,根据第二业务信息矩阵的转置矩阵和业务行为矩阵,计算第一用 户兴趣矩阵,包括:

根据第二业务信息矩阵的转置矩阵和业务行为矩阵,按如下所示的公式 (1),计算第一用户兴趣矩阵;

B1K*N=(RX*KT*FX*N……(1)

在公式(1)中,B1K*N为第一用户兴趣矩阵,第一用户兴趣矩阵B1K*N的行 数为K以及列数为N;(RX*KT为第二业务兴趣矩阵RX*K的转置矩阵,第二业 务兴趣矩阵RX*K的行数为X以及列数为K;FX*N为业务行为矩阵,业务行为矩 阵FX*N的行数为X以及列数为N。

优选地,根据第一用户兴趣矩阵,对保存的离线计算得到的第二用户兴趣 矩阵进行修正,得到第三用户兴趣矩阵,包括:

根据第一用户兴趣矩阵和第二用户矩阵,按如下所示的公式(2),计算第 三用户兴趣矩阵;

B2K*N=BK*N+B1K*N……(2)

在公式(2)中,B2K*N为第三用户兴趣矩阵,第三用户兴趣矩阵B2K*N的行 数为K以及列数为N;BK*N为第二用户兴趣矩阵,第二用户兴趣矩阵BK*N的行 数为K以及列数为N。

优选地,根据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务 推荐矩阵,包括:

确定预设的业务信息矩阵包括的列数,构建一个对角矩阵,对角矩阵的行 数和列数与确定的列数相等,以及对角矩阵中的对角线上的元素都为预设数值;

根据预设的业务信息矩阵、对角矩阵和第三用户兴趣矩阵,计算在线业务 推荐矩阵。

优选地,根据预设的业务信息矩阵、对角矩阵和第三用户兴趣矩阵,计算 在线业务推荐矩阵,包括:

根据预设的业务信息矩阵、对角矩阵和第三用户兴趣矩阵,按照如下所示 的公式(3),计算在线业务推荐矩阵;

WM*N=AM*K*CK*K*B2K*N……(3)

在公式(3)中,WM*N为在线业务推荐矩阵,在线业务推荐矩阵WM*N的行 数为M以及列数为N;AM*K为业务信息矩阵,业务信息矩阵AM*K的行数为M 以及列数为K;CK*K为对角矩阵,对角矩阵CK*K的行数和列数都为K。

进一步地,该方法还包括:

对于在线业务推荐矩阵中包括的每个业务信息对应的一行记录,根据记录 中包括的该用户对业务信息发生每种操作行为的兴趣程度和每种操作行为对应 的权重系数,计算出该用户对业务信息发生操作行为的总兴趣程度。

在本发明实施例中,获取用户在第一时间段内操作的每个业务信息对应的 历史记录,第一时间段为离当前最近且时长为预设时长的时间段;根据每个业 务信息对应的历史记录,构建第一用户兴趣矩阵;根据第一用户兴趣矩阵,对 保存离线计算得到的第二用户兴趣矩阵进行修正,得到第三用户兴趣矩阵;根 据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务推荐矩阵。由于 根据用户在第一时间段内操作的每个业务信息对应的历史记录,构建了第一用 户兴趣矩阵,并利用第一用户兴趣矩阵,对保存离线计算得到的第二用户兴趣 矩阵进行修正,得到第三用户兴趣矩阵,如此根据第三用户兴趣矩阵得到的在 线业务推荐矩阵中包括的兴趣程度较大的业务信息更贴近用户当前感兴趣的业 务信息,从而提高了推荐业务信息的准确度。

实施例2

本发明实施例提供了一种把离线算法在线进行计算的方法。

当服务器需要推荐业务信息给用户时,服务器根据通过本发明实施例提供 的方法获取在线业务推荐矩阵,然后再根据在线业务推荐矩阵推荐业务信息给 用户。

参见图2,该方法具体包括:

步骤201:获取用户在第一时间段内操作的每个业务信息对应的历史记录, 第一时间段为离当前最近且时长为预设时长的时间段;

其中,业务信息可以为视频、广告或商品信息等不同信息类型的信息,在 此就不一一举例。当用户操作一个业务信息时,例如,当用户观看、点击或收 藏一个业务信息时,服务器会将该业务信息的标识、该用户操作该业务信息的 操作行为类型和操作该业务信息的操作时间组成一条历史记录,并将该条历史 记录保存在该用户的历史记录文件中。操作行为类型包括观看、点击或收藏等。 预设时长可以为半个小时、十分钟或两分钟等。

本步骤具体为,从该用户的历史记录文件中获取操作时间在第一时间段内 的业务信息对应的历史记录;如果获取的业务信息对应的历史记录的数目大于 预设个数,则从获取的业务信息对应的历史记录中选择操作时间离当前最近的 预设个数个业务信息对应的历史记录;例如,预设个数可以为15、20或30等 数值,假设,获取的业务信息对应的历史记录的数目为30,且预设个数为20, 从获取的30个业务信息对应的历史记录中选择操作时间离当前最近的20个业 务信息对应的历史记录。如果获取的业务信息对应的历史记录的数目小于或等 于预设个数,则选择获取的每个业务信息对应的历史记录,假设,获取的业务 信息对应的历史记录的数目为15,且预设个数为20,选择获取的15个业务信 息对应的历史记录。

步骤202:根据每个业务信息对应的历史记录,构建业务行为矩阵;

其中,对于每个业务信息,根据该业务信息的历史记录,计算出用户对该 业务信息发生每种操作行为的次数,将用户对该业务信息发生每种操作行为的 次数组成该业务信息对应的一行记录,按上述方式得到每个业务信息对应的一 行记录,并将每个业务信息对应的一行记录组成业务行为矩阵FX*N,且组成的 业务行为矩阵FX*N如下所示。

业务行为矩阵FX*N的每一行对应一个业务信息,每一列对应一种操作行为, X为业务行为矩阵FX*N包括的行数且与获取的业务信息的数目相等,N为业务 行为矩阵FX*N包括的列数且与操作行为的数目相等,业务行为矩阵中FX*N的元 素Fij表示用户对业务信息i发生操作行为j的次数。例如,如下所示的业务行为 矩阵FX*N,业务行为矩阵FX*N的第一行对应业务信息1,第二行对应业务信息 2,……,第X行对应业务信息X,业务行为矩阵FX*N的第一列对应操作行为1, 第二列对应操作行为2,……,第N列对应操作行为N,业务行为矩阵FX*N的 元素F11表示用户对业务信息1发生操作行为1的次数,元素F12表示用户对业 务信息1发生操作行为2的次数,……,元素FXN表示用户对业务信息X发生 操作行为N的次数。

FX*N=F11F12...F1NF21F22...F2N............FX1FX2...FXN

步骤203:从预设的业务信息矩阵中获取每个业务信息对应的一行记录并组 成第一业务信息矩阵;

事先预设如下所示的业务信息矩阵AM*K,业务信息矩阵AM*K中的每一行对 应服务器中存储的一个业务信息,业务信息矩阵AM*K的每一列对应业务信息的 一种属性因子,业务信息矩阵AM*K中的元素Aij表示属性因子j在业务信息i中 的权重。

例如,服务器中存储有业务信息1、2、……、M,业务信息的属性因子包 括属性因子1、2、……、K。在业务信息矩阵AM*K中,第一行对应业务信息1, 第二行对应业务信息2,……,第M行对应业务信息M,以及,第一列对应属 性因子1,第二列对应属性因子2,……,第K列对应属性因子K,业务信息矩 阵AM*K的元素A11表示属性因子1在业务信息1中的权重,元素A12表示属性 因子2在业务信息1中的权重,……,元素AKN表示属性因子N在业务信息K 中的权重。

AM*K=A11A12...A1KA21A22...A2K............AX1AX2...AXK............AM1AM2...AMK

其中,每一种业务信息都对应多种属性因子,且对于不同信息类型的业务 信息对应的属性因子不同,例如视频对应的属性因子可以为恐怖、悬疑和言情 等,广告对应的属性因子可以为汽车、房产和图书等,商品信息对应的属性因 子可以为服装、食品和家具等,在此就不一一举例。

假设步骤201获取了该用户在第一时间段内操作的x个业务信息,从预设 的业务信息矩阵AM*K中获取这x个业务信息中的每个业务信息对应的一行记录 组成如下所示的第一业务信息矩阵SX*K

SX*K=A11A12...A1KA21A22...A2K............AX1AX2...AXK

步骤204:根据业务行为矩阵和第一业务信息矩阵,获取第一用户兴趣矩阵;

具体地,根据每个业务信息对应的历史记录,分别计算每个业务信息对应 的时间相关系数;在第一业务信息矩阵中将每个业务信息对应的一行记录分别 与每个业务信息对应的时间相关系数相乘,得到第二业务信息矩阵;根据第二 业务信息矩阵的转置矩阵和业务行为矩阵,计算第一用户兴趣矩阵。

例如,根据业务信息1对应的历史记录包括的该用户操作业务信息1的操 作行为类型和操作业务信息1的操作时间,通过时间衰减算法计算出业务信息1 对应的时间相关系数β1,在第一业务信息矩阵SX*K中,将业务信息1对应的第 一行记录乘上业务信息1对应的时间相关系数β1。对于这X个业务信息中的其 他每个业务信息都同业务信息1按照上述操作,计算出业务信息2对应的时间 相关系数β2,业务信息3对应的时间相关系数β3,……,业务信息X对应的 时间相关系数βX,以及,在第一业务信息矩阵SX*K中,将业务信息2对应的第 二行记录乘上业务信息2对应的时间相关系数β2,将业务信息3对应的第三行 记录乘上业务信息3对应的时间相关系数β3,……,将业务信息X对应的第X 行记录乘上业务信息X对应的时间相关系数βX,得到如下所示的第二业务信息 矩阵RX*K

RX*K=β1A11β1A12...β1A1Kβ2A21β2A22...β2A2K............βXAX1βXAX2...βXAXK

获取第二业务信息矩阵RX*K的转置矩阵,如下所示:

(RX*K)T=β1A11β2A21...βXAX1β1A12β2A22...βXAX2............β1A1Kβ2A2K...βXAXK

根据第二业务信息矩阵RX*K的转置矩阵(RX*KT和业务行为矩阵FX*N,计 算出如下所示的第一用户兴趣矩阵B1K*N,第一用户兴趣矩阵B1K*N的每一行对 应业务信息的一种属性因子,每一列对应一种操作行为,第一用户兴趣矩阵B1K*N中的元素B1ij表示该用户对属性因子i发生操作行为j的兴趣值。例如,在第一 用户兴趣矩阵B1K*N中,第一用户兴趣矩阵B1K*N的第一行对应属性因子1,第 二行对应属性因子2,……,第K行对应属性因子K,第一用户兴趣矩阵B1K*N的第一列对应操作行为1,第二列对应操作行为2,……,第N列对应操作行 为N,以及,第一用户兴趣矩阵B1K*N的元素B111表示该用户对属性因子1发 生操作行为1的兴趣值,元素B112表示该用户对属性因子1发生操作行为2的 兴趣值,元素B11N表示该用户对属性因子1发生操作行为N的兴趣值,……, 元素B1KN表示该用户对属性因子K发生操作行为N的兴趣值。

B1K*N=(RX*K)T*FX*N=B111B121...B1N1B211B221...B2N1............BK11BK21...BKN1

步骤204:根据第一用户兴趣矩阵,对保存的离线计算得到的第二用户兴趣 矩阵进行修正,得到第三用户兴趣矩阵;

其中,服务器中保存了如下所示的第二用户兴趣矩阵BK*N,第二用户兴趣 矩阵BK*N为服务器周期性地根据用户在一个周期内操作的每个业务信息对应的 历史记录离线计算得到的,且第二用户兴趣矩阵对应周期的起始时刻早于第一 时间段的起始时刻。第二用户兴趣矩阵BK*N的每一行对应业务信息的一种属性 因子,每一列对应一种操作行为,第二用户兴趣矩阵BK*N中的元素Bij表示该用 户对属性因子i发生操作行为j的兴趣值,例如,在第二用户兴趣矩阵BK*N中, 第二用户兴趣矩阵BK*N的第一行对应属性因子1,第二行对应属性因子2,……, 第K行对应属性因子K,第二用户兴趣矩阵BK*N的第一列对应操作行为1,第 二列对应操作行为2,……,第N列对应操作行为N,以及,第二用户兴趣矩 阵BK*N的元素B11表示该用户对属性因子1发生操作行为1的兴趣值,元素B12表示该用户对属性因子1发生操作行为2的兴趣值,元素B1N表示该用户对属性 因子1发生操作行为N的兴趣值,……,元素BKN表示该用户对属性因子K发 生操作行为N的兴趣值。

BK*N=B11B12...B1NB21B22...B2N............BK1BK2...BKN

根据第一用户兴趣矩阵B1K*N,对保存的离线计算得到的第二用户兴趣矩阵 BK*N进行修正,得到如下所示的第三用户兴趣矩阵B2K*N,第三用户兴趣矩阵 B2K*N的每一行对应业务信息的一种属性因子,每一列对应一种操作行为,第三 用户兴趣矩阵B2K*N中的元素B2ij表示该用户对属性因子i发生操作行为j的兴 趣值,例如,在第三用户兴趣矩阵B2K*N中,第三用户兴趣矩阵B2K*N的第一行 对应属性因子1,第二行对应属性因子2,……,第K行对应属性因子K,第 三用户兴趣矩阵B2K*N的第一列对应操作行为1,第二列对应操作行为2,……, 第N列对应操作行为N,以及,第三用户兴趣矩阵B2K*N的元素B211表示该用户 对属性因子1发生操作行为1的兴趣值,元素B212表示该用户对属性因子1发 生操作行为2的兴趣值,元素B21N表示该用户对属性因子1发生操作行为N的 兴趣值,……,元素B2KN表示该用户对属性因子K发生操作行为N的兴趣值。

B2K*N=BK*N+B1K*N=B112B122...B1N2B212B222...B2N2............BK12BK22...BKN2

进一步地,在计算第三用户兴趣矩阵B2K*N之前,还可以对第二用户兴趣矩 阵乘上一个预设数值,以缩小第二用户兴趣矩阵,该预设数值可以为小于1的 正数,如0.1、0.5或0.7等。

步骤205:根据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务 推荐矩阵。

具体地,获取已存储的预设的业务信息矩阵AM*K,确定出预设的业务信息 矩阵AM*K包括的列数K,构建如下所示的对角矩阵CK*K,该对角矩阵CK*K的 行数和列数都为K,以及对角矩阵CK*K中的对角线上的元素都为预设数值(对 角线上的元素C11、C22、…、CKK都为预先设置好的数值)。

CK*K=C110...00C22..0............00...CKK

根据该对角矩阵CK*K、第三用户兴趣矩阵B2K*N和获取的业务信息矩阵 AM*K,计算出如下所示的在线业务推荐矩阵WM*N,在线业务推荐矩阵WM*N的 每一行对应一个业务信息,每一列对应一种操作行为,在线业务推荐矩阵WM*N中的元素Wij表示该用户对业务信息i发生操作行为j的兴趣程度。例如,在线 业务推荐矩阵WM*N的第一行对应业务信息1,第二行对应业务信息2,……, 第M行对应业务信息M,在线业务推荐矩阵WM*N的第一列对应操作行为1, 第二列对应操作行为2,……,第N列对应操作行为N,以及,在线业务推荐 矩阵WM*N的元素W11表示该用户对业务信息1发生操作行为1的兴趣程度,元 5素W12表示该用户对业务信息1发生操作行为2的兴趣程度,元素W1N表示该 用户对业务信息1发生操作行为N的兴趣程度,……,元素WMN表示该用户对 业务信息M发生操作行为N的兴趣程度。

WM*N=AM*K*CK*K*B2K*N=W11W12...W1NW21W22...W2N............WM1WM2...WMN

进一步地,根据在线业务推荐矩阵WM*N,将该用户可能感兴趣的业务信息 推荐给该用户,具体可以为:

从用户的历史记录文件中获取用户已操作的业务信息,从在线业务推荐矩 阵WM*N中过滤掉用户已操作的每个业务信息对应的一行记录。对于过滤后的在 线业务推荐矩阵WM*N中包括的每一个业务信息,根据该业务信息对应的一行记 录中包括的用户对该业务信息发生每种操作行为对应的兴趣程度和每种操作行 为的权重系数,通过预设的算法计算出该用户对该业务信息发送操作行为的总 兴趣度。

例如,假设该业务信息为业务信息i,且业务信息i对应的一行记录为[Wi1, Wi2,……,WiN]。根据业务信息i对应的一行记录中包括的用户对业务信息i 发生每种操作行为的兴趣程度和每种操作行为的权重系数可以通过如下所示的 公式(1)计算出该用户对业务信息i发生操作行为的总兴趣度Wi

Wi1*Wi12*Wi2+……+ωN*WiN……(1)

其中,ω1为操作行为1的权重系数,ω2为操作行为2的权重系数,……, ωN操作行为N的权重系数。

其中,对于过滤后的在线业务推荐矩阵WM*N包括的每个业务信息,同业务 信息i一样按照上述操作计算出该用户对每个业务信息发生操作行为的总兴趣 度,然后将每个业务信息按照总兴趣度从大到小的顺序进行排序。从排序后的 在线业务推荐矩阵WM*N包括的第一个业务信息开始,获取预设数目个业务信 息,将获取的预设数目个业务信息确定为用户可能感兴趣的业务信息,然后将 这些业务信息发送给该用户对应的终端。

进一步地,在步骤205中,还可以先获取用户已操作的业务信息,从预设 的业务信息矩阵中过滤掉用户已操作的每个业务信息对应的一行记录,再根据 过滤后的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务推荐矩阵。

在本发明实施例中,获取用户在第一时间段内操作的每个业务信息对应的 历史记录,第一时间段为离当前最近且时长为预设时长的时间段;根据每个业 务信息对应的历史记录,构建第一用户兴趣矩阵;根据第一用户兴趣矩阵,对 保存离线计算得到的第二用户兴趣矩阵进行修正,得到第三用户兴趣矩阵;根 据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务推荐矩阵。由于 根据用户在第一时间段内操作的每个业务信息对应的历史记录,构建了第一用 户兴趣矩阵,并利用第一用户兴趣矩阵,对保存离线计算得到的第二用户兴趣 矩阵进行修正,得到第三用户兴趣矩阵,如此根据第三用户兴趣矩阵得到的在 线业务推荐矩阵中包括的兴趣程度较大的业务信息更贴近用户当前感兴趣的业 务信息,从而提高了推荐业务信息的准确度。

实施例3

参见图3,本发明实施例提供了一种把离线算法在线进行计算的装置,包括:

获取模块301,用于获取该用户在第一时间段内操作的每个业务信息对应的 历史记录,第一时间段为离当前最近且时长为预设时长的时间段;

构建模块302,用于根据每个业务信息对应的历史记录,构建第一用户兴趣 矩阵;

修正模块303,用于根据第一用户兴趣矩阵,对保存离线计算得到的第二用 户兴趣矩阵进行修正,得到第三用户兴趣矩阵;

计算模块304,用于根据预设的业务信息矩阵和第三用户兴趣矩阵,计算出 在线业务推荐矩阵。

其中,获取模块301包括:

第一获取单元,用于从该用户的历史记录文件中获取操作时间在第一时间 段内的业务信息对应的历史记录;

第二获取单元,用于如果获取的业务信息对应的历史记录的数目大于预设 个数,则从获取的业务信息对应的历史记录中获取操作时间离当前最近的预设 个数个业务信息对应的历史记录。

其中,获取模块301,还用于如果获取的业务信息对应的历史记录的数目小 于或等于预设个数,则选择获取的每个业务信息对应的历史记录。

其中,构建模块302包括:

构建单元,用于根据每个业务信息对应的历史记录构建业务行为矩阵,业 务行为矩阵的每一行对应一个业务信息,每一列对应一种操作行为,业务行为 矩阵中的元素表示该用户对业务信息发生操作行为的次数;

获取组成单元,用于从预设的业务信息矩阵中获取每个业务信息对应的一 行记录并组成第一业务信息矩阵;

第三获取单元,用于根据业务行为矩阵和第一业务信息矩阵,获取第一用 户兴趣矩阵。

其中,第三获取单元包括:

第一计算子单元,用于根据每个业务信息对应的历史记录,分别计算每个 业务信息对应的时间相关系数;

第二计算子单元,用于在第一业务信息矩阵中将每个业务信息对应的一行 记录分别与每个业务信息对应的时间相关系数相乘,得到第二业务信息矩阵;

第三计算子单元,用于根据第二业务信息矩阵的转置矩阵和业务行为矩阵, 计算第一用户兴趣矩阵。

其中,第三计算子单元具体用于根据第二业务信息矩阵的转置矩阵和业务 行为矩阵,按如下所示的公式(1),计算第一用户兴趣矩阵;

B1K*N=(RX*KT*FX*N……(1)

在公式(1)中,B1K*N为第一用户兴趣矩阵,第一用户兴趣矩阵B1K*N的行 数为K以及列数为N;(RX*KT为第二业务兴趣矩阵RX*K的转置矩阵,所述第 二业务兴趣矩阵RX*K的行数为X以及列数为K;FX*N为业务行为矩阵,业务行 为矩阵FX*N的行数为X以及列数为N。

其中,修正模块303,包括:

第一计算单元,用于根据第一用户兴趣矩阵和第二用户矩阵,按如下所示 的公式(2),计算第三用户兴趣矩阵;

B2K*N=BK*N+B1K*N……(2)

在公式(2)中,B2K*N为第三用户兴趣矩阵,第三用户兴趣矩阵B2K*N的行 数为K以及列数为N;BK*N为第二用户兴趣矩阵,第二用户兴趣矩阵BK*N的行 数为K以及列数为N。

其中,计算模块304,包括:

第二构建单元,用于确定预设的业务信息矩阵包括的列数,构建一个对角 矩阵,对角矩阵的行数和列数与确定的列数相等,以及对角矩阵中的对角线上 的元素都为预设数值;

第二计算单元,用于根据预设的业务信息矩阵、对角矩阵和第三用户兴趣 矩阵,计算在线业务推荐矩阵。

其中,第二计算单元,包括:

第四计算子单元,用于根据根据预设的业务信息矩阵、对角矩阵和第三用 户兴趣矩阵,按照如下所示的公式(3),计算在线业务推荐矩阵;

WM*N=AM*K*CK*K*B2K*N……(3)

在公式(3)中,WM*N为在线业务推荐矩阵,在线业务推荐矩阵WM*N的行 数为M以及列数为N;AM*K为业务信息矩阵,业务信息矩阵AM*K的行数为M 以及列数为K;CK*K为对角矩阵,对角矩阵CK*K的行数和列数都为N。

进一步地,该装置,还用于对于在线业务推荐矩阵中包括的每个业务信息 对应的一行记录,根据记录中包括的该用户对业务信息发生每种操作行为的兴 趣程度和每种操作行为对应的权重系数,计算出用户对业务信息发生操作行为 的总兴趣程度。

在本发明实施例中,获取用户在第一时间段内操作的每个业务信息对应的 历史记录,第一时间段为离当前最近且时长为预设时长的时间段;根据每个业 务信息对应的历史记录,构建第一用户兴趣矩阵;根据第一用户兴趣矩阵,对 保存离线计算得到的第二用户兴趣矩阵进行修正,得到第三用户兴趣矩阵;根 据预设的业务信息矩阵和第三用户兴趣矩阵,计算出在线业务推荐矩阵。由于 根据用户在第一时间段内操作的每个业务信息对应的历史记录,构建了第一用 户兴趣矩阵,并利用第一用户兴趣矩阵,对保存离线计算得到的第二用户兴趣 矩阵进行修正,得到第三用户兴趣矩阵,如此根据第三用户兴趣矩阵得到的在 线业务推荐矩阵中包括的兴趣程度较大的业务信息更贴近用户当前感兴趣的业 务信息,从而提高了推荐业务信息的准确度。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过 硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于 一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或 光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号