向社交网络中的用户推荐信息的方法和装置 技术领域 本发明的各实施方式涉及数据处理, 并且更具体地, 涉及一种用于基于计算机网 络的社交网络中的用户推荐信息的方法、 装置和相关计算机程序产品。
背景技术 随着计算机技术、 通信技术以及各种其他多媒体传输技术的发展, 信息提供方式 变得愈加多种多样。由此, 信息提供者 ( 诸如, 广告商、 新闻提供商、 制造商等 ) 开始以各种 方式向潜在受众提供信息, 例如, 通过计算机网络、 电视网络、 广播网络等向公众发布信息 ; 向特定接收者发送电子邮件、 彩信、 短信 ; 还可以直接通过固定电话或者移动电话进行电话 推广。 普通受众开始关注于, 如何管理其所获得的各种信息, 并且向其他可能需要这些信息 的人员推荐有用的信息。
对于信息的普通受众而言, 人们通常采用人工方式向其他人推荐信息。 例如, 一个 用户通过因特网接收到来自其他用户的电子邮件, 而该邮件中包括例如 IBM 的软件产品的
信息, 当该用户希望向其他好友提供这些新产品的信息时, 他 / 她通常需要从通信录中选 择其他用户的邮件地址以向期望的用户转发该邮件。又例如, 如果同一用户在社交网站中 发现某个用户发表或者转载了关于 IBM 的硬件产品的技术文章, 则该用户可以在该社交网 站中选择向不同的用户转帖关于 IBM 的硬件产品的技术文章, 或者还可以选择向全部其他 用户转帖。
可见, 用户可以以各种方式接收到信息, 而用户又可以采用与其接收信息相同或 者不同的方式向其他用户推荐信息。 因而以人工方式管理推荐信息是一项耗时并且复杂的 劳动, 用户必须考虑多方面的因素 : 向谁提供信息、 提供什么信息、 以何种方式提供、 是否需 要基于其他用户的偏好来主动搜索其感兴趣的信息, 等等。对于每天阅览少量信息并且仅 具有几个或者十几个好友的用户而言, 还有可能实现人工推荐信息。当用户处于一个庞大 的社交网络中、 并且每天面临大量信息的情况下, 采用人工方式向其他人员推荐信息则变 得力不从心。
在真实世界中, 一个用户可以具有多方面的属性, 例如, 年龄、 性别、 住址、 毕业学 校、 职业、 爱好等, 这些方面的特征都会影响用户所感兴趣的信息类型, 同时用户还希望以 多种方式 ( 例如, 通过网站内部消息、 电子邮件、 短信服务、 即时消息、 彩信服务、 寻呼服务 甚至直接使用语音电话的方式 ) 向其他用户提供信息。
目前, 已经出现了可以便于一个用户向其他用户共享特定信息的方式 ( 例如, 通 过 “群组” 方式 ), 一个用户可以向其所处的群组中的其他用户快速共享自己获得的某些信 息。 另外, 用户还可能跨越多个社交网站参加了多个群组, 或者希望向该多个群组中的用户 推荐信息。 本领域技术人员可知, 群组是针对特定社交网站而言的, 在群组的用户之间共享 信息的基础是, 这些用户是相同社交网站的注册用户 ( 例如, 网络社区或者即时聊天工具 等 ), 因而才能享有该社交网站提供的群组服务。发明内容 发明人发现, 上文所述的群组存在诸多缺点。 首先, 用户难以跨越多个社交网站而 向其所参与的多个社交网站中的群组推荐信息 ; 另外, 如果用户希望向群组以外的其他多 个人员推荐信息, 也必须逐个发送推荐消息。尽管群组在一定程度上有助于一个社交网站 中的用户向其他用户推荐信息, 然而目前需要解决的问题是, 如何跨越传统的社交网站, 更 加方便、 快捷并且通过多种通信方式来向其他人员推荐信息。现有技术的方法对此无能为 力。
因而迫切需要提供一种方法或装置, 以便以方便、 快捷的方式来向其他人员推荐 信息 ; 并且还希望能够以多种通信方式来推荐信息。
根据本发明的一个实施方式, 提供了一种用于方便计算机社交网络中的用户推荐 信息的方法。该方法包括为用户构造包括至少一个二元组的推荐列表, 其中每个二元组包 括目标用户名和信息项。 该方法还包括以推荐列表中的二元组为基本单元, 排序推荐列表, 以便用户通过选择其中的二元组, 向目标用户名表示的用户推荐对应的信息项。
根据本发明的另一实施方式, 其中排序所述推荐列表包括 : 计算所述推荐列表中 的每个二元组的得分 ; 以及基于所述得分, 对所述推荐列表中的二元组进行排序。
根据本发明的另一实施方式, 提供了一种用于方便计算机社交网络中的用户向其 他用户推荐信息的装置。该装置包括构造器, 用于为用户构造包括至少一个二元组的推荐 列表, 其中每个二元组包括目标用户名和信息项。 该装置还包括排列器, 用于以推荐列表中 的二元组为基本单元, 排序推荐列表, 以便用户通过选择其中的二元组, 向目标用户名表示 的用户推荐对应的信息项。
根据本发明的另一实施方式, 其中所述排列器包括 : 计算器, 用于计算所述推荐列 表中的每个二元组的得分 ; 以及排序器, 用于基于所述得分, 对所述推荐列表中的二元组进 行排序。
利用本发明的各实施方式, 可以在包括但不限于单一社交网站的社交网络中, 为 用户提供一种方便快捷地向其他用户推荐信息的方法、 装置和计算机程序产品。
附图说明 结合附图并参考以下详细说明, 本发明各实施方式的特征、 优点及其他方面将变 得更加明显, 在附图中 :
图 1 示意性示出了根据一种技术方案的向社交网络中的用户推荐信息的方法 ;
图 2 示意性示出了根据本发明一个实施方式的向社交网络中的用户推荐信息的 方法 ;
图 3 示意性示出了根据本发明一个实施方式的方法的流程图, 其中示出了向社交 网络中的用户推荐信息的过程 ;
图 4 示意性示出了根据本发明另一实施方式的方法的流程图, 其中示出了向社交 网络中的用户推荐信息的备选过程 ;
图 5 示意性示出了根据本发明另一实施方式的、 为用户构造推荐列表的方法的流 程图 ;
图 6A 至图 6C 示意性示出了根据本发明一个实施方式的、 显示推荐列表的不同模
式; 以及
图 7 示意性示出了根据本发明一个实施方式的、 向社交网络中的用户推荐信息的装置。 具体实施方式
附图中的流程图和框图, 图示了按照本发明各种实施例的系统、 方法和计算机程 序产品的可能实现的体系架构、 功能和操作。 在这点上, 流程图或框图中的每个方框可以代 表一个模块、 程序段、 或代码的一部分, 所述模块、 程序段、 或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。 也应当注意, 在有些作为替换的实现中, 方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如, 两个接连地表示的方框实际 上可以基本并行地执行, 它们有时也可以按相反的顺序执行, 这依所涉及的功能而定。 也要 注意的是, 框图和 / 或流程图中的每个方框、 以及框图和 / 或流程图中的方框的组合, 可以 用执行规定的功能或操作的专用的基于硬件的系统来实现, 或者可以用专用硬件与计算机 指令的组合来实现。
图 1 示意性示出了根据一种技术方案的向社交网络中的用户推荐信息的方法 100。应当注意, 根据本发明的实施方式, 社交网络 130 并不局限于常规的社交网站, 而是可 以包括但不限于社交网站的社交网络、 即时消息工具的社交网络、 移动通信工具的社交网 络、 固定电话的社交网络、 甚至虚拟世界中的社交网络及其组合。 也即本实施方式中的社交 网络 130 是能够以任何通信方式互相联系的用户所构成的网络的整体。而所述通信方式包 括但不限于通过网站内部消息、 电子邮件、 短信服务、 即时消息、 寻呼服务、 彩信服务甚至直 接使用语音电话的方式。 另外, 根据本发明的一个实施方式, 图 1 所示的信息全集 110 可以是能够由社交网 络 130 中的用户以视觉、 听觉、 触觉等方式感知的各种媒体信息, 包括但不限于文本、 图像、 音频以及视频等格式的信息。
应当注意, 尽管在一般情况下当前用户仅指向自己以外的其他用户推荐信息, 然 而本发明并不排除向自己推荐信息的情况。由于当前用户也是社交网络的用户, 并具有符 合社交网络中用户名命名规范的用户名称, 因而当前用户向自己推荐信息的方式也是类似 的。
如图 1 所示, 社交网络 130 可以包括众多用户, 例如用户 1、 用户 2、 用户 3、 ...、 用 户 N。 例如以用户 1 作为当前用户的示例, 向社交网络 130 中的用户推荐信息的方法可以概 括如下。用户 1 可以任何方式接收到来自不同来源的信息, 例如 : 接收到关于 IBM 的最新硬 件产品的电子邮件 ( 信息 1), 并希望向自己的同事 ( 例如, 用户 2 和用户 3) 转发该电子邮 件; 在社交网站内的 “大学同学” 群组中接收到同学聚会的消息 ( 信息 2), 并希望向不在该 群组中的其他大学同学 ( 例如, 用户 2) 转发 ( 例如, 通过电子邮件或者短信方式 ) ; 在某摄 影论坛看到一篇摄影技巧的文章 ( 信息 3), 并希望向自己认识的全部摄影爱好者 ( 例如, 用 户 N) 转发该文章。
在上述示例中, 用户 1 向社交网络 130 中的用户推荐信息过程如下。如图 1 中箭 头 A、 B 和 C 所示, 用户 1 希望分别向用户 2、 用户 3、 用户 N 提供不同的信息子集 1、 2 和 3。 如下文表 1A、 表 1B 和表 1C 分别示意性示出了用户 1 向其他目标用户提供的信息子集 1、 2
和 3 的内容。
表 1A 向用户 2 提供的信息子集
信息 关于 IBM 的最新硬件产品的 电子邮件 ( 信息 1) 同学聚会的消息 ( 信息 2)
信息 关于 IBM 的最新硬件产品的 电子邮件 ( 信息 1)
信息 摄影技巧的文章 ( 信息 3)
表 1B 向用户 3 提供的信息子集表 1C 向用户 N 提供的信息子集可见, 用户 1 希望向不同用户提供不同信息子集。在上述仅有 4 个用户、 3 个信息 的示意性示例中, 情况已经非常复杂。本领域技术人员可以想象, 当用户 1 每天接收到数十 甚至上百条信息 ( 例如, M 条信息 ), 并且希望向数十甚至更多的好友 ( 例如, N 个好友 ) 执 行推荐时, 需要比较每条信息和每个好友的内容 (M×N 次比较 ), 以确定是否需要向该好友 转发该信息, 这一工作量将非常巨大。 在人工推荐信息的方式下, 用户很容易因为繁琐的操 作而放弃向好友提供信息, 而使得好友不能很好地得到信息共享, 还可能使得很多重要信 息没有到达目标用户, 例如一种优秀产品可能因推广不利而导致销售欠佳。由此, 迫切需要一种用于基于计算机网络的社交网络中的用户推荐信息的方法, 并期望该方法可以便于用户方便、 快捷并且准确地向期望的用户推荐信息。
在本发明的一个实施方式中, 用户构造包括至少一个二元组的推荐列表, 其中每 个二元组包括目标用户名和信息项。 另外, 以每个二元组为基本单元, 对推荐列表中的二元 组进行排序, 以供该用户向目标用户名表示的用户推荐对应的信息项时作为参考。
图 2 示意性示出了根据本发明一个实施方式的向社交网络中的用户推荐信息的 方法 200。 根据方法 200, 为当前用户构造包括二元组的推荐列表 230, 其中每个二元组包括 目标用户名和信息项。例如, 二元组可以是 ( 目标用户名, 信息项 ) 的形式。通过采用二元 组构造推荐列表的方法, 向当前用户显示一个推荐列表, 当前用户仅需从列表中选择期望 的二元组, 即可自动向目标用户发送相应的信息项。此时, 用户不必人工确定 “向谁提供什 么信息” , 也无需逐一转发这些信息。 而是只要简单的鼠标选取操作即可以大大简化用户手 工操作的复杂度。
此外, 在构造推荐列表时, 可以将每个二元组作为一个原子对象, 对二元组进行排 序, 从而便于当前用户选择推荐价值较高的二元组进行推荐。 由此, 在方便当前用户推荐的 同时, 提高推荐的准确度。
现在参考图 2 描述根据本发明的一个实施方式的方法 200。 如图 2 所示, 可以从信 息全集 110 中过滤得出一部分有价值的信息, 以建立信息子集 212( 如箭头 A 所示 )。应当 注意, 设置该过滤步骤的原因在于, 社交网络中的每个用户每天都会收到大量信息, 这些信 息中包括部分有用的信息, 同时还可能包括大量的垃圾信息 ( 例如, 垃圾广告、 不良信息甚 至诈骗信息 )。此时, 有必要基于当前用户的设置来过滤掉这些无用信息, 实现 “去粗取精、 去伪存真” 的目的, 进而仅针对有效信息进行下一步的推荐操作。
当前用户还可以从自己的好友全集 210 中提取好友子集 214( 如箭头 B 所示 ), 例 如, 将与自己关系密切的家人和同学等作为好友子集 214 的成员, 而排除客户和上级等类 型的用户, 以避免推荐信息打扰这些用户。
根据本发明的实施方式, 还可以忽略箭头 A 所示的过滤步骤以及箭头 B 所示的提 取步骤, 或者采用其他方式控制生成推荐列表中二元组的数量。
特征库 220 中保存了与推荐列表 230 中的二元组相关联的内容, 包括但不限于 : 信 息项与当前用户的匹配度、 信息项与目标用户的匹配度、 目标用户与用户的密切程度等。 应 当注意, 特征库 220 中的特征是针对二元组的特征, 当排序推荐列表一即对推荐列表中的 二元组进行排序时, 基于每个二元组的特征来计算二元组的得分并排序。可以提供统一的 特征库 220, 还可以针对每个当前用户提供自己的特征库 220, 并由每个用户单独维护各自 的特征库, 例如, 可以添加新特征、 删除不希望的特征、 或者修改特征值等。 如箭头 C 所示, 示出了基于特征库 220、 信息子集 212 以及好友子集 214 构造推荐 列表 230 的过程。推荐列表 230 由包含目标用户名和信息项的二元组构成, 每个二元组可 表达为 < 目标用户名 >< 信息项 >。对于上文中图 1 所示的具体示例, 针对当前用户 1 构造 得出的推荐列表 230 可以如下表 2 所示, 此时当前用户 1 仅需选择期望的二元组, 即可自动 向相应的目标用户提供关联的信息项, 而无需向每个用户逐条提供信息。
表 2 推荐列表
目标用户名 用户 2 用户 2 用户 3 用户 N
信息项 信息 1 信息 2 信息 1 信息 3此外, 可以根据特征库 220 中的特征来计算推荐列表 230 中的每个二元组的得分, 进而排序该推荐列表。 在一个实施方式中, 排序后的推荐列表中, 排序靠前的二元组具有较 高得分 ( 例如表示具有较高的推荐概率 ), 排序靠后的二元组具有较低得分 ( 例如表示具有 较低推荐概率 )。根据本发明的一个实施方式, 可以根据设置仅显示排名前 10 的二元组,或者显示推荐概率大于 50%的二元组。当选定推荐列表 230 中的二元组后, 就按该二元组 的内容向相应目标用户 ( 例如目标用户 1、 目标用户 2、 ...、 目标用户 N) 发送相关联的信息 项。
采用上述方法推荐信息, 至少存在如下优点 : 1) 用户仅需选择二元组, 可以实现 方便快捷地发送信息, 而无需用户逐个手工发送信息 ; 2) 经过排序的推荐列表是基于二元 组的各方面特征的总得分进行排序的, 综合考虑了 “向谁推荐什么信息” 的推荐概率, 因而 可以根据总体评分准确地向特定用户推荐其最感兴趣的信息 ; 3) 通过过滤信息和提取好 友子集的步骤, 在受信的用户之间推荐可靠的信息, 从而更大程度地避免了垃圾信息的传 播。
图 3 示意性示出了根据本发明一个实施方式的方法的流程图, 其中示出了向社交 网络中的用户推荐信息的过程 300。 根据本发明的一个实施方式, 公开了一种便于基于计算 机网络的社交网络中的用户推荐信息的方法。在步骤 S302 中, 首先为用户构造包括至少一 个二元组的推荐列表, 其中每个二元组包括目标用户名和信息项。
根据本发明的一个实施方式, 可以将好友全集中的每个用户与信息全集中的每个 信息进行组合, 以形成推荐列表中的一个二元组。 还可以从好友全集过滤得出好友子集, 从 信息全集过滤得出信息子集, 并利用好友子集和信息子集构造推荐列表的候选空间。 例如, 推荐列表是基于包括 N 个用户的用户集合和包括 M 个信息的信息集合来构建, 则可以形成 包括 (N×M) 个二元组的推荐列表。根据本发明的实施方式, 本领域技术人员还可以设置其 他参数, 以控制在推荐列表中包括多少二元组、 以及包括哪些二元组。 根据本发明的实施方 式, 还可以为相同用户构造不同的二元组, 以便提供以不同方式 ( 例如, 电子邮件、 短信服 务等 ) 发送推荐信息的候选。
应当注意, 尽管上文的实施方式中仅示出了由二元组 ( 目标用户名, 信息项 ) 构成 推荐列表的具体示例, 还可以采用例如三元组、 四元组等多元组构建推荐列表, 只要该多元 组中包括 “目标用户名” 和 “信息项” 的数据即可。例如, 三元组可以是 ( 目标用户名, 信息 项, 信息提供方式 ), 其中信息提供方式表示以何种方式向目标用户提供信息, 包括但不限 于, 网站内部消息、 电子邮件、 短信服务、 即时消息、 寻呼服务以及彩信服务等。在备选实施 方式中, 信息提供方式还可以隐含在二元组的 “目标用户名” 项中, 例如, 当 “目标用户名” 的 内容是 “Alan@***.com” 时, 则默认采用电子邮件提供信息。
又例如, 尽管上文的实施方式中采用了二元组的形式, 然而本领域技术人员可知, 在针对当前用户以二元组构造推荐列表的过程中, 还隐含了 “当前用户” 的含义。因而, 一 个备选方式可以利用三元组构造推荐列表, 也即三元组 ( 目标用户名, 信息项, 当前用户 )。 该三元组的实际含义等同于上文所述的二元组。在本说明书的启示下, 本领域技术人员还 可以以其他多元组的方式构造推荐列表。
在步骤 S304 中, 以推荐列表中的二元组为基本单元, 排序所述推荐列表, 以便所 述用户通过选择其中的二元组, 向目标用户名表示的用户推荐对应的信息项。这里的基本 单元的含义是不可分割的最小单位或单元, 以每个二元组为基本单元, 排序推荐列表, 就是 将推荐列表中的二元组 ( 目标用户名, 信息项 ) 作为不可分割的最小排序单位进行排序。 其 中用于排序的得分也是基于二元组自身来计算的。 可以以推荐概率由高至低的方式排序推 荐列表, 以便于用户选择推荐概率较高的推荐信息。图 4 示意性示出了根据本发明另一实施方式的方法的流程图, 其中示出了向社交 网络中的用户推荐信息的备选过程 400。应当注意, 图 4 中的步骤 S402 类似于前文针对图 3 所述的步骤 S302。在步骤 S402 中, 为用户构造包括至少一个二元组的推荐列表, 其中每 个二元组包括目标用户名和信息项。
步骤 S404 和 S406 进一步示出了对步骤 S402 中所得出的推荐列表进行排序的具 体步骤。在步骤 S404 中, 计算推荐列表中的每个二元组的得分。二元组的得分是针对该二 元组的推荐概率的总体表示, 二元组的得分越高, 则向当前用户指示, 该二元组中的目标用 户与该二元组中的信息项的总体适合度越大, 也即当前用户选择推荐的概率也越大。应当 注意, 尽管在此所述的得分可以表示推荐概率的含义, 然而并不限于仅以 [0, 1] 区间中的 实数来表示得分 ; 而是根据不同的计算公式, 得分的取值范围可以是任意实数空间。 在步骤 S406 中, 基于所述得分, 对所述推荐列表中的至少一个二元组进行排序。
图 5 示意性示出了根据本发明另一实施方式的、 为用户构造推荐列表的方法的流 程图 500。在步骤 S502 中, 从信息全集 110 过滤得出信息子集 212。前文已经指出过, 该过 滤步骤有助于过滤掉重要程度较低的信息 ( 例如垃圾信息 ), 提高推荐信息的可用性。 在步 骤 S504 中, 从好友全集 210 提取好友子集 214。提取好友子集可以便于仅向当前用户认为 重要的用户推荐信息。 根据一个实施方式, 当前用户可以设置过滤规则和提取规则, 还可以 在运行过程中增加、 删除或者修改这些规则。在步骤 S506 中, 在信息子集和好友子集的基 础上, 为用户构造包括至少一个二元组的推荐列表。 根据本发明的实施方式, 针对二元组计算的得分可以涉及诸多方面。 例如, 可以涉 及目标用户相关联的属性 ( 如, 年龄、 性别、 住址、 毕业学校、 职业、 爱好等 ), 可以涉及与信 息项相关联的属性 ( 如, 信息项中的关键字等 ), 还可以涉及与当前用户相关联的属性 ( 如, 年龄、 性别、 住址、 毕业学校、 职业、 爱好等 ), 或者涉及以上属性的结合。根据本发明的实施 方式, 特征可以与二元组直接关联, 也可以与二元组间接地关联。
将可能涉及的当前用户向二元组中的目标用户推荐相应信息项的概率或因素称 为二元组的特征, 一个二元组可以具有多个特征, 并且每个特征可以对应于不同特征值。 例 如, 可以将二元组中的目标用户与信息项的匹配度作为一个特征。 例如, 目标用户的爱好中 包括 “钢琴” , 而信息项的标题中恰好包括关键字 “钢琴” , 则可以对该特征赋予较高的特征 值。根据本发明的其他实施方式, 还可以设置其他特征值, 在下文中将详细描述。
根据本发明的一个实施方式, 计算推荐列表中的每个二元组的得分包括 : 计算每 个二元组的每个特征的特征值, 并且将每个特征的特征值进行加权求和作为二元组的得 分。二元组的每个特征, 表示了可能影响该二元组的得分的一方面因素。多方面的因素对 于总体得分的影响不同, 因而可以根据用户或者系统的定制而设置不同的权重。最后对各 个特征值进行加权求和, 以作为二元组的整体得分。
根据本发明的一个实施方式, 特征可以包括目标用户对以往推荐的信息项的反 馈。在本发明的一个实施方式中, 反馈并不是与二元组中的目标用户名或者信息项的属性 直接关联, 而是表示目标用户对当前用户以往推荐的信息项的历史评价。 例如, 可以为社交 网络中的每个用户设置用于存储反馈的数据结构。 用户在接收到由其他用户推荐的信息项 时, 可以基于自己对该信息项是否感兴趣而做出评价, 并将评价用作反馈。 用于存储反馈的 数据结构可以置于特征库中, 或者置于社交网络中的任何位置, 只要在针对反馈的特征值
进行加权求和时能够获取反馈相关的数据即可。
目标用户对于历史推荐信息的反馈可以表示 : 目标用户是否读取了当前用户先前 曾经推荐过的信息项, 或对这些信息项的感兴趣程度。 目标用户读取的信息项数量越多, 则 表示目标用户对当前用户所推荐信息的感兴趣程度越高。如果目标用户拒绝阅读当前用 户推荐的大部分甚至全部信息项, 则认为目标用户对当前用户以往推荐的信息项并不感兴 趣, 从而认为目标用户今后很可能不希望接收来自该当前用户的其他推荐。下文将进一步 说明如何获得和使用目标用户对推荐信息项的反馈的更详细的实施方式。
根据一个实施方式, 可以简单地采用 “是 / 否” 的方式表示目标用户是否读取当前 用户以往推荐的信息项, 并且采用 “已读取信息项的数量 / 推荐信息项总数” 的比例作为反 馈。比例越高, 则认为目标用户越喜欢当前用户的推荐。备选地, 还可以针对目标用户对所 推荐信息是否感兴趣设置评分等级, 例如, 5 表示非常感兴趣, 0 表示完全不感兴趣, 并且以 评分的函数作为反馈。根据一个实施方式, 反馈可以表示目标用户对于信息项的推荐者的 信任程度。根据一个实施方式, 可以将反馈分为正 / 负反馈, 正反馈表示目标用户对于推荐 信息感兴趣, 进而表示信任推荐者 ; 而负反馈表示目标用户对推荐信息不感兴趣, 从而指示 不信任推荐者, 在负反馈达到一定阈值时, 还可以阻止接收来自该推荐者的推荐。 本领域技 术人员可以根据自己的经验而设置不同的反馈方式。 根据本发明的一个实施方式, 特征包括以下至少一个 : 信息项与用户的匹配度、 信 息项与目标用户的匹配度、 目标用户与用户的密切程度。信息项与用户的匹配度表示该信 息项与该用户之间关联关系的高低, 例如可以通过用户的各种属性与信息项中的关键字是 否匹配来判断, 用户属性例如可以包括年龄、 性别、 住址、 毕业学校、 职业、 爱好等。例如, 用 户的毕业学校为 “北京大学” , 并且在该用户接收到的信息项中存在标题中包括 “北京大学” 的新闻, 则可以认为该用户与该信息项具有较高的匹配度 ; 又例如, 某目标用户的爱好中包 括 “钢琴” , 而某信息项中频繁出现关键字 “钢琴” , 则可以认为该目标用户与该信息项具有 较高匹配度。
当在社交网络中存在大量用户和大量信息时, 逐一将用户属性与信息进行关键字 匹配无疑将工作量巨大。 根据本发明的一个实施方式, 可以分别获取用户和信息的聚类, 并 基于聚类来计算匹配度, 这可以大大降低计算量。 例如采用以下步骤 : 获取与所述信息项关 联的信息全集的聚类、 所述用户的聚类和所述目标用户的聚类 ; 其中所述信息项与所述用 户的匹配度是基于所述信息全集的聚类和所述用户的聚类计算的, 所述信息项与所述目标 用户的匹配度是基于所述信息全集的聚类和所述目标用户的聚类计算的。
获取信息、 用户以及目标用户的聚类目的在于, 将海量数据划分为典型分类, 并在 后续操作中仅需针对这些典型分类进行比较即可。例如, 社交网络中的可以存在数百万的 用户, 而每个用户又可以具有数十个特定属性。可以基于用户的属性将这些用户划分为若 干聚类, 例如, { 钢琴、 北京大学, ...} ; 同时还可以将信息划分为若干聚类, 例如, { 钢琴、 北 京大学, IBM 硬件产品, ...}。此时, 可以将用户聚类 “钢琴” 与信息聚类 “钢琴” 进行比较 以确定用户与信息的匹配度, 而无需将每个用户与每个信息逐一进行比较, 从而大大降低 了计算量。
在下文中, 将以具体实例方式说明在基于计算机网络的社交网络中, 用户向社交 网络中的用户推荐信息的方法。例如, 计算推荐列表中的每个二元组得分的公式如下 :
11102316046 A CN 102316051
说< 公式 1>明书9/16 页其中 k 表示特征的数目, 为大于或等于 1 的自然数, wi 表示第 i 个特征的权重, 而 xi 表示第 i 个特征的值。
假设存在信息项 info1 和 info2, 存在用户 u1、 u2 和 u3。例如, 通过上文所述的基 于关键词的匹配或者基于聚类的匹配, 得出信息项与用户的匹配度如表 3 所示。
表 3 信息项与用户的匹配度
匹配度 u1 u2 u3
info1 0.3 0.5 0 info2 0.4 0.2 0.5应当注意, 由于目标用户也是社交网络中的用户, 因而信息项与目标用户的匹配 度也可以从表 3 中查出。目标用户和当前用户仅仅是用户在推荐关系中所处位置不同的不 同称呼, 例如针对用户 u1, 当该用户 u1 是作为推荐人向其他用户推荐信息时, 则将其称为 当前用户 ; 而当该用户 u1 是作为被推荐人 ( 例如, 其他用户向用户 u1 推荐信息 ) 时, 则该 用户 u1 被称为目标用户。
根据本发明的一个实施方式, 特征还可以包括目标用户与用户的密切程度。该密 切程度至少可以涉及以下之一 : 目标用户与用户之间的通信频度、 通信时长、 好友群的重叠 程度、 兴趣的重叠程度以及信任程度。可以认为, 目标用户与用户之间的通信频度越高、 通 信时长越长、 好友群的重叠程度越高、 兴趣的重叠程度越高, 信任程度越高, 则两者之间的 密切程度越高。并且可以实时地更新密切程度, 以便先前操作的历史数据可以对后续计算 二元组的总得分产生影响。在表 4 中示出了根据一个实施方式的目标用户与用户之间密切 程度的示例。 注意, 由于默认一个用户不会向自己推荐信息, 因而将用户与自身之间的密切 程度设置为 “0” ; 或者, 如果当前用户希望在向其他用户推荐信息的同时, 也向自己 “抄送” 被推荐的信息, 则可以将该密切度设置为 “1” 或其他值。应当注意, 可以特别标注当前用户 向自己 “抄送” 的推荐信息, 以区别于当前用户通过常规方式接收到的信息。另外, 密切程 度可以是一个用户针对自己与另一用户之间密切关系的评价, 因而用户 u2 与 u1 之间的密 切程度是用户 u2 作出的自己与 u1 之间密切程度的评价, 而用户 u1 与 u2 之间的密切程度 是用户 u1 作出的自己与 u2 之间密切程度的评价, 这两个密切程度可以相同或者不同。
表 4 用户之间的密切程度
密切程度 u1 u2 u1 0 0.1 u2 0.3 0 u3 0.8 0.212102316046 A CN 102316051 u3
1说明书0.2 010/16 页应当注意, 在表 3 和表 4 中所示出的匹配度和密切程度的数值仅仅是示意性的, 本 领域技术人员应当理解, 在具体实现本发明时还可以基于特定需求设置其他数值。在本示 例中, 尽管采用了区间 [0, 1] 之间的实数表示匹配度和密切程度, 本领域技术人员还可以 采用其他区间中的数值, 只要数值的大小反映匹配度和密切程度的高低即可。 应当注意, 根 据本发明的实施方式, 每个特征的权重仅表示各特征对于总得分贡献的相对大小, 全部权 重的总和不必等于 1。
在本发明的一个实施方式中, 当包括 3 个特征, 即信息项与用户的匹配度、 信息项 与目标用户的匹配度、 目标用户与用户的密切程度时, 根据上文的 < 公式 1>, 可以计算得出 针对每个当前用户 u1、 u2 和 u3 的推荐列表中的二元组的得分。下面的表 5A, 在表 3 和表 4 的基础上, 示出了当前用户为 u1 时的推荐列表中二元组的得分 :
表 5A 针对用户 u1 的推荐列表及二元组的得分
特征 信息项与 当前用户 的匹配度 0.1 0.3 0.4 0.3 0.4 信息项与 目标用户 的匹配度 0.2 0.5 0.2 0 0.5 目标用户 与用户的 密切程度 0.5 0.3 0.3 0.8 0.8 0.28 0.23 0.43 0.54 得分权重 (u2, info1) (u2, info2) (u3, info1) (u3, info2)
其中, 例如二元组 (u2, info1) 的得分是利用上文所述的加权求和公式 < 公式 1> 计算得出的, 即:
(u2, info1) 的得分
= 0.1×0.3( 信息项 info1 与当前用户 u1 的匹配度的权重 × 特征值 )
+0.2×0.5( 信息项 info1 与目标用户 u2 的匹配度的权重 × 特征值 )
+0.5×0.3( 目标用户 u2 与用户 u1 的密切程度的权重 × 特征值 )
= 0.28
类似地, 可以得出如下的表 5B 和表 5C, 它们分别示出了当前用户为 u2 和 u3 时的 推荐列表中二元组的得分 :
表 5B 针对用户 u2 的推荐列表及二元组的得分
13102316046 A CN 102316051 特征说信息项与 当前用户 的匹配度 0.1 0.5 0.2 0.5 0.2明书目标用户 与用户的 密切程度 0.5 0.2 0.2 0.1 0.1 0.15 0.22 0.16 0.15 得分11/16 页信息项与 目标用户 的匹配度 0.2 0 0.5 0.3 0.4权重 (u3, info1) (u3, info2) (u1, info1) (u1, info2)
特征表 5C 针对用户 u3 的推荐列表及二元组的得分信息项与 当前用户 的匹配度 0.1 0 0.5 0 0.5 信息项与 目标用户 的匹配度 0.2 0.3 0.4 0.5 0.2 目标用户 与用户的 密切程度 0.5 1 1 0.2 0.2 0.56 0.63 0.2 0.19 得分权重 (u1, info1) (u1, info2) (u2, info1) (u2, info2)
根据本发明的一个实施方式, 还可以采用三元组, 例如 ( 当前用户名, 目标用户 名, 信息项 ) 表示推荐列表中的元素, 还可以针对可能出现的所有三元组构造总体表, 示出 每种可能的推荐组合的得分和排序, 如表 5D 所示。
表 5D 推荐列表总表及三元组的得分
特征 信息项与 当前用户 的匹配度 0.1 0.3 0.4 信息项与 目标用户 的匹配度 0.2 0.5 0.2 目标用户 与用户的 密切程度 0.5 0.3 0.3 0.28 0.23 5 6 得 分 排 名权重 (u1, u2, info1) (u1, u2, info2)14102316046 A CN 102316051 (u1, u3, info1) (u1, u3, info2) (u2, u3, info1) (u2, u3, info2) (u2, u1, info1) (u2, u1, info2) (u3, u1, info1) (u3, u1, info2) (u3, u2, info1) (u3, u2, info2)
0.3 0.4 0.5 0.2 0.5 0.2 0 0.5 0 0.5说明0 0.5 0 0.5 0.3 0.4 0.3 0.4 0.5 0.2书0.8 0.8 0.2 0.2 0.1 0.1 1 1 0.2 0.2 0.43 0.54 0.15 0.22 0.16 0.15 0.56 0.63 0.2 0.19 4 312/16 页11 7 10 12 2 1 8 9尽管表 5A 至表 5D 中示出了各个特征、 得分或者排名的详细信息, 根据本发明的一 个实施方式, 可以仅向当前用户显示 ( 例如, 以停靠窗口或者浮动窗口的形式 ) 排序后的二 元组, 以便在较小空间内显示推荐列表供当前用户选择。
根据本发明的一个实施方式, 在运行一段时间之后, 可以在特征中纳入用户的反 馈。备选地, 可以在方法初始时即设置反馈数据表 ( 例如, 初始数据为 0), 并且在后续运行 中, 逐渐填入用户之间的反馈数据。表 6 中示出了根据本发明的一个实施方式的反馈数据 表, 该表 6 示出了目标用户对于当前用户的推荐信息的反馈, 其中反馈的数值可以采用上 文所述的方式计算, 或者由本领域技术人员采用其他方式计算。尽管表 6 采用了区间 [0, 1] 之间的实数表示反馈, 本领域技术人员还可以采用其他区间的数值, 只要数值的大小反 映目标用户对发出推荐信息的用户所推荐信息的感兴趣程度, 或者反映目标用户对发出推 荐信息的用户的信任程度即可。
表 6 反馈数据表
反馈 u1 u2 u3
u1 0 0.5 0.4 u2 0.2 0 0.8 u3 0.9 0 0根据本发明的一个实施方式, 可以采用 4 个特征值, 即信息项与用户的匹配度、 信 息项与目标用户的匹配度、 目标用户与用户的密切程度以及目标用户对以往推荐信息的反馈作为特征值。表 7 示出了此时的推荐列表总表及三元组的得分。
表 7 推荐列表总表及三元组的得分
特征 信息项与 当前用户 的匹配度 信息项 与目标 用户的 匹配度 0.2 0.5 0.2 0 0.5 0 0.5 0.3 0.4 0.3 0.4 0.5 0.2 目标用户 与用户的 密切程度 反馈 得分 排 名权重 (u1, u2, info1) (u1, u2, info2) (u1, u3, info1) (u1, u3, info2) (u2, u3, info1) (u2, u3, info2) (u2, u1, info1) (u2, u1, info2) (u3, u1, info1) (u3, u1, info2) (u3, u2, info1) (u3, u2, info2)
0.1 0.3 0.4 0.3 0.4 0.5 0.2 0.5 0.2 0 0.5 0 0.50.5 0.3 0.3 0.8 0.8 0.2 0.2 0.1 0.1 1 1 0.2 0.20.2 0.2 0.2 0.9 0.9 0 0 0.5 0.5 0.4 0.4 0.8 0.8 0.32 0.27 0.61 0.72 0.15 0.22 0.26 0.25 0.64 0.71 0.36 0.35 7 8 4 1 12 11 9 10 3 2 5 6在上文的实施方式中, 示出了在包括特定特征和特征值的情况下所构造的推荐列 表及相应二元组或三元组的得分。 应当注意, 根据本发明的实施方式, 可以根据需要任意选 择特征, 并基于所选择的特征而将特征值加权求和以计算二元组或三元组的总得分 ; 可以 根据需要为各特征设置不同的权重 ; 可以根据配置为各特征设置相应的特征值。
应当注意, 尽管表 5D 和表 7 示出的推荐列表中包括三元组, 本领域技术人员易于 理解, 该三元组包括针对当前用户构造的二元组的信息, 也即, 在三元组中将构造二元组时 隐含的 “当前用户” 显示地加入三元组中。此外, 针对特定的当前用户, 本领域技术人员可 以方便地从如表 5D 和表 7 所示的推荐列表总表中提取得出针对某个特定当前用户的推荐 列表。
根据本发明的一个实施方式, 响应于接收到对推荐列表中的二元组的选择, 向二元组中的目标用户提供二元组中的信息项。 由于可以采用例如网站内部消息、 电子邮件、 短 信服务、 即时消息、 寻呼消息以及彩信服务等多种方式提供信息, 可能出现目标用户的用户 设备并不支持原始信息类型的情况。例如用户看到一篇 pdf 格式的文章, 并希望以彩信方 式向移动电话发送该信息, 然而本领域技术人员知道, 彩信服务并支持传输 pdf 格式的数 据。
由此, 根据本发明的一个实施方式, 在提供信息之前, 可选地可以包括数据转换步 骤, 以便将信息项转换为传输方式支持的格式, 和 / 或将信息项转换为目标用户的用户设 备支持的格式 / 分辨率。例如, 可以将 pdf 格式的信息项转换为图片格式, 并以彩信方式 向移动终端发送 ; 可以提取 html 网页格式的信息中的文本部分, 以短信方式向移动终端发 送; 可以将分辨率为 1600×1200 的图片信息转换为 400×300 的较低分辨率, 并向移动终端 发送 ; 等等。
图 6A 至图 6C 示意性示出了根据本发明一个实施方式的、 显示推荐列表的不同模 式。图 6A 以得分从高至低的方式示出了排序列表中的各个二元组。图 6B 和图 6C 示出了 其他显示模式, 其中当用户选定二元组中的一个元素时, 可以进一步仅显示包括该元素的 二元组, 而不显示其他二元组。如图 6B 示出了用户选定 “目标用户 4” 时的显示界面, 目标 用户 4 对应于信息 3 和信息 4 两个信息项, 信息 3 在信息 4 前面显示, 这表示信息 3 所处的 二元组的得分较高。如图 6C 示出了用户选定 “信息 1” 时的情况, 信息 1 对应于目标用户 1 和目标用户 2, 目标用户 1 处于靠前的位置, 这表示目标用户 1 所处的二元组得分较高, 换言 之, 向目标用户 1 推荐信息 1 的概率高于向目标用户 2 推荐信息的概率。
根据本发明的其他实施方式, 本领域技术人员还可以自己定制显示推荐列表的方 式, 可以设置仅显示排名前 10 位或者前 20 位的二元组, 可以仅显示得分高于特定阈值的二 元组, 还可以向推荐列表中人工添加新的二元组。例如, 当前用户发现目标用户 1 很可能对 信息 3 感兴趣, 然而推荐列表中并不包括 ( 目标用户 1, 信息 3) 的二元组, 则当前用户可以 手工添加该二元组, 并在后续选中该二元组来进行推荐。
根据本发明的一个实施方式, 对于实时变化的信息 ( 例如, 股市行情、 交通信息、 天气预报等 ), 可以响应于当前用户选定推荐列表中的二元组, 在特定时间或者以特定间隔 自动向目标用户发送推荐信息。例如, 当前用户已知目标用户 1 十分关注天气信息, 则可以 选中二元组 ( 目标用户 1, 天气预报 ), 并且进一步设置在每天早晚 8 点分别向目标用户 1 发送最新的天气预报。 根据本发明的一个实施方式, 当前用户还可以响应于预定事件, 而向 特定用户推荐信息。 例如, 若当前用户可以实时获取某股票的信息, 则该当前用户可以设置 在当股价高于特定价格时, 向目标用户 1、 目标用户 2 等发送股价信息。
根据本发明的一个实施方式, 当前用户可以是普通个人用户或者广告商等信息推 广人员。如果当前用户向其他用户推荐的信息项是相关于某产品时, 当前用户例如还可以 从该产品的制造商或广告商处获得积分或者其他奖励。 此时如果当前用户为获取积分而向 全部其他用户乱发垃圾广告时, 由于本发明的实施方式中提供了 “反馈” 机制, 而使得目标 用户可以通过给出 “负反馈” 而阻止接收来自该当前用户的推荐信息, 从而抑制广告泛滥。
根据本发明的一个实施方式, 二元组中的各特征的特征值是动态计算的, 还可以 动态调整各特征值的权重。
根据本发明的一个实施方式, 所述信息项并不局限于当前用户基于计算机网络或者其他通信网络获取的信息, 还可以是当前用户自己编写的信息, 例如, 博客更新、 聚会通 知等。 根据本发明的一个实施方式, 所述信息项可以是推荐信息本身, 还可以是获取推荐信 息的链接地址, 例如推荐信息的下载地址或者推荐信息所处网页的 URL 等。根据本发明的 一个实施方式, 为加强获取推荐信息的安全性, 还可以为推荐信息设置密码等。例如, 以电 子邮件方式给出推荐信息的下载地址, 同时以短信方式发送下载密码等。
图 7 示意性示出了根据本发明一个实施方式的、 向社交网络中的用户推荐信息的 装置 700。如图 7 所示, 过滤器 712 用于从信息全集过滤得出信息子集, 而提取器 714 用于 从好友全集提取好友子集。设置过滤器 712 和提取器 714 的目的在于缩小推荐列表中的二 元组 ( 其中每个二元组包括目标用户名和信息项 ) 的候选空间, 避免推荐范围过大造成提 供垃圾信息, 并且可以更有针对性地准确地向目标用户推荐其最感兴趣的信息。 构造器 716 接收来自过滤器 712 的信息子集、 以及来自提取器 714 的好友子集, 以便构造推荐列表。
计算器 722 用于计算推荐列表中的每个二元组的得分, 也即, 计算每个二元组的 每个特征的特征值, 并且将每个特征的特征值进行加权求和作为二元组的得分。 排序器 724 用于基于已经计算的得分, 对推荐列表中的二元组进行排序。提供器 726 用于提供排序后 的二元组, 供所述用户向目标用户名表示的用户推荐对应的信息项时使用。
根据本发明的实施方式, 所述装置 700 可以在普通计算机设备上实现, 还可以在 具有数据处理能力的移动计算设备 ( 例如, 个人数字助理、 移动电话等 ) 上实现, 这些计算 设备通过有线或者无线网络而连接至互联网或者局域网, 以便与社交网络中的其他用户进 行通信。
本发明可以采取硬件实施方式、 软件实施方式或既包含硬件组件又包含软件组件 的实施方式的形式。在优选实施方式中, 本发明实现为软件, 其包括但不限于固件、 驻留软 件、 微代码等。
而且, 本发明还可以采取可从计算机可用或计算机可读介质访问的计算机程序产 品的形式, 这些介质提供程序代码以供计算机或任何指令执行系统使用或与其结合使用。 出于描述目的, 计算机可用或计算机可读机制可以是任何有形的装置, 其可以包含、 存储、 通信、 传播或传输程序以由指令执行系统、 装置或设备使用或与其结合使用。
介质可以是电的、 磁的、 光的、 电磁的、 红外线的、 或半导体的系统 ( 或装置或器 件 ) 或传播介质。计算机可读介质的例子包括半导体或固态存储器、 磁带、 可移动计算机 磁盘、 随机访问存储器 (RAM)、 只读存储器 (ROM)、 硬磁盘和光盘。目前光盘的例子包括紧凑 盘 - 只读存储器 (CD-ROM)、 压缩盘 - 读 / 写 (CD-R/W) 和 DVD。
适合与存储 / 或执行程序代码的数据处理系统将包括至少一个处理器, 其直接地 或通过系统总线间接地耦合到存储器元件。 存储器元件可以包括在程序代码的实际执行期 间所利用的本地存储器、 大容量存储器、 以及提供至少一部分程序代码的临时存储以便减 少执行期间从大容量存储器必须取回代码的次数的高速缓冲存储器。
输入 / 输出或 I/O 设备 ( 包括但不限于键盘、 显示器、 指点设备等等 ) 可以直接地 或通过中间 I/O 控制器耦合到系统。
网络适配器也可以耦合到系统, 以使得数据处理系统能够通过中间的私有或公共 网络而耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、 线缆调制解调器 以及以太网卡仅仅是当前可用的网络适配器类型的几个例子。从上述描述应当理解, 在不脱离本发明真实精神的情况下, 可以对本发明各实施 方式进行修改和变更。 本说明书中的描述仅仅是用于说明性的, 而不应被认为是限制性的。 本发明的范围仅受所附权利要求书的限制。