机器优化装置、方法和系统的制作方法

文档序号:6596315阅读:155来源:国知局
专利名称:机器优化装置、方法和系统的制作方法
机器优化装置、方法和系统本申请要求享有2008年12月12日提交,题为“Clustering Using B-Matching and Semidefinite Embedding Algorithms” 的美国临时申请 No. 61/122356 的权益,并要求享有2009年1月洸日以国际方式提交,题为“Belief Propagation For Generalized Matching"的PCT/US09/32070的优先权且是其部分延续,在此通过引用将其每个都全文并入本文。本发明是在国家科学基金授予的Career Award IIS-0347499的政府支持下做出的。政府对本发明享有一定权益。
背景技术
计算系统和方法被用于方便很多事务和机器功能。范例包括网络优化、模式匹配、 消费者推荐引擎、国家安全等。很多系统采用了被称为网络模型的计算模型或定义节点间链接或边缘的图表。可以使用链接和节点代表问题空间的特征。采用图表的一些技术基于对可能连接每个节点的相应数量边缘以及与连接相关联的相应值的约束,求解出一组优化的边缘。对于新的应用、速度改善、可靠性和这种系统和方法的其他优点一直存在需求。

发明内容
所公开主题的实施例总体上涉及受益于东西直接链路优化的系统、方法、程序、计算机可读介质和装置,例如,所述东西是优化计算机事务处理,提供诸如模式识别的特定类型机器智能,做出并优化推荐以便于处理等东西。在特定范例中,响应于货物或服务与人或其他实体的机器表达之间的最佳匹配, 推荐使得特定的事务可用。这些种类的匹配问题常常提供机会来优化一些全局性货物,例如卖家的收入,推荐的产品或服务被消费者妥善接收的可能性,或广告消息在搜索结果页上的最佳选择和放置,网页内容页或相邻的因特网介质。可以利用各种方法处理这种优化的匹配,其中之一是通过估计或推断表示全局货物的最佳或期望水平的子图来求解匹配问题,无论对于特定应用而言货物可能是什么。


图1是根据所公开主题的一些实施例,使用程度分布信息进行匹配的方法的图表。图2是被表示为二部图的匹配问题的示意图,其示出了未匹配的要素。图3A是根据所公开主题的一些实施例被表现为二部图的匹配问题的示意图,其示出了匹配要素、未匹配要素和权重矩阵。图;3B是根据所公开主题一些实施例,用于利用程度分布信息进行匹配的分布处理的布置图。图4是根据所公开主题一些实施例的权重矩阵的示意图。图5是根据所公开主题一些实施例的程度分布信息的示意图。
图6是根据所公开主题一些实施例用于产生展开的权重矩阵的方法图。图7A是示出了根据所公开主题一些实施例产生的展开权重矩阵系数的图。图7B是示出了根据所公开主题一些实施例产生的展开权重矩阵的示意图。图8是示出了 b_匹配以及转换成根据所公开主题一些实施例产生的二元值之后的扩展权重矩阵的示意图。图9是根据所公开主题一些实施例通过截取图8所示的二元扩展权重矩阵而获得的匹配结果的示意图。图10是根据所公开主题一些实施例图9所示匹配结果的节点程度的示意图。图11是根据所公开主题一些实施例,使用程度分布信息将第一类东西匹配到第二类东西的系统图。图12A是根据所公开主题一些实施例基于信任传播将第一类东西匹配到第二类东西的方法图。图12B示出了图12A的1208之内的操作的实施例。图12C示出了二部图第二组V中节点操作。图12D示出了图12A的1208之内的操作的实施例。图12E示出了二部图第二组U中节点操作。图13是根据所公开主题一些实施例使用包括并行处理器的程度分布进行匹配的系统方框图。图14是根据所公开主题一些实施例使用程度分布和信任传播进行匹配的节点处理系统的图。图15是根据所公开主题一些实施例,使用程度分布信息和信任传播匹配具有搜索项的广告者的系统方框图。图16是根据所公开主题一些实施例,使用程度分布信息和信任传播匹配具有搜索项的广告者的方法图。图17是根据所公开主题一些实施例使用程度分布和信任传播匹配约会服务成员的系统方框图。图18是根据所公开主题一些实施例使用程度分布和信任传播匹配约会服务成员的方法图。图19是根据所公开主题一些实施例使用程度分布和信任传播匹配拍卖中卖方和买方的系统图。图20是根据所公开主题一些实施例使用程度分布和信任传播匹配拍卖中卖方和买方的方法图。图21是根据所公开主题一些实施例实现于硬件中的多个程度分布匹配/信任传播处理器的图。图22是根据所公开主题一些实施例,使用程度分布/信任传播处理器进行硬件匹配的图。图23是根据所公开主题一些实施例使用程度分布和信任传播的推荐后期处理方法的图。图M是根据所公开主题一些实施例使用程度分布和信任传播的推荐后期处理系
13统的方框图。
具体实施例方式导出优化的图形结构给出的关于节点和/或边缘的部分信息可以用作机器智能引擎的计算框架,例如用于将广告匹配到消费者,在搜索引擎结果页中分配有限的报价或建议,机器学习,在拍卖系统中匹配买方和卖方,匹配社交网络的用户以及很多其他问题。 这些系统和方法中的很多涉及到从原始的图形数据结构优化子图。已经开发出用于从原始图找到子图的技术。不过,常规方法可以采用未能找到全局性最优解的假设或折衷方案。更精确的技术问题在于对于特定应用而言执行时间在商业上不可行或不合需要,这些应用可能需要较快的求解时间。可以使用图表估计将相同类型的图表节点彼此匹配(例如,未分裂的图表)或将第一种或第一类节点与第二种或第二类(例如二部图)节点在其他类型的图表中彼此匹配。一种匹配是b匹配,其中b代表结果的期望程度值。程度代表节点之间的连接或邻居的数目。用于匹配的b值可以是恒定值,对于所有节点都是相同的。或者,每个节点可以具有独立的b值,其可以与其他节点的b值相同或不同。而且,除了是恒定值之外,可以将b 值描述为在一定值范围上分布。包括b值分布(或节点间连接程度)的问题类型被称为程度分布问题。程度分布问题的范例包括拍卖,其中每位买家和卖家可以选择独立数目(或容量)的对应买家/卖家,或可以具有他们能够处理的一定范围的容量,但可能导致不同的成本。而且,对于容量随时间变化的情况,例如在可能连接的期望数目随着动态变化的配额而变化时,可能出现程度分布问题。解决b匹配问题的常规方法对于解决程度分布问题可能不是有效的。通常,可以将很多类型的现实问题表达为图表,利用计算机程序解决表示现实问题的特定类型图匹配问题的计算机找到问题的解。图表可能包括可以潜在经由边缘连接的节点。图表中的每个边缘可以具有权重值,权重值表示诸如成本、利润、兼容性等量。可以将问题的解表达为原始图的子图,如果子图最大化了权重值,可以将该解子图示认为是最优的。例如,可以在存储二部图(G)表达的机器中表达在线约会服务用户之间提供匹配的问题,二部图由表示男性的第一组节点(ν)和表示女性的第二组节点(μ)组成。图中的边缘(O可以表示两个成员(或节点)之间的潜在匹配。权重矩阵可以包括针对每个边缘的权重值(W),该权重值表示边缘连接的一对男性和女性用户节点之间的兼容性度量。可以将在线约会图问题的最优解表示为具有边缘的子图,边缘将每个成员连接到判定是最可能匹配的那些相对的成员,使得子图产生最大或接近最大的兼容性值。针对在线约会服务问题的边缘权重值可以是兼容性指标值,该兼容性指标值表示图上相应成员之间的相应边缘(或连接)的兼容性值。可以通过任何适当的过程或系统,例如,合作性过滤、基于相似度的轮廓匹配或更复杂的规则等,计算兼容性指标值。除了在线约会匹配问题之外,还可以有针对每个成员的程度分布(Ψ),所述在线约会匹配问题具有原始图,原始图表示约会服务成员和包含针对用户间匹配的兼容性指标值的权重矩阵。程度分布表示节点的程度(或连接数目)偏好。例如,在约会服务范例中,
14程度分布可以表示用户为了接收而需要支付的匹配数目,在一定时间段内用户希望能够充分评价的匹配数目,等等。一般而言,针对节点的程度分布表示对该节点的程度偏好,可用于激励针对该节点的图形解具有期望数量的连接,同时在数值上阻止或惩罚不希望数量的连接。每个节点都能够具有其自己的程度分布。B匹配是用于求解图匹配问题的一种方法。在b匹配中,解图包含针对每个节点的 b匹配。尽管b匹配可能是针对特定问题的可接受技术,但在其常规形式中,通常对于包括程度分布的问题是无用的,因为b匹配技术具有固定程度属性。可以将表示包括程度匹配的匹配问题的图转变成扩展图(Gb)和扩展权重矩阵, 可以利用具有固定程度的b匹配对其求解,以获得考虑了初始问题程度分布的解。扩展图包括原始图节点以及额外的伪节点(d),扩展权重矩阵包括原始权重值以及额外权重值 (ω),额外权重值是基于程度分布值确定的且对应于原始节点和伪节点之间的边缘(Eb)。 通过生成扩展图和权重矩阵,将程度分布值并入权重矩阵中,使得扩展图的b匹配解将反映每个节点的程度分布值。回到在线约会问题,每位约会服务成员都可以具有表示期望的匹配数目的关联程度分布。利用原始图和伪节点创建扩展图。利用原始权重矩阵和使用程度分布值确定的针对伪节点的权重值创建扩展权重矩阵。然后,执行b匹配以求出扩展图和权重矩阵的最大权重子图。如下文更详细所述, 可以使用循环式信任传播执行b匹配。扩展图的解图的一部分被提取并表示原始图的解, 带有该解中考虑的程度分布。以下段落描述了使用程度分布进行匹配的技术的各种具体实施例,可以将其用作各种装置、系统和方法的依据。图1是根据所公开主题的一些实施例,使用程度分布信息进行匹配的方法的图表。具体而言,在方法100中,处理开始于102,继续到104。在104,获得输入图形数据结构和对应的权重数据。输入图形数据结构可以是单部分、双部分或其他类型的图形数据结构。权重数据表示图形数据中两个节点之间的边缘的权重(或利润、成本或其他度量)。在106,获得程度分布信息。程度分布信息包括针对输入图形数据结构中每个节点的程度分布信息。程度分布信息可以包括节点程度的先验分布、从统计抽样属性推断的程度信息、从数据以实验方式学习到的程度分布,给出的程度概率等。可以用Ψ」项表示每个节点的程度分布。在108,产生新的图形数据结构,其包括除输入图形数据结构的节点之外的伪节点。有额外数量的伪节点等于输入图中的每组节点。利用输入权重矩阵作为用于扩展权重矩阵中输入节点的权重值产生扩展权重矩阵,根据以下公式,使用程度分布信息确定输入节点和伪节点之间边缘的权重值w(vi (Iijj) = !^(j-D-U^G)。处理继续到 110。在110,对扩展的图形数据结构和权重矩阵执行最大权重b匹配操作。根据输入图形数据的结构,可以使用最大流水作业法确定最大权重b匹配,或者,在图为二部图时,可以使用信任传播方法确定最大权重b匹配。在最大权重b匹配期间,将b设置为原始权重矩阵的大小(例如,如果原始权重矩阵为nXn矩阵,那么b = n)。B匹配操作解决了以下
服从于 1/,.点)=乂对于Vi e V。其中,ν为节点,d为伪节点,W是边缘潜力或权重值,Ni = deg(vi; ε )是节点Vi 邻域的尺寸。在附录中给出了程度分布匹配的数学依据和背景的额外论述。在112,执行输出操作。例如,可以向同一系统之内的另一模块,向另一系统或向用户或操作员提供结果图或矩阵或结果图或矩阵的一部分,以用于另一过程中。处理继续到 114,在此处理结束。要认识到,可以完整地或部分地重复104-112,以便利用程度分布完成构思的匹配。图2和图3A是表达为二部图的匹配问题的示意图。图2示出了未匹配的要素,而图3示出了匹配要素、未匹配要素和权重矩阵。图2示出了二部图200,该图具有匹配到第二组节点204(vl_v4)的第一组节点 202 (ul-u4),其可能由边缘206连接。在图3A中,二部图300示出了匹配到第二组节点304(vl_v4)的第一组节点 302(ul-u4)。第一组可以表示第一组实体或东西,例如货物、人或资源,第二组可以表示第二组实体或东西,例如消费者、人或资源用户。从本公开应该明白,能够构成这些第一和第二组的对象或实体的性质是很多的,但大部分实施例中的共同特征是第一组的实体要匹配到第二组的实体,作为某种事务的一部分,精确匹配可以对应于某种总合价值,例如最大总收益。特定的第一和第二组的语境提出的匹配问题以及找到的总合价值可能涉及约束,例如要匹配到给定的第二组东西的第一组东西的数目。可以通过任何分类区分组,分组不限于给出的范例。在图3A中,虚线(例如306)表示可能的边缘,实线(例如308)表示b匹配的边缘。B匹配表示,例示的问题在第一组东西的每个与一个或多个第二组东西之间获得期望的 b匹配。在二部图300所示的情况下,对于组302和304的每个节点,b = 2,因此每个节点 302或304都利用匹配的边缘308连接到两个其他节点304或302。典型地,可以利用额外信息补充表达所有线306和308指定的潜在分配的信息,额外信息通常是权重,表示与进行每次分配相关联的值或成本相关的某种东西。这里,在316 表示边缘的权重W值。这种权重信息可以充当选择分配的依据,该分配提供一些最优解或提供相对于另一分配方案鉴别一个分配方案优良性的依据。可以通过任何适当数据结构的形式表达额外信息,以存储针对每个边缘的权重,例如权重矩阵318,每一行对应于第一组的成员,每一列对应于第二组的成员,交叉点处每个单元320表示连接每对成员的边缘的相应权重。权重矩阵318表示针对买家和卖家的每种组合的不同权重。可以通过二部图的形式描述将一组成员匹配到另一组的问题。给定二部图(可以由300表示)和关联的权重数据,可以使用一种方法基于信任传播进行匹配。在这里,将使用希望将供应商与客户匹配的情况范例例示该方法。可以为一个或多个计算机提供定义供应商和客户的信息,在此将其称为“节点”,可以认为这种信息定义了二部图300。每个供应商的节点(u302或v304)都通过边缘308连接到客户节点(v304或u302),从而为一个或多
16个计算机提供了从供应商节点映射到客户节点的所有节点302,304的潜在边缘308。一个或多个计算机还可以访问权重数据,例如,具有针对二部图数据结构每个边缘的权重值319 的矩阵318。由一个或多个计算机执行的过程使得记录并更新与每个节点相应的信息,从而针对与其他节点通信的每个节点执行子过程。在本范例中,权重数据可以是货物总成本,最佳匹配会与买家和卖家之间的最大收入交易一致。现在还参考图3B,根据本实施例和其他实施例,可以在系统321中,在通过网络 330通信的多个处理器322-3 和332-338之间分布匹配问题,使得每个处理器都能够经由有线或无线链路发送和接收消息,以图解方式将链路描绘为连接线340。对于本范例,图 3A中所示的每个节点可以对应于图:3B中的相应节点处理器322-3 和332-338。替代方案是,每个处理器对应于多个节点,但为了论述,将假设每个节点有独立处理器的情况。在这种情况下,可以向每个供应商节点处理器(322-328)提供权重矩阵318中权重数据的仅仅一部分,该部分足以表示将每个供应商连接到其所有潜在客户(例如,所有其他客户)的边缘的权重。类似地,可以向每位客户节点处理器(332-338)提供权重矩阵318的仅一部分,该部分表示将客户连接到其所有潜在供应商的边缘的权重。节点处理器能够访问关于公共(例如中央)或分布式数据存储器(例如每个节点或节点处理器社区相应的存储器) 的相应权重信息。图;3B是根据所公开主题一些实施例利用信任传播进行一般化匹配的分布式处理器的布置图。具体而言,在本范例中,第一组节点处理器(322-328)分别对应于图3A中所示图中的节点ul-u4。第二组节点处理器(332-338)分别对应于图3A中所示图的节点vl_v4。 每个节点处理器(502-508和512-518)独立耦合到网络330 (例如,因特网,局域网,广域网,无线网,虚拟专用网络,定制网络,总线,背板等)。通过网络330互连,每个节点处理器 (322-328和332-338)能够与其他节点处理器通信并根据上述信任传播方法发送/接收消息。而且,可以独立地查询每个节点处理器(322-3 和332-338),以找到由上述信任传播方法产生的b匹配列表。不仅能够独立地查询每个节点,而且每个节点都能够实现其最佳 b匹配解而无需了解其他节点的解(即,信任传播方法为每个节点“保护隐私”)。可以在中央数据存储位置汇总每个节点的解,或者可以在每个节点个别地保持解,或者根据标准进行分组(例如,将所有供应商匹配分到列表中,将所有客户匹配分到另一个列表中)。网络330可以是诸如因特网、局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、直接连接网络(或点到点)等网络。通常,网络能够包括一种或多种现在已知或将来开发的用于沟通信息的技术,它们将适于执行上述功能。网络部件和技术的选择可以取决于构思的实施例。在图;3B中,为了例示和描述实施例简明,示出了针对每个节点的一个处理器。要认识到,每个处理器可以为超过一个节点执行信任传播方法。图3A或;3B中未示出用于产生和求解扩展图和权重矩阵的伪节点。伪节点功能实质上与原始节点相同,但不会表现出实际的供应商或出价人,而且如下所述,在对扩展图和权重矩阵执行b匹配操作期间不受程度约束。于是,每个供应商节点、客户节点和伪节点仅可以要求访问矢量,定义潜在连接的客户和供应商节点权重和程度分布信息的一部分。在用于对二部图问题求解的架构实施例中,可以在不同的计算机或处理器之间分摊扩展图和矩阵数据,使得每者仅接收其供应商或客户及其关联权重的列表。此外,如下文所述,全解仅仅所需的其他信息是来自其他节点的一系列消息,其中每条消息可以是简单的标量。可以获得匹配,该匹配通过如下方式渐进地寻找以上问题的优化使每个客户节点保持一个分数,例如,从每个供应商节点购买比从其他供应商购买好多少。而且,每个买家节点可以保持向每个客户节点销售比向其他客户销售好多少的分数。最开始,分数可以仅仅是权重表示的美元值。在如下所述的过程中,象征性地讲,在更新分数时,供应商节点告知客户节点,如果根据其当前分数选择它们,可能会损失多少钱,客户以类似方式告诉供应商。利用可以描述为在节点间传递消息的这个数据连续更新的所有分数,其中该消息包含要保持分数的信息。最后,如果根据下述主题更新分数,分数会向针对每位客户的供应商最优分类列表和针对每位供应商的客户分类列表发展。然后,可以使用每位供应商或客户节点的信息选择该供应商或客户的最好的一个或多个匹配。在所述的方式中,每个节点利用处理器更新与每个供应商节点和客户节点对应的值。可以将该过程描述为“信任传播”,并需要在相邻节点之间传递消息。该方式的重要方面是知道何时停止传递消息以及从节点的数据确定最佳匹配。因为该方法向着最优解发展,所以随着每条消息得到处理,每个节点对匹配分类的依据越来越好。于是,可以编程控制一个或多个计算机以在一段时间之后或阈值数量的消息之后停止。可以在实现如下所述的另一结束条件时获得最优解。—旦满足结束条件,可以选择一个或多个计算机、预定数量的供应商节点和预定数量的与每个选定供应商节点匹配的相应客户节点并提供给客户端过程,例如,可以在终端上显示匹配供用户观看。注意,出于例示的目的,图200,300和321包括有限数量的节点和边缘。针对下述实施例的实际图形数据结构中节点和边缘的数目可以包括比图2、3A和:3B中所示节点/边缘数目更大或更小数目的节点/边缘。而且,根据要通过实施方式解决的所构思的匹配问题,可以为特定实施方式中每个节点的b值分配除了 2之外的值。图4是根据所公开主题一些实施例的权重矩阵的示意图。具体而言,以图解方式示出的权重矩阵400具有带阴影的单元,阴影表示各种权重值。对角线是带阴影的黑色,表示连接到自身的节点没有权重值。其他带黑色阴影的节点单元(例如402和404)表示低权重值,以减小或消除结果包含针对那些相应节点(例如,节点1和5之间)的边缘的可能。 而且,可以调节权重矩阵,通过在与两个节点(例如406和408)之间的边缘的权重矩阵位置处包含高权重值,以强制或激励结果包含两个节点之间的边缘。图5是根据所公开主题一些实施例的程度分布信息的示意图。图5中的节点程度分布的图解表示以视觉方式示出了由程度分布数据提供的信息。例如,节点4偏好较低程度(例如1或2),而节点5偏好更高程度(例如5或6)。本公开的匹配系统和方法能够执行匹配,同时通过将程度分布信息并入用于确定匹配结果的扩展权重矩阵中适应不同的程度分布优先性或偏好。图6是根据所公开主题一些实施例用于产生展开的权重矩阵的方法图。具体而言,图6扩展了图1的108。处理开始于602,在此产生新的图形结构。新的图形结构是原始图形结构尺寸的两倍。如果原始图形结构具有η个每种类型的节点,新的图形结构具有2n个节点,并具有尺寸为2nX2n的对应邻接矩阵。在604,确定与扩展的图形数据结构对应的扩展权重矩阵。扩展权重矩阵在一个象限中包括原始权重矩阵值,两个象限包含基于程度分布数据和零象限的权重矩阵值,如下文参考图7A更详细所述。在606,针对扩展图形数据结构之内的原始节点设置程度约束。将针对原始节点的程度约束设置为原始权重矩阵的一边的尺寸。换言之,如果原始权重矩阵大小为ηΧη,那么约束原始节点,使得在对扩展图和扩展权重矩阵执行b匹配时,b = η。图7Α是示出了根据所公开主题一些实施例产生的展开权重矩阵系数的图。具体而言,为了解程度分布问题,扩展表示每个匹配的值(或相对值)的权重矩阵W,使其尺寸加倍,以产生扩展权重矩阵W’。原始权重矩阵W(例如,其反映了要由卖家i卖给买家k的货物的协商价格)形成了扩展权重矩阵W’的左上象限。扩展权重矩阵W’的右上象限包 Ψ ) δ值,例如,从第一排开始A1(O)-W1⑴,…,ΨΑ-υ-ψ ,等等,直到最后一排Ψη(0)-Ψη(1),…,Ψη(η-1)-Ψη(π)。扩展权重矩阵W,的右上象限包括Φ i (j) S值,例如,从第一排开始^1(O)-Ct1(I),…,ΦΑη-υ-ΦΑη),等等,直到最后一排 Φη(0)_Φη(1),…,Φη(η-1)-Φη(η)。可以将右下象限的值全部设置为零。通过向卖方和买方节点增加伪节点以使卖方和买方的数目加倍来扩展二部图。于是,如果有η个买家和η个卖家,附加额外的η个买家和η个卖家。这些伪节点分别对应于扩展权重矩阵W’中的附加的δ值屯“」),Φ,Ο)或0。在卖方数目与买方数目不同的情况下,将两者中较大的用作扩展权重矩阵的大小,利用小值(例如零或负最大值)扩展原始权重矩阵的较小边,向图形数据增加伪节点。这些完成了正方形的原始和扩展权重矩阵以及原始和扩展的二部图。扩展的节点是类似于用于扩展权重矩阵那些的伪节点。一旦生成扩展权重矩阵W’并提供了伪节点,就可以向扩展图和权重数据施加如下所述的方法。在分布式处理中,可以简单地将节点处理器的数目加倍,例如,以使每个处理器工作并接收和发送与相应节点相关的消息。可以将对问题求解使用的b值设置为n,即, 买家和卖家的数目(注意,一些买家和卖家可以是虚拟的,不是真实的买家或卖家)。一旦利用扩展权重矩阵W’作为b匹配问题(b = η)在扩展图上求解匹配问题,例如,利用公开的信任传播方法和系统,通过提取表示扩展图上匹配的矩阵的左上象限(或通过截取矩阵以去除伪节点)获得了用于原始图和权重矩阵的b匹配解。图7B是根据图7A所示系数矩阵产生的扩展权重矩阵700的图示。扩展权重矩阵 700包括图4中所示的原始权重矩阵400作为左上象限702。利用上文参考图7A所述的系数确定与原始节点和伪节点之间的边缘对应的右上704和左下706象限。仅与伪节点之间的边缘对应的右下象限708是零值象限。图8为示意图,示出了通过对扩展图形结构执行b匹配操作并输出匹配值作为二元值而产生的所得扩展权重矩阵800。在二元扩展结果矩阵中,白色单元表示匹配,黑色单元表示不匹配。在扩展结果矩阵800中,对右上象限802感兴趣,可作为具有程度分布的原始匹配问题的解,提取其(或者可以截断伪节点)以产生b匹配的最终输出结果。图9是根据所公开主题一些实施例通过截取图8所示的二元扩展权重矩阵而获得的匹配结果的示意图。图10是图9所示匹配结果的节点程度的示意图。例如,节点1,2和4均具有程度
192。节点3和5具有程度3,节点6具有程度4。将匹配结果程度与输入的程度分布数据比较表明,使用程度分布的匹配提供了与优选或在先节点程度一致的结果,节点3,5和6具有喜好更高程度的程度分布,节点1,2和4具有喜好更低程度的程度分布。图11是根据所公开主题一些实施例,使用程度分布信息将第一类东西匹配到第二类东西的系统图。具体而言,信任传播匹配系统1100包括一组供应商1102和一组客户 1104。供应商1102和客户1104的每个都被表示为图形数据结构1106中的节点。系统1100 还包括程度分布数据1107和利润(或成本)矩阵1108。提供图形数据结构1106和利润矩阵1108作为图形结构估计模块1109的输入。提供来自图形结构估计模块的输出作为b 匹配模块1112的输入。还提供了输入数据1110作为b匹配模块1112的输入。B匹配模块 1112耦合到数据存储器1114并提供匹配结果1116作为输出。在运行中,供应商1102和客户1104被存储为图形数据结构1106的节点或顶点。 程度分布数据1107表示每个节点的程度分布。利润矩阵1108存储针对连接供应商和客户的每个边缘的边缘利润(或权重)。图形数据结构1106、程度分布数据1107和利润矩阵 1108均能够存储在数据存储器1114中,供图形结构估计模块1109和b_匹配模块1112检索。图形结构估计模块1109从数据存储器1114获得图形数据结构1106、程度分布数据1107和利润矩阵1108并根据上文参考图1所述的方法产生扩展的图形数据结构和权重矩阵(或利润)矩阵。B匹配模块1112接收输入1110,其例如可以是b匹配感兴趣的节点。在一个范例中,b匹配模块1112使用扩展图形数据结构利润矩阵,根据下文参考图12A-12E所述的方法使用信任传播执行b匹配。如上所述,在图形数据结构不是二部图时,也可以使用最大流水作业法执行b匹配。在数据存储器1114中存储消息和信任。一旦满足结束条件,b匹配模块1112输出匹配结果1116。结束条件可以包括下文参考图12A中的条件分支1212所述的任何结束条件。B匹配模块1112能够根据从一个或多个计算机可读介质检索的软件指令工作。在 b匹配模块1112执行的时候,软件指令令b匹配模块1112执行如下所述的信任传播一般化的匹配方法。例如,在针对广告/关键字匹配应用而调整时,用于b匹配模块1112的软件实施
能够根据以下伪代码执行信任传播
Begin Pseudo Code
Il define data structures and variables
data structure GraphNode { float received_msgs[ max_num_of_neighbors ] };GraphNode ads [num_of_ads]; GraphNode keywords [num_of_keywords]; int Profit_Matrix [num—of_ads] [num_of_keywords]; int b=3;
Boolean Message_Changed = true;
initialize all received—msgs to 1 ; // to compute messages first time around initialize Profit_Matrix with bid values;
// start a main loop to continue until no messages are changed while ( Message—Changed =二 true ) {
Message_Changed = false; // switch off loop unless a message
changes
Il send messages from ads to keywords for i=l to num_of_ads {
for J=I to num_of_keywords { sorted_msgs[]=
sorted list of ads[i]. received_msgs[] *
corresponding exp(Profit—Matrix[][]) values excluding that from keyword node j; L = original index of sorted_msgs[b]; // get index (or
node) of the bth received msg*profit; old_rcvd_msg = keywords[j]· received_msgs[i]; keywords[j].received_msgs[i] 二
exp(Profit_Matrix[i][j])/(exp(Profit_Matrix[i][ L]) *ads[i]. received_msgs[L]); ifold_rcvd_msgnot
keywords[j]. received—msgs[i]
then Message_Changed = true; } end j loop } end i loopmessages from keywords to ads to num_of_keywords { i=l to num_of一ads {
Sorted_msgs[] = sorted list of keywords[j]. received_msgs[]* corresponding exp(Profit_Matrix[][]) values excluding that from ad node i; L = original index of sorted_msgs [b] ; // get index (or
node) of the bth received msg*profit; old_rcvd—msg = ads[i]. received_msgs[j]; ads[i]. received_msgs[j]=
exp (Prof it_Matrix[i] [j]) / (exp (Prof it—Matrix [L] [j]) * keywords[j] . received—msgs[L]); if old_rcvd_msg not equal to ads[i] · received—msgs[j] then Message_Changed = true; } end i loop } end j loop
} end while loop - we are now done - no messages are changing // now get the belief values for a keyword node of interest for i=l to num_of_ads {
belief_values[i] = keywords[keyword—of—interest] · received_msgs[i] * Profit—Matrix[i][keyword_ofjnterest]; } end i loop sort belief_values[]; output largest b belief_values[]; End Pseudo Code以上伪代码表示下述信任传播方法的线性实施的范例。为了例示的目的做出了若干简化,包括假设每个节点与对应类型的所有节点交换消息。在实际的实施中,节点可以仅与其相应的相邻节点交换消息。而且,伪代码范例一直继续到没有消息改变为止。如上所述,可以将其他结束条件用于信任传播方法。如上所述,始终针对所有节点将原始图节点的b值设置成原始图形结构的组之一的大小(例如η)。在b匹配过程期间伪节点相对于程度保持不受约束。B匹配模块1112可以是利用信任传播对匹配进行一般化的通用计算机,利用信任
Il send for j=l for传播使匹配一般化的一个或多个专用计算机,程控的微处理器或微控制器以及外围集成电路元件,ASIC或其他集成电路,数字信号处理器,诸如分立元件电路的硬连线电子或逻辑电路,诸如PLD、PLA、FPGA、PAL等程控逻辑装置。数据存储器1114可以是诸如关系型数据库的数据库或任何其他适当的数据布置。可以在物理计算机可读介质中存储数据,介质例如是易失性或非易失性电子存储器、磁性存储装置和/或光学存储装置或任何已知的或将来开发的计算机可读介质。现在参考图12A到12E,在提供图1200的操作1204指出的图形数据结构和边缘权重数据(例如,所有节点处理器的权重矩阵或矢量)之后,如操作1206所指示对变量进行初始化。后一种操作可以包括对数据存储元件的值进行初始化,该元件存储由节点接收的最新消息的值。在1208,由每个节点处理器1230,1250执行迭代过程(参见图12C和12E 中的节点处理器)以产生消息并处理接收到的消息,直到满足结束条件1212。参考图12B 和12C,多个客户节点处理器1230包含各种可更新的数据存储器1241,1M3,1245,其保存有权重矢量1241、接收的消息矢量1243和新的消息矢量1245。每个节点处理器1230也可以存储表示与节点处理器1232对应的节点可能潜在匹配到的潜在供应商节点的数据。根据所采用的数据结构,这种额外数据可以是在1对1,1243和1245存储的数据中固有的,因为权重矩阵、接收的消息值和新消息值均与这些附带的节点处理器1232之一相应。而且, 多个供应商节点处理器1250包含各种可更新的数据存储器1261,1沈3,1265,其保存权重矢量1261、接收的消息矢量1263和新消息矢量1265。每个节点处理器1250也可以存储与节点处理器1252对应的节点可能潜在地理想匹配到的潜在节点的数据,但这种数据可以是上文所述的其他数据固有的。节点处理器1230从其连接到的节点处理器1232接收消息并向其发送消息,节点处理器1232的每个对应于相应分离集中的另一节点。在本范例中,每个节点处理器1230 和1232对应于具有两个分离集U和V的二部图的节点。节点处理器1232均具有节点处理器1230的特征。每个节点处理器1230的功能可以是从数据存储器1M1,1243,1245中的数据导出消息,并发射这样的消息和接收消息,并更新数据存储器1241,1M3,1245中的数据。如图2A中的过程1200所示,在子过程1208中反复这样做。图12B示出了图12A的1208之内的操作的实施例。图12C示出了双向图第二组V 中节点操作。图12D示出了图12A的1208之内的操作的实施例。图12E示出了双向图第二组U中节点操作。操作相同,但操作对象索引不同,以便解释该节点所属的集合。不过,如图12A中所示,可以由单一二部图中一个或多个节点相应的独立处理器, 由与节点子集或单一处理器对应的处理器进行图12B的操作。于是,可以基于它们之间共享的消息以独立方式由独立处理器执行1208处图示为单个过程的迭代。特别参考图12B,在1242,节点处理器1230执行与节点Ui对应的计算。在1M2, 使用从Vj节点处理器接收的消息,针对节点Ui可以匹配的每个节点Vj,计算中间值a^。这些中间值简单地是SMj = RMk^exp(Wijk), k= 1到N,k乒j。( “exp”表示基于自然对数的指数,*表示乘法)。亦即,略过该项对消息RMk的贡献,其中k = j。在1244,对中间值SMj 的列表进行分类,识别与具有第b最高值的供应商对应的项。供应商由索引j表示,因此将值L设置为该索引。在1M8,根据NMj = exp (Wijj)/[exp (Wi,l)*RMl]计算新的消息NM」,以发送到每个供应商节点处理器1232。
23
特别参考图12D,在1262,节点处理器1250执行与节点Vi对应的计算。在1沈2, 使用从Uj节点处理器接收的消息,针对节点Vi可以匹配的每个节点Uj,计算中间值a^。这些中间值简单地是SMj = RMk*exp(ffkjJ.),k= 1到N,k乒j。( “exp”表示基于自然对数的指数,*表示乘法)。亦即,略过该项对消息RMk的贡献,其中k = j。在1沈4,对中间值^ 的列表进行分类,识别与具有第b最高值的客户对应的项。客户由索引j表示,因此将值L 设置为该索引。在1268,根据NMj = exp (Wjji)/[exp (Wi, l)*RMl]计算新消息NM以发送到每个客户节点处理器1252。返回到图12A,在所有的节点处理器1232和1252之间传递新消息,直到满足结束条件1212为止。如1212所示,基于是否到达结束条件,操作继续进行。结束条件可以是监视计时器到时,由每个处理器接收到若干消息。另一种替代的且提供最优解的方案是在消息停止变化时,每个节点处理器终止。亦即,将最近的消息与先前的消息比较,如果它们相同,处理器停止为发送节点处理,或在所有消息与对应的在先消息相同时,可以暂停所有节点的处理。操作1212也可以包括更新数据存储器1243或1263。如上所述,可以将结束条件定义为相对于消息更新到达稳定状态,亦即,消息停止变化。或者,可以将稳定状态定义为,如果发送处理器判定更新不变,或在发送或接收的更新消息数目低于特定阈值时,未发送更多消息更新。或者,可以依据消息更新的迭代次数或发送的消息数来定义结束条件(总数或每个节点的数目)。在另一替代方案中,可以将结束条件定义为过去预定一段时间。如果已到达结束条件,如1214所示,处理继续进行,为输入节点选择预定数量的供应商节点或预定数量的客户节点。否则,处理返回到1208处所示并如上文所述的操作。在1210,每个节点能够计算表示最佳匹配的矢量。可以通过列举exp (Wi ;k)除以k 的值并选择b个最大值,由U个节点进行这种操作。可以通过列举exp (Wk;j)除以k的值并选择b个最大值,由V个节点进行这种操作。注意,RM值与V个节点中进行过计算的U个对应。附录给出了操作1208和1210的解释以及一些其他细节和分析。注意,图形数据结构可以是适于利用信任传播进行一般化匹配的任何类型的数据结构,例如二部图数据结构。图形数据结构可以包含相同组(单部分情况)或不同组(双部分情况)的一个或多个节点。例如,图形数据结构可以包括供应商节点和客户节点,其中每个供应商节点都连接到一个或多个客户节点,反之亦然。在相应实施例中,图形节点数据结构要素对应于诸如供应商、客户、货物和/或服务的物理实体。此外,在实施例中,节点对应于下文参考其他实施例所述的其他实体。诸如由上述权重矩阵表示的权重数据可以代表图形数据结构两个节点之间每个边缘的利润值。权重矩阵也可以是成本矩阵,利用适于该计算方法的项的适当值表示与相应匹配关联的成本。对于利润矩阵而言,匹配过程典型地包括使利润增加和/或最大化的函数。对于成本矩阵而言,匹配过程典型地包括使成本减小和/或最小化的函数。利润矩阵中的值可以是负的、零、正的或这些值的组合。可以由具有与每个节点对应的记录的数据结构表示示范性权重矩阵。针对每个节点的记录可以包括相邻节点和针对相邻节点的每个的利润值的列表。术语“相邻”是指给定节点可以在相同(单部分情况)或分离集(双部分情况)中连接到的节点。利润矩阵中的数据项能够表示物理实体或值,例如实际供应商能力、实际客户需求、出价或要价的金额、利润的金额、距离、货币成本和/或其他。可以选择利润矩阵的一部分并提供到相应的节点处理器。选定的部分可以仅代表与每个相应节点处理器对应的利润矩阵记录。通过向每个节点处理器仅提供利润矩阵的一部分,可以减小数据存储和传输要求。在操作1208,在相邻节点之间传递电子消息,相邻节点可以由总线或任何其他数据通信系统联网或沟通。节点处理器可以是计算机、具有多个处理器的装置上的单个处理器或能够进行所述计算以及发送和接收所述数据的任何适当机器。如上所述,根据压缩消息更新规则确定每条消息的值(或数据内容)。接收的消息可以由电子存储器中的处理器存储,电子存储器例如是RAM、非易失性存储器、数据库或任何适当的数据储存器。可以使用相应的节点处理器执行操作1210。下游处理1214可以包括与特定应用对应的过程。例如,如果二部图可以描述网页上出现的搜索查询或其他关键字项被分配给出价人的应用,如2005年11月21日由Vazirani等人提交的美国专利申请11/285126(公开为US 2007/0118432),在此通过引用将其全文并入。在那种情况下,节点的第一集合是出价人,节点的第二集合是卖家,下游操作会包括将与出价人对应的广告放到一个或多个网页上的对应位置,例如,搜索结果旁边或其他网页上。在1214选择的节点是基于更新的信任值进行匹配的。例如,在b匹配问题中,选择相对于输入节点具有最高信任值的b个节点。可以通过很多方式处理平局,包括使用“掷硬币”在平局节点之间选择,替代地或此外地,可以向针对每个边缘的权重或利润矩阵值增加小的任意值,使得没有两个节点可能会平局。可以提供选定的节点作为到另一过程或系统的输出。然后该处理终止于1216。要认识到,可以全部或部分地重复1202-1216流程,以便完成构思的信任传播b匹配功能。例如,可以针对整个图形数据结构更新信任值,然后可以在更新图的信任值之前为多个感兴趣的节点提供匹配结果。或者,因为匹配可能导致因为被选择为匹配节点而使图中一个或多个节点改变(例如,供应商的现货量可能减少,或可能已满足客户对货物的需求),在每次为节点执行匹配时可能需要再次计算信任值。图13是根据所公开主题一些实施例使用包括并行处理器的程度分布进行匹配的系统方框图。具体而言,信任传播匹配系统1300包括一组供应商1302和一组客户1304。 供应商1302和客户404的每个都被表示为布置并存储于图形数据结构1306中的节点。系统1300还包括利润(或成本)矩阵1308和程度分布数据1309。提供图形数据结构1306、 利润矩阵1308和程度分布数据1309作为图形扩充模块1311的输入。提供图形扩充模块产生的扩充图和利润矩阵作为b匹配模块1312的输入。也作为信任传播匹配系统1312的输入提供的是输入数据1310。信任传播匹配系统1312耦合到数据存储器1314并提供匹配结果1316作为输出。在运行中,供应商1302和客户1304被存储为图形数据结构1306的节点或顶点。 利润矩阵1308存储针对连接供应商和客户的每个边缘的边缘利润(或权重)。程度分布数据1309表示优选或优先的节点程度分布。图形数据结构1306、利润矩阵1308和程度分布数据1309均可以存储在数据存储器1314中。图形扩充模块1311产生扩展的图形数据结构,包括原始图形数据结构和额外的伪节点。图形扩充模块1311还根据上述方法产生扩展的利润矩阵,包括原来的利润矩阵作为一个象限,两个象限依据程度分布数据1309,以及零象限。信任传播匹配系统1312接收由图形扩充模块1311产生的扩展图和利润矩阵,还接收输入数据1310,例如,可以是b匹配感兴趣的节点。信任传播匹配处理器1312使用扩展的图形数据结构和扩展的利润矩阵,如上所述针对b匹配执行分布形式的信任传播。利用分布式(或并行)处理更新消息和信任并存储在数据存储器1314中。一旦满足结束条件,信任传播匹配系统1312做出可用的匹配结果1316作为输出。结束条件可以包括上文参考图12A中的条件分支1212所述的任何结束条件。信任传播匹配系统1312可以是分布式或并行处理系统。例如,可以将信任传播匹配系统1312实现为云计算系统。云计算是一种计算系统,其中,通过诸如因特网的网络向用户提供计算资源作为服务,用户不需要直接控制(“云中的”)支持其计算需求的技术基础设施。云计算还实现了提供可缩放的虚拟专用服务器。市场上可买到的云计算服务范例包括 Google, com 提供的 Google App Engine 以及 Amazon, com 的 Elastic Compute Cloud(EC2)。数据存储器1314可以是基于因特网的可缩放存储基础设施,例如Amazon, com 的Simple Storage Service (S3)或适用于信任传播匹配系统1312的任何其他数据存储系统。也可以根据任何其他适当的分布式或并行处理体系结构实施信任传播匹配系统 1312,包括含超过一个处理元件或存储元件、并行进程、多个程序等的硬件和软件系统。在这里,可以将上述和下述系统和方法应用于匹配由诸如社交网络的单部分图形数据结构表示的系统中的节点。可以使用该系统和方法提供匹配结果,例如社交网络推举, 将网站连接到其他网站,在诸如因特网的网络上路由消息以及芯片布局。在单部分匹配问题中,所有节点都是同样类型或种类(例如,社交网络成员),而不是分离集,可以基于针对单部分图形数据结构的每个边缘具有权重或值的值矩阵将它们与其他节点匹配。例如,对于图3A的情况而言,单部分版本将具有与“V”个节点(304)相同的“U”个节点(302)。图14是根据所公开主题一些实施例使用程度分布和信任传播进行匹配的节点处理系统的图。具体而言,节点处理系统1400包括信任传播节点处理器1402,其适于访问一个或多个计算机可读介质1404上的信任传播软件。信任传播节点处理器1402经由链路 1406耦合到网络1408。信任传播节点处理器1402还耦合到电子数据存储器,其中存储了扩展的利润矩阵子集1410、接收的消息1412和信任值1414。在运行中,信任传播节点处理器1402利用来自计算机可读介质的程度分布和信任传播软件1404加载匹配并执行该软件。一旦执行,软件指示信任传播节点处理器1402根据上述方法使用程度分布和信任传播执行匹配。信任传播节点处理器1402访问扩展的利润矩阵子集1410并针对每个连接的(或邻居或相邻)节点计算更新的消息值,并向每个连接的节点发送相应的更新消息。信任传播节点处理器1402还从连接的节点接收更新的消息。将接收的消息存储在数据存储器的接收消息区域1412中。在与利润矩阵子集1410的连接中使用接收的消息1412更新针对每个连接节点的信任值1414。利润矩阵子集1410是利润矩阵中包括关于连接到信任传播节点处理器1402表示的节点的节点的数据的部分。一旦满足结束条件,信任传播节点处理器1402能够对信任值1414进行分类,可以选择b个具有最大信任值的连接节点作为针对对应于信任传播节点处理器1402的节点的 b匹配解。要认识到,最大信任值的选择适用于如下范例使用利润矩阵,并希望使利润提高和/或最大化,而且可以在具体实施例中使用其他分类和选择技术,例如,在采用成本矩阵的实施例中,可以通过从适当大的常数矩阵减去成本矩阵将成本矩阵转变为利润矩阵。在执行一个或多个计算机可读介质1404上的信任传播软件时,能够令信任传播节点处理器1402根据以下伪代码工作Begin Pseudo Code
Il define data structures and variables
float Received_Msgs [num_of_neighbors];
graph node address Neighbor_Nodes [num_of_neighbors];
int Profit—Matrix [num_of—neighbors];
int b=3;
Boolean Message_Changed = true;
initialize all Received_Msgs to 1 ; // to compute messages first time around
initialize Profit_Matrix with bid values of neighbors; // start a main loop to continue until no messages are changed while ( Message_Changed == true ) {
Message_Changed = false; // switch off loop unless a message changes
Receive Messages from neighbors;Compare new Received Messages with corresponding stored Received Messages to look for changed messages; If Any Changed Messages Received { Store Received Messages in Received_Msgs[]; Message_Changed = true; for j=l to num_of_neighbors {
Sorted_Msgs[] = sorted list of Received_Msgs[] *
corresponding Profit_Matrix[] values excluding j; L = original index of Sorted_Msgs[b]; // get index (or node) of the bth received msg氺profit; Message = exp(Profit—Matrix[j]) / (exp(Profit_Matrix[L])*
received_msgs[L]); Send Message to Neighbor—Node[j]; } end j loop } end if changed message changed
} end while loop - we are now done - no messages are changing // now get the belief values for this node for j=l to num_of_neighbors { belief_values[j] = received_msgs[j] *
Pofit_Matrix[j]; } end j loop sort belief_values[]; output largest b belief_values[]; End Pseudo Code以上伪代码范例做出了若干假设,以便出于例示的目的简化伪代码。例如,b值为恒定值。而且,假设代码要用在为图的单个节点计算信任传播的处理器上,从而可以简化索引标示以进行例示。在给出针对每种可能分配的权重或值的矩阵时,一般化的匹配或拍卖问题找到了货物到消费者或广告到消费者的最佳分配。一般化的双部分匹配可以100%地由线性程序编制求解,不过这种方法对于实际应用而言太慢了。公开的主题方法可以采用给出高度改善解的信任传播,其可以是100%最佳的,但工作效率很高,能够针对涉及数百万用户和广告者的问题放大。其他应用包括网络重构、图像匹配、资源分配、在线约会服务、传感器网络等。
在线内容供应商能够使用公开的技术,在用户输入搜索词之后更好地匹配广告。 典型地,在线内容供应商显示针对特定搜索词出价最高的首位广告者。典型地,这是通过对一般化匹配问题求解完成的。例如,假设有500位用户和100位广告者。假设每位广告者希望显示15个广告,每位用户能够看到3个广告。由于每位广告者为了显示其广告出价的钱数不同,在线内容供应商必须要找到让他们赚最多钱的广告与用户的匹配。不过,在应对数百万用户和广告者时,使用其他技术对这个问题精确求解可能太慢,不能分布到多个机器上进行高效计算。因此,很多在线内容供应商诉诸于近似解,开发近似解方法是为了给出亚最佳的答案(不是利润最大的),但可以有效率地在线求解。公开的技术能够利用分布式算法(信任传播)对大规模的一般化匹配求解,给出精确答案。这样可以增加利润,可能增加高达50%。对于很多在线内容供应商应对的用户/广告报规模,这种方法仍然足够有效率。图15是根据所公开主题一些实施例,使用程度分布信息和信任传播匹配具有搜索项的广告者的系统方框图。具体而言,系统1500包括耦合到程度分布匹配系统1503 的搜索引擎/内容供应商1502以及用于广告/关键字(搜索词)匹配的信任传播系统 1504。搜索引擎/内容供应商1502还耦合到电子数据存储器,其中存储了表示多个广告者 (1506-1508)(每个都具有相应一组搜索词(或关键字))的数据,与每个关键字关联的广告以及投放每个广告(1510-1512)的出价。搜索引擎/内容供应商1502从一个或多个用户接收搜索词、关键字和/或统一资源定位符(URL) 1514。响应于接收到的输入1514,搜索引擎 /内容供应商1502利用程度分布匹配系统1503和用于广告/关键字(或搜索词)匹配的信任传播系统1504执行搜索词/广告者匹配,以将若干广告(在本范例中为三个)匹配到搜索词输入,如下文参考图16所述。然后在搜索引擎结果页(或合作网站的内容页)1516 上显示b匹配广告(例如3个),作为显示的广告1518。在本范例中,图形数据结构的节点包括广告者/广告和关键字(或搜索词)。利润矩阵包括每位广告者为每个广告的出价。出价可以用作原始值或可以操作其以达到针对该出价的利润。B值代表要在结果或内容页上显示的广告最大数量(例如3个)。不过,每个广告者/广告节点也可能受到对其信任值的其他约束,例如,在一定时间期间要显示的广告配额或在一定时间期间要花费的金额配额。即使对一广告者/广告的出价足够高,正常情况下会被选中,这些约束也可能影响到是否选择该广告者/广告作为关键字的匹配。广告者可以设法操控广告出价系统或与其“博弈”。可以修改上述信任传播方法和系统以提供对出价或广告系统操作的增强防护。例如,一种出价操作方案包括,通过给出恰好低于出价胜出方的出价试图耗尽竞争者的广告预算,这导致中标人实际支付的价格人为地很高,从而比正常情况更快地耗尽竞争者的预算。在耗尽竞争者的预算之后,他们的出价不再是最高的,可以由操纵者以更低成本发布广告。用于抵抗这种操纵的一种技术是利用能够选择除首位或b个最高匹配之外的赢家的模块增强b匹配算法。通过选择正常匹配广告之外的广告来发布,可能选择操纵者的广告,从而也耗尽了操纵者的预算。这样阻止了广告者给出虚假高出价以试图耗尽竞争者的预算。要认识到,可以将现在已知的或将来开发的其他广告拍卖操纵预防措施用于所公开的主题。除了用于广告关键字匹配的信任传播匹配系统(1504)之外,用于将广告与搜索词或关键字匹配的系统1500可以包括第二系统(未示出)。第二系统可以是出价网络服务器,典型地也包括一个或多个计算机存储介质、一个或多个处理系统和一个或多个数据库。 可以使用运行于客户端计算机上的常规网络浏览器访问通过出价网络服务器可用的信息, 并允许广告者针对将通过搜索引擎或内容供应商查询的期望关键字给出出价。可以通过防火墙(未示出)访问出价网络服务器,防火墙保护帐号信息及其他信息不被外部窃取。可以提供额外的安全措施,例如安全HTTP或安全套接字层以增强标准通信协议的安全性。在涉及根据出价分配网络广告的以上实施例的一些中,可以使用各种因素来修改用于表示匹配问题的权重矩阵的权重值。这些可以包括兑换率;目标成功率;点击通过率;给定期间内用户选择给定广告多少次;从广告结果选择直到用户发出另一搜索查询的时间,可以包括继给定广告点击之后花在(经由搜索结果点击或广告点击到达的)其他页面上的时间;与从选择广告结果到用户发出另一搜索查询的所有其他时间相比,从选择给定广告结果到用户发出另一搜索查询的时间比例;给定一种广告结果选择,观看搜索查询的其他结果而不是给定广告结果花费的时间;在选择给定搜索结果或广告之前的给定时间内发生了多少次搜索(即,发出的唯一搜索查询);在选择给定搜索结果或广告之后的给定时间内发生了多少次搜索;在给定选择之前,给定搜索查询之前发生了多少次结果页面观察,而不是搜索,可以在查询之内(即仅针对唯一的一次查询)或对整个期间计算这个次数;以及在这一选择之后的给定搜索查询发生了多少次搜索结果页查看,而非搜索,可以在查询之内(即仅针对唯一的一次查询)或针对整个期间计算这个次数。图16是根据所公开主题一些实施例,使用程度分布信息和信任传播匹配具有搜索项的广告者的方法图。处理开始于1602,提供1604扩展的图形数据结构。扩展的图形数据结构节点或顶点表示要匹配的广告者和关键字以及如上所述的额外伪节点。例如,图形数据结构可以包括广告者节点,表示在用户输入一组广告者感兴趣的关键字之一时要显示的来自特定广告者的广告。图形数据结构可以包括与用户输入的那些对应且需要有一组要匹配的广告的关键字或搜索词,以便提高和/或最大化例如从按次付费广告产生的收入。其次,如1606所示,提供扩展的利润矩阵。扩展的利润矩阵表示针对连接到对应搜索词节点的每个广告者/广告节点的利润值,加上如上所述基于程度分布数据针对伪节点计算的额外利润值。其次,如1608处所示,在相邻或邻居节点之间传递电子消息。适于执行信任传播的信任传播处理器或分布式处理系统发送来自节点的每条消息,基于利润矩阵值和接收到的该节点的消息。根据如上所述的压缩消息更新规则确定每条消息的值(或数据内容)。 处理器将接收的消息存储在电子存储器中,例如RAM或数据库中。可以反复进行消息传递, 直到满足结束条件。在1610指出基于结束条件的条件分支。其次,如在1612指出的,可以基于接收的消息更新每个相邻节点的信任值并加以存储。例如,可以由适于执行信任传播的处理器执行更新。针对每个节点的信任值基于接收的消息和利润矩阵部分。如果信任值更新会导致已发送消息的改变,那么再次以更新值发送那些消息。不过,如果没有信任值变化或不需要更新消息,那么节点不发出消息。节点的信任值对于相邻节点仍然稳定可能表示已经获得最优解,信任传播已收敛于匹配问题的解。在1610指出基于结束条件进行条件分支。可以将结束条件定义为相对于消息更新到达稳定状态。可以将稳定状态定义为不发送更多消息更新或发送的更新消息量低于特定阈值。或者,可以依据消息更新的迭代次数或发送的消息数来定义结束条件(总数或每个节点的数目)。在另一替代方案中,可以将结束条件定义为过去预定一段时间。如果已到达结束条件,控制前进到1612,否则处理返回到1608。如1612处所示,选择匹配输入搜索词的b匹配广告者/广告节点。基于分类的信任值匹配选定的广告者/广告节点。例如,在b匹配问题中,选择相对于输入节点具有最高信任值(即利润值)的b个节点。在1614,可以提供选定的节点作为到另一过程或系统的输出。例如,可以在搜索引擎结果页或与搜索词关联的内容页上显示与选定节点对应的广告。然后处理在1616结束。要认识到,可以全部或部分地重复序列1602-1616,以便利用程度分布和信任传播完成构思的匹配。例如,可以针对整个图形数据结构更新信任值,然后可以在更新图的信任值之前为多个感兴趣的节点提供匹配结果。或者,因为匹配可能导致因为被选择为匹配节点而使图中一个或多个节点改变(例如,可能到达了广告者的广告配额或花费的资金配额),在每次为节点执行匹配时可能需要再次计算信任值。图17是根据所公开主题一些实施例使用程度分布和信任传播匹配服务成员的系统方框图。具体而言,系统1700包括耦合到程度分布匹配系统1703的约会服务供应商1702 以及用于约会服务成员匹配的信任传播系统1704。约会服务供应商1702还耦合到电子数据存储器,其中存储了表示多个约会服务成员(1706-1708)的数据,每个成员具有相应的兴趣组(1710-1712)。约会服务供应商1702从一个或多个相应用户(1706-1708)接收兴趣 (1710-1712)。可以使用兴趣(1710-1712)产生用户的“利润”矩阵,例如,方式是为给定的用户对产生表示共同兴趣的值,然后可以使用如上所述的程度分布数据加以扩展。响应于接收到的兴趣(1710-1712),约会服务供应商1702利用用于约会服务成员匹配的信任传播系统1704执行成员匹配,以将每个成员与b个其他成员匹配(例如,花费一定费用,约会服务可以向每位用户提供b种介绍或匹配),如下文参考图18所述。然后可以将b个匹配成员传达给它们匹配的成员作为介绍(例如,每个用户可以接收列示了已经匹配的成员的电子邮件)。例如,可以针对成员1提供结果集合1714(例如,在电子邮件中或显示于约会服务处用户的页面上)。在结果之内列出了被选定匹配成员1的b匹配成员1715。类似地, 可以针对成员η提供结果集合1716 (例如,在电子邮件中或显示于约会服务处用户的页面上)。在结果集合1716之内列出了已经选择匹配成员η的b匹配成员1718。在本范例中,图形数据结构的节点包括约会服务的成员。“利润”矩阵(或相容矩阵)能够包括一对成员之间的预言兼容性。B值代表要提供给每个相应成员的匹配或最可能兼容的成员的数目(例如,根据与成员间的服务协议)。不过,每个成员节点也可以受到对其信任值的其他约束,例如要寻找的其他成员的类型、地理偏好、其他偏好,在给定时间期间要提供的匹配配额,等等。即使针对一成员的“利润”或兼容性足够高,正常情况下会被选中,这些约束也可能影响到是否选择该成员作为另一成员的匹配。图18是根据所公开主题一些实施例使用程度分布和信任传播匹配约会服务成员的方法图。处理开始于1802,提供扩展的图形数据结构1804。图形数据结构节点(或顶点)代表要匹配的约会服务成员和根据上述扩展方法的额外伪节点。其次,提供兼容性(或“利润”)矩阵,1806。兼容性矩阵表示约会服务成员每个潜在配对的兼容性(或“利润”)值。如上所述,可以基于共同的兴趣确定兼容性值,或者可以根据约会服务供应商常规使用的其他适当方法确定兼容性值。其次,如1808处所示,在相邻或邻居节点之间传递电子消息。适于执行信任传播的信任传播处理器或分布式处理系统发送来自节点的每条消息,基于利润矩阵值和接收到的该节点的消息。根据如上所述的压缩消息更新规则确定每条消息的值(或数据内容)。 处理器将接收的消息存储在电子存储器中,例如RAM或数据库中。如条件分支所指示的,可以反复进行消息传递,直到满足结束条件1810。其次,如在1808指出的,可以基于接收的消息更新每个相邻节点的信任值并加以存储。例如,可以由适于执行信任传播的处理器执行更新。针对每个节点的信任值基于接收的消息和兼容性矩阵或其相关部分。如果信任值更新会导致已发送消息的改变,那么再次以更新值发送那些消息。不过,如果没有信任值变化或不需要更新消息,那么节点不发出消息。节点的信任值对于相邻节点仍然稳定可能表示已经获得最优解,信任传播已收敛于匹配问题的解。1810处的结束条件控制分支可以被表征为相对于消息更新实现稳定状态。可以将稳定状态定义为不发送更多消息更新的状态。或者,可以将该状态定义为发送的消息更新降到特定阈值以下的状态。或者,可以依据消息更新的迭代次数或发送的消息数来定义结束条件(总数或每个节点的数目)。或者,可以将结束条件定义为过去预定时间间隔。如果已到达结束条件,如1814所示,选择与输入成员匹配的b匹配成员节点。基于分类的信任值对成员进行匹配。例如,在b匹配问题中,选择相对于输入成员具有最高信任值(即兼容性值)的b个节点并可以将它们用作输出以提供具有相似兼容性的成员间的介绍。在1814,可以如上所述向兼容成员提供选定的成员。该过程在1816停止。要认识到,可以全部或部分地重复1802-1816的流程,以便利用信任传播完成构思的约会服务成员匹配。例如,可以针对整个图形数据结构更新信任值,然后可以在更新图的信任值之前为多个感兴趣的节点提供匹配结果。或者,因为匹配可能导致因为被选择为匹配节点而使图中一个或多个节点改变(例如,已经达到成员的介绍配额),在每次为节点执行匹配时可能需要再次计算信任值。图19是根据所公开主题一些实施例使用程度分布和信任传播匹配卖方和买方的系统图。具体而言,系统1900包括耦合到用于拍卖买家/卖家成员匹配的信任传播系统1904的拍卖服务提供商1902。拍卖服务提供商1902也耦合到电子数据存储器,其中存储了表示多个卖家(1906-1908)和多个买家(1914-1916)的数据,每个卖家都具有要提供的相应组的货物/服务(1910-1912),每个买家都具有要寻找的相应组的货物/服务 (1918-1920)。拍卖服务提供商1902接收提供的货物/服务(1910-1912)和寻找的货物/ 服务(1918-1920),可以通过,例如针对向寻求那些货物/服务的对应买家销售其货物/服务的每个卖家产生利润值,使用它们产生利润矩阵,以匹配买家和卖家。响应于接收到的提供的货物/服务(1910-1912)和寻找的货物/服务 (1918-1920),拍卖服务提供商1902利用程度分布匹配系统1903执行图和利润矩阵的扩展。然后,利用扩展的图形数据结构和扩展的利润矩阵,拍卖服务提供商使用拍卖买家/卖家匹配的信任传播系统1904执行买家/卖家匹配,以将每个买家与b个卖家匹配(例如, 使得满足买家的要求),如下文参照图20所述。然后可以将b个匹配卖家通告他们匹配的买家,以便完成事务。例如,可以提供具有买家和卖家之间的b匹配的结果集合1922作为输出。或者,可以直接向该买家或卖家传达很对特定买家或卖家的匹配。在本范例中,图形数据结构的节点表示提供的货物/服务(1910-1912)和寻找的货物/服务(1918-1920)。利润矩阵可以具有基于从特定卖家购买的特定买家的值。例如, 对于买家而言,b值可以表示满足买家要求需要的匹配卖家的数目。对于卖家而言,b值可以表示购买所提供的卖家货物/服务所需的买家数目。不过,每个节点也可能受到对其信任值的其他约束。即使针对一匹配的利润足够高,正常情况下会被选中,这些约束也可能影响到是否选择该买家/卖家作为另一买家/卖家的匹配。图20是根据所公开主题一些实施例使用程度分布和信任传播匹配拍卖中卖方和买方的方法图。在开始2002之后,如2004所示,提供扩展的图形数据结构。扩展的图形数据结构节点或顶点表示要匹配的拍卖买家和卖家和他们相应的货物/服务。其次,在2006, 提供扩展的利润矩阵。扩展的利润矩阵表示针对连接到对应买家节点的每个卖家的利润值。扩展的图形数据结构和扩展的利润矩阵是根据上述方法产生的。如2008处所示,在相邻或邻居节点之间传递电子消息。适于执行信任传播的信任传播处理器或分布式处理系统发送来自节点的每条消息是基于利润矩阵值和接收到的该节点的消息的。根据如上所述的压缩消息更新规则确定每条消息的值(或数据内容)。处理器将接收的消息存储在电子存储器中,例如MM或数据库中。可以反复进行消息传递,直到满足结束条件。在2012,这是受到分支点的控制的。其次,如在2008指出的,可以基于接收的消息更新每个相邻节点的信任值并加以存储。例如,可以由适于执行信任传播的处理器执行更新。针对每个节点的信任值基于接收的消息和利润矩阵部分。如果信任值更新会导致已发送消息的改变,那么再次以更新值发送那些消息。不过,如果没有信任值变化或不需要更新消息,那么节点不发出消息。节点的信任值对于相邻节点仍然稳定可能表示已经获得最优解,信任传播已收敛于匹配问题的解。其次,在分支点2010判断是否满足结束条件。可以将结束条件定义为相对于消息更新到达稳定状态。可以将稳定状态定义为不发送更多消息更新或发送的更新消息量低于特定阈值。或者,可以依据消息更新的迭代次数或发送的消息数来定义结束条件(总数或每个节点的数目)。在另一替代方案中,可以将结束条件定义为过去预定一段时间。如果已到达结束条件,如在2012所示,选择匹配输入买家/卖家节点的b匹配买家或卖家节点,否则控制返回到2008。在2012基于分类的信任值匹配选定的节点。例如,在b匹配问题中,选择相对于输入节点具有最高信任值(即利润值)的b个节点。在2014,可以提供选定的节点作为到另一过程或系统的输出。例如,可以为买家显示对应于所选买家节点的卖家(或反之)。然后,在2016,该处理终止。要认识到,可以全部或部分地重复2002-2016的流程,以便利用信任传播完成构思的买家-卖家匹配。例如,可以针对整个图形数据结构更新信任值,然后可以在更新图的信任值之前为多个感兴趣的节点提供匹配结果。或者,因为匹配可能导致因为被选择为匹配节点而使图中一个或多个节点改变(例如,买家或卖家到达其相应的货物/服务配额), 在每次为节点执行匹配时可能需要再次计算信任值。图21是根据所公开主题一些实施例实现于硬件中的多个程度分布匹配/信任传播处理器的图。具体而言,系统2100包括多个信任传播处理器Q102-2108和2112-2118)。 每个处理器都耦合到总线2110。信任传播处理器被构造成作为信任传播系统中的节点工作,利用如上所述的程度分布进行匹配。系统2150可以包括独立的处理器或能够表示其上构造有多个信任传播处理器的单一半导体装置。在运行时,每个硬件信任传播处理器针对单个节点执行上述信任传播方法。图22 中示出了硬件细节,这是根据所公开主题一些实施例使用程度分布/信任传播处理器进行匹配的硬件图。具体而言,硬件信任传播处理器2202包括乘法器部分2204、加法器部分2206、分类器部分2208,最大化单元2210、存储器2212,每个都耦合到内部总线2214。处理器2202 耦合到外部总线2216,以便与其他处理器通信并交换消息2218。消息2218包括“通往”字段,“来自,,字段和值字段。“通往”字段指定期望的消息接收节点,“来自,,字段指定发送节点,值字段包含根据上述消息更新规则计算的消息值。在运行时,处理器2202收听外部总线2216上的消息。在消息要发往处理器2202 时,处理器2202接收消息并在与消息的发送节点对应的位置将其存储在存储器中。处理器 2202然后能够计算发往作为邻居或相邻节点存储在其存储器中的节点的更新消息值,并能够向每个对应的邻居节点发送更新的消息。使用处理器2202的部分和单元执行确定更新消息和信任值需要的计算。处理器2202也可以经由外部总线2216向另一处理器或系统发送其b匹配节点。可以将处理器2202实现为独立的装置或可以将其并入具有包括其他信任传播处理器节点的其他电路的装置中。除了上述应用之外,使用程度分布数据进行匹配的方法和系统也可以适于提供其他类型问题的解。例如,可以对权重矩阵进行阈值处理。在ViGO =-ek之前设置程度将导致在Wu大于阈值Φ时最大b匹配具有边缘。使用程度分布进行匹配的方法和系统可以通过在程度b处的δ函数之前设置程度模拟传统的b匹配。使用程度分布进行匹配的方法和系统可以通过设置先验程度,在边界之间是均勻的,在别处具有零概率,模拟bd匹配,对程度实施上下边界。使用程度分布进行匹配的方法和系统可以通过复制图节点以形成二部图并将一次两分的程度设置成精确的k同时不对其他两分进行任何约束来模拟k个最近邻居,其中由双划分表示原始图中节点间的边缘。而且,使用程度分布进行匹配的方法和系统能够通过要求每个节点具有至少一个邻居以及至多总共有Ivhi个边缘来模拟生成树估计。图23是根据所公开主题一些实施例使用程度分布和信任传播的推荐后期处理方法的图。方法2300开始于2302并继续到2304。在2304,接收到培训和测试数据集。数据集包括表示用户和项目的节点。例如,用户可以包括看电影的人或读书的人,项目可以包括电影或书。在另一个范例中,用户可以包括电子商务客户,项目可以包括由电子商务销售的项目。处理继续到2306。在2306,接收额定值矩阵。评定矩阵对应于培训数据集中用户设定的项目评定值。 例如,看电影的人可以按照1到5的比例评定电影,或者读者可以按照1到10的比例评定书。处理继续到2308。在2308,确定偏差边界数据。偏差边界表示用户的评定或针对项目的评定将偏离其相应真实平均值的概率。可以使用偏差边界确定培训数据集中每行(例如用户)和列(例如项目)的“程度”分布。可以根据以下公式设定程度潜力
权利要求
1.一种计算机可读介质,其上存储有软件指令,用于将广告与短语匹配,在由处理器执行时,所述软件指令令所述处理器执行如下操作,包括接收第一图形数据结构、第一权重矩阵和程度分布数据作为输入,所述第一图形数据结构具有第一组节点和第二组节点,所述第一组节点的每个表示广告,所述第二组节点的每个表示短语,所述第一权重矩阵包括针对所述第一图形数据结构中的广告和短语之间的每个连接的出价值;产生第二图形数据结构,所述第二图形数据结构包括与所述第一图形数据结构对应的节点和额外的伪节点;产生第二权重矩阵,所述第二权重矩阵包括所述第一权重矩阵和额外的权重值,每个额外权重值与所述第一图形数据结构中的节点之一和所述伪节点之一关联,所述第二权重矩阵中的所述额外权重值是基于所述程度分布数据确定的,所述第二权重矩阵还包括一组零权重值;将所述第二图形数据结构中对应于所述第一图形数据结构的节点约束到预定程度值, 并且不约束所述第二图形数据结构中的所述伪节点;基于所述第二图形数据结构确定最大权重b匹配,其中将b设置成预定程度值,并产生具有二元权重值的中间图形数据结构;截取所述中间图形数据结构;以及基于所述中间图形数据结构的截取部分产生结果图形数据结构作为输出。
2.根据权利要求1所述的计算机可读介质,其中确定最大权重b匹配包括在相邻节点之间传递消息,直到满足结束条件,从而更新与所述第二图形数据结构中选定短语节点的每个相邻广告节点对应的信任值,每条消息都基于所述第二权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容;以及在与所选短语节点关联的电子存储器中存储每个更新的信任值和每条接收的消息。
3.根据权利要求2所述的计算机可读介质,其中产生所述结果图包括选择预定数量的匹配所选短语节点的广告节点,所述匹配基于与所选短语节点相邻的广告节点的更新信任值;以及输出所选的广告节点。
4.根据权利要求1所述的计算机可读介质,其中所述额外权重值包括第一矩阵中的第一组权重值和第二矩阵中的第二组权重值,所述第二矩阵是所述第一矩阵的转置。
5.根据权利要求1所述的计算机可读介质,其中所述程度分布数据包括与每个广告关联的广告者提供的数据。
6.根据权利要求1所述的计算机可读介质,其中所述程度分布数据包括从在先广告和短语匹配数据的统计特性推断的数据。
7.根据权利要求1所述的计算机可读介质,其中所述程度分布数据包括从存储的在先广告和短语匹配数据学习的数据。
8.根据权利要求1所述的计算机可读介质,其中所述软件指令适于在分布式处理器上执行。
9.根据权利要求1所述的计算机可读介质,其中所述操作还包括接收用于每个广告的配额数据;基于与每个广告节点对应的配额数据调节所述第一权重矩阵中该节点的权重值;以及使用针对所述广告节点的已调节权重值产生所述第二权重矩阵。
10.根据权利要求2所述的计算机可读介质,其中每条消息的数据内容都是单个标量值。
11.根据权利要求10所述的计算机可读介质,其中所述单一标量值对应于所选短语节点与其相邻广告节点中相应一个的潜在匹配。
12.根据权利要求11所述的计算机可读介质,其中所述单一标量值包括与所选短语节点和相邻节点中相应一个的潜在匹配对应的权重矩阵值以及该相应邻居节点从另一节点接收的消息值,以及与所述相应邻居节点和所述另一节点之间潜在匹配对应的权重矩阵值。
13.根据权利要求1所述的计算机可读介质,其中所述短语是提交给搜索引擎的搜索查询中包括的短语。
14.根据权利要求1所述的计算机可读介质,其中所述短语是从要显示预定数量广告的内容页之内的内容提取的短语,使得显示的广告涉及在所述内容页上找到的内容。
15.根据权利要求1所述的计算机可读介质,其中所述短语是基于自然语言短语的语义分析确定的短语。
16.根据权利要求1所述的计算机可读介质,其中所述自然语言短语是自然语言搜索查询。
17.根据权利要求1所述的计算机可读介质,其中所述自然语言短语是自然语言广告者目标。
18.一种用于将广告与搜索项匹配的分布式处理系统,所述系统包括多个处理器,每个处理器与具有广告节点、搜索项节点和伪节点的图形数据结构的至少一个节点对应,其中每个广告节点都是至少一个搜索项节点的邻居; 耦合所述多个处理器并适于在所述处理器之间传输消息的网络; 其中每个处理器适于加载并执行计算机可读介质上存储的软件指令,在被执行时,所述软件指令令所述处理器执行如下操作,包括接收第一图形数据结构的一部分、利润矩阵的一部分和程度分布数据的一部分作为输入,所述第一图形数据结构具有第一组节点和第二组节点,第一组节点的每个表示广告,第二组节点的每个表示短语,所述利润矩阵包括针对所述第一图形数据结构中的广告和搜索项之间的每个连接的出价值;产生第二图形数据结构,所述第二图形数据结构包括与所述第一图形数据结构对应的节点和多个伪节点;产生包括所述利润矩阵的该部分的权重矩阵部分,在所述处理器与所述伪节点之一对应时,产生与所述伪节点关联的额外权重值,根据所述伪节点在所述第二图形数据结构中的位置,所述权重矩阵部分中的所述额外权重值基于程度分布数据的所述部分或零值;接收将所述第二图形数据结构中对应于所述第一图形数据结构的节点约束到预定程度值的节点约束值,并且不接收约束所述第二图形数据结构中的所述伪节点的约束值;基于所述第二图形数据结构确定最大权重b匹配,其中将b设置成预定程度值,并产生具有二元权重值的中间图形数据结构,所述确定包括在相邻节点之间传递消息,直到满足结束条件,从而更新与其相应邻居节点对应的信任值,每条消息的数据内容基于权重矩阵值和接收的消息,其中根据消息更新规则确定每条消息的数据内容;在与相应处理器关联的电子存储器中存储每个更新的信任值和每条接收的消息; 截取所述中间图形数据结构;基于所述中间图形数据结构的截取部分产生结果图形数据结构作为输出,包括选择预定数量的匹配邻居节点,所述匹配是基于邻居节点的更新信任值确定的;以及输出所选的匹配邻居节点。
19.根据权利要求18所述的分布式处理系统,其中每条消息的数据内容都是单个标量值。
20.根据权利要求19所述的分布式处理系统,其中所述单一标量值对应于所选搜索项节点与其相邻广告者节点中相应一个的潜在匹配。
21.根据权利要求20所述的分布式处理系统,其中所述单一标量值包括与所选搜索项节点和相邻节点中相应一个的潜在匹配对应的利润矩阵值以及该相应邻居节点从另一节点接收的消息值,以及与所述相应邻居节点和所述另一节点之间潜在匹配对应的利润矩阵值。
22.根据权利要求18所述的分布式处理系统,其中所述处理器由云计算系统构成。
23.根据权利要求18所述的分布式处理系统,其中每个利润矩阵值表示与相邻节点间边缘关联的利润量。
24.根据权利要求18所述的分布式处理系统,其中反复执行所述更新,直到满足所述结束条件。
25.根据权利要求18所述的分布式处理系统,其中所述结束条件是所述更新预定数量的重复。
26.根据权利要求18所述的分布式处理系统,其中所述结束条件被定义为在预定一段时间之内接收到无变化的消息值。
27.根据权利要求18所述的分布式处理系统,其中所述结束条件是从每个节点发送若干消息。
28.根据权利要求18所述的分布式处理系统,其中所述结束条件是过去预定一段时间。
29.根据权利要求18所述的分布式处理系统,其中所述结束条件被定义为在第一预定一段时间之内接收到无变化的消息值以及过去第二预定一段时间中最早发生的一个。
30.一种用于将广告者与搜索项匹配的计算机化方法,所述方法包括提供第一二部图数据结构,所述第一二部图数据结构具有多个广告者节点和多个搜索项节点,其中每个广告者节点通过边缘连接到对应的搜索项节点;提供利润矩阵,所述利润矩阵具有针对所述二部图数据结构的每条边缘的利润; 提供表示每个节点的程度分布的程度分布数据;产生第二二部图数据结构,所述第二二部图数据结构包括所述第一二部图数据结构的节点和多个伪节点;利用适于执行权重矩阵扩展的处理器产生权重矩阵,所述权重矩阵包括所述利润矩阵的值和与所述伪节点关联的额外值,所述权重矩阵中的所述额外值是基于所述程度分布数据确定的且包括一组零权重值;将所述第二图形数据结构中对应于所述第一图形数据结构的节点约束到所述预定程度值,并且不约束所述第二图形数据结构中的所述伪节点;基于所述第二图形数据结构确定最大权重b匹配,其中将b设置成预定程度值; 产生具有二元权重值的中间二部图数据结构;通过截取所述中间图形数据结构以去除伪节点来产生结果图形数据结构; 选择预定数量的与一组感兴趣搜索项节点的每个搜索项节点匹配的广告者节点,所述匹配是基于与每个感兴趣的搜索项节点相邻的广告者节点的结果图形值确定的;以及输出与每个感兴趣的搜索项节点匹配的所选广告者节点。
31.根据权利要求30所述的计算机化方法,其中确定所述最大权重b匹配包括利用适于执行信任传播一般化匹配的处理器在相邻节点之间传递消息,直到满足结束条件,从而更新与连接到选定搜索项节点的每个广告者节点对应的信任值,每条消息都基于权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容;以及在与对应广告者节点关联的电子存储器中存储每个更新的信任值和每条接收的消息。
32.根据权利要求31所述的方法,还包括在对应于与所选广告者节点关联的搜索项节点的搜索结果页上显示与所选广告者节点的每个关联的广告。
33.根据权利要求31所述的方法,还包括在每个广告者节点和每个搜索项节点处存储所述利润矩阵的一部分和所述程度分布数据的一部分,其中基于每个相应广告者节点和每个相应搜索项节点的相邻节点选择每个部分。
34.根据权利要求31所述的方法,其中利用并行处理执行所述更新和存储。
35.根据权利要求31所述的方法,其中所述处理器是适于使用具有程度分布数据的信任传播执行二部匹配的云计算系统。
36.根据权利要求31所述的方法,其中所述电子存储器是云存储系统。
37.根据权利要求30所述的方法,其中每个利润表示与广告关联的广告者刊登广告的利润。
38.根据权利要求31所述的方法,其中反复执行所述更新,直到满足所述结束条件。
39.根据权利要求31所述的方法,其中所述结束条件是所述更新的预定数量的重复。
40.根据权利要求31所述的方法,其中所述结束条件被定义为在预定一段时间期间更新的信任值的稳定状态。
41.根据权利要求31所述的方法,其中所述结束条件是从每个节点发送的若干消息。
42.根据权利要求31所述的方法,其中所述结束条件是过去预定一段时间。
43.根据权利要求31所述的方法,其中所述结束条件被定义为在第一预定一段时间期间更新的信任值的稳定状态以及过去第二预定一段时间中最早发生的一个。
44.一种用于在拍卖中将客户与供应商匹配的计算机化方法,所述方法包括提供第一二部图数据结构,所述第一二部图数据结构具有多个供应商节点和多个客户节点,其中每个供应商节点通过边缘连接到客户;提供第一权重矩阵数据结构,所述第一权重矩阵数据结构具有针对所述二部图数据结构的每条边缘的权重值,其中向每个供应商节点和每个客户节点提供所述权重矩阵的一部分,所述权重矩阵部分包括针对与每个相应供应商节点和客户节点相邻的节点的权重值;使用适于利用在先程度分布信息估计图形结构的处理器产生第二图形数据结构,所述第二图形数据结构包括与所述第一二部图数据结构对应的节点并具有多个伪节点;利用所述处理器产生第二权重矩阵,所述第二权重矩阵包括所述第一权重矩阵和额外的权重值,每个额外权重值与所述伪节点之一关联,所述第二权重矩阵中的额外权重值是基于所述程度分布数据确定的,所述第二权重矩阵还包括与一组伪节点关联的一组零权重值;在耦合到所述处理器的电子存储器中存储所述第二权重矩阵; 将所述第二图形数据结构中对应于所述第一图形数据结构的节点的节点约束到预定程度值,并且不约束所述第二图形数据结构中的所述伪节点;基于所述第二图形数据结构确定最大权重b匹配,其中将b设置成预定程度值,并产生具有二元权重值的中间图形数据结构; 截取所述中间图形数据结构;以及基于所述中间图形数据结构的截取部分产生结果图形数据结构作为输出。
45.根据权利要求44所述的计算机化方法,其中确定所述最大权重b匹配包括利用适于执行信任传播的处理器在相邻节点之间传递电子消息,直到满足结束条件, 从而更新与供应商节点和客户节点的每个对应的信任值,每条消息都基于所述权重矩阵部分的值和接收的消息,其中根据压缩消息更新规则确定每条消息的值;以及在与对应节点关联的电子存储器中,在所述电子存储器的存储位置中存储接收的消息和针对每个供应商节点和客户节点的更新信任值。
46.根据权利要求45所述的计算机化方法,其中所述方法还包括利用所述处理器选择预定数量的供应商节点和与每个所选供应商节点匹配的预定数量的相应客户节点,所述客户节点的选择基于更新的信任值;以及输出所选的供应商节点和相应的匹配客户节点。
47.根据权利要求45所述的计算机化方法,其中利用并行处理执行所述更新和存储。
48.根据权利要求45所述的计算机化方法,其中所述并行处理是在云计算系统上执行的,所述电子存储器包括云存储系统。
49.根据权利要求45所述的计算机化方法,其中所述第一权重矩阵中的每个权重表示对应供应商和客户之间连接的利润量。
50.根据权利要求45所述的计算机化方法,其中反复执行所述更新,直到满足所述结束条件。
51.根据权利要求44所述的计算机化方法,其中确定所述最大权重b匹配包括向所述第二图形数据结构应用最大流算法。
52.根据权利要求44所述的计算机化方法,其中针对每个节点的程度分布数据包括由相应供应商或客户提供的数据。
53.根据权利要求44所述的计算机化方法,其中所述程度分布数据包括从在先供应商和客户数据的统计特性推断的数据。
54.根据权利要求1所述的计算机化方法,其中所述程度分布数据包括从存储的在先供应商和客户匹配数据学习的数据。
55.一种计算机可读介质,其上存储有软件指令,用于将拍卖中的买家与卖家匹配,在由处理器执行时,所述软件指令令所述处理器执行如下操作,包括提供第一图形数据结构,所述第一图形数据结构具有多个卖家节点和多个买家节点, 其中每个卖家节点通过边缘连接到买家节点;提供第一权重矩阵数据结构,所述第一权重矩阵数据结构具有针对所述第一图形数据结构的每条边缘的权重值,其中向每个供应商节点和每个客户节点提供所述第一权重矩阵的一部分,所述权重矩阵部分包括针对与每个相应供应商节点和客户节点相邻的节点的权重值;使用适于利用在先程度分布信息估计图形结构的处理器产生第二图形数据结构,所述第二图形数据结构包括与所述第一图形数据结构对应的节点和多个伪节点;利用所述处理器产生第二权重矩阵,所述第二权重矩阵包括所述第一权重矩阵和额外的权重值,每个额外权重值与所述伪节点之一关联,所述第二权重矩阵中的额外权重值是基于所述程度分布数据确定的,所述第二权重矩阵还包括与一组伪节点之间的边缘关联的一组零权重值;在耦合到所述处理器的电子存储器中存储所述第二权重矩阵; 将所述第二图形数据结构中对应于所述第一图形数据结构的节点的节点约束到预定程度值,并且不约束所述第二图形数据结构中的所述伪节点;基于所述第二图形数据结构确定最大权重b匹配,其中将b设置成预定程度值,所述确定包括利用适于执行信任传播的处理器在相邻节点之间传递电子消息,直到满足结束条件, 从而更新与供应商节点和客户节点的每个对应的信任值,每条消息都基于所述权重矩阵部分的值和接收的消息,其中根据压缩消息更新规则确定每条消息的值;以及在与所述对应节点关联的电子存储器中,在所述电子存储器的存储位置中,存储接收的消息和针对每个供应商节点和客户节点的更新信任值;通过截取所述中间图形数据结构产生具有二元权重值的中间图形数据结构;以及利用所述处理器选择预定数量的卖家节点和与每个所选卖家节点匹配的预定数量的相应买家节点,所述买家节点的选择基于更新的信任值;以及输出所选的卖家节点和相应的匹配买家节点。
56.一种使用信任传播匹配社交网络成员的计算机化方法,所述方法包括访问第一图形数据结构和兼容性矩阵,所述第一图形数据结构具有多个成员节点,每个节点表示社交网络服务的成员,所述兼容性矩阵表示由所述图形数据结构的边缘连接的成员节点之间的兼容性;访问程度分布数据,所述程度分布数据包括针对每个成员节点的程度分布; 产生第二图形数据结构,所述第二图形数据结构包括从所述第一图形数据结构拷贝的节点和一组伪节点;产生权重矩阵,所述权重矩阵包括兼容性矩阵以及与成员节点和伪节点之间的边缘对应的额外权重值,所述额外权重值基于所述程度分布数据的一部分,所述权重矩阵还包括与伪节点之间的边缘对应的一组零权重值;约束所述第二图形数据结构之内的成员节点的程度值,并且不约束所述第二图形数据结构之内的伪节点;利用适于使用程度分布和信任传播执行社交网络服务成员匹配的处理器在相邻节点之间传递消息,直到满足结束条件,从而更新与所述第二图形数据结构的节点之间的边缘对应的信任值,每条消息都基于权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容;在与对应节点关联的电子存储器中存储每个更新的信任值和每条接收的消息; 提取所述第二图形数据结构中对应于所述成员节点的一部分作为结果图形数据结构;从所述结果图形数据结构选择与感兴趣成员节点匹配的预定数量的相邻成员节点,所述匹配是基于所述感兴趣成员节点的邻居成员节点的更新信任值确定的;以及输出所选的成员节点。
57.一种用于将项目与其他项目匹配的系统,包括适于存储软件指令的存储器,所述软件指令用于执行利用程度分布将项目与其他项目匹配的方法,第一图形数据结构具有表示项目的节点,第一权重矩阵具有与所述第一图形数据结构中连接两个项目的边缘关联的权重值,所述程度分布数据具有针对所述第一图形数据结构中每个节点的程度分布数据;耦合到所述存储器并适于执行所述软件指令且执行如下操作的处理器,所述操作包括产生第二图形数据结构,所述第二图形数据结构包括表示所述第一图形数据结构的节点和多个伪节点;产生第二权重矩阵,所述第二权重矩阵包括表示所述第一权重矩阵的值并具有与所述伪节点关联的额外值,所述额外值是基于所述程度分布数据确定的;针对所述第二图形数据结构中表示所述第一图形数据结构的所述节点的节点确定约束值;对所述第二图形数据结构和所述第二权重矩阵执行最大权重b匹配操作以产生结果矩阵;提取所述结果矩阵中与所述第一图形数据结构的所述节点对应的一部分;以及提供所述结果矩阵的一部分作为输出。
58.根据权利要求57所述的系统,其中执行所述最大权重b匹配操作包括对所述第二图形数据结构和第二权重矩阵执行最大流操作。
59.根据权利要求57所述的系统,其中执行所述最大权重b匹配操作包括在所述第二图形数据结构的节点间执行信任传播操作。
60.根据权利要求59所述的系统,其中所述信任传播操作包括在相邻节点之间传递消息,直到满足结束条件,从而更新与所述第二图形数据结构中选定节点的每个相邻节点对应的信任值,每条消息都基于所述第二权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容;以及在与所选节点关联的电子存储器中存储每个更新的信任值和每条接收的消息。
61.一种用于后期处理推荐输出的计算机化方法,所述方法包括接收培训数据集,所述培训数据集包含多个节点,所述多个节点具有一组表示用户的节点和一组表示项目的节点;接收评级矩阵,所述评级矩阵表示用户对所述培训数据集中项目的偏好,所述评级矩阵中的每个单元都包含表示用户之一对项目之一的评级的值;接收测试数据集,所述测试数据集包含多个节点,所述多个节点具有一组表示用户的节点和一组表示项目的节点,针对所述培训数据集中的每个用户和项目产生包括偏差边界的偏差边界数据; 基于所述培训数据集和所述评级矩阵学习针对边缘权重的值,并在第一权重矩阵中存储所述边缘权重;产生扩展的图形数据结构,所述扩展的图形数据结构包括所述测试数据集的节点和额外的伪节点;产生第二权重矩阵,所述第二权重矩阵包括来自所述第一权重矩阵与来自所述测试数据集的节点对应的值以及与所述伪节点对应的额外值,所述额外值是基于所述偏差边界数据的一部分确定的;将与所述测试数据集节点对应的扩展图形数据结构节点约束到预定程度值,并且不约束所述扩展图形数据结构中的所述伪节点;基于所述扩展图形数据结构和所述第二权重矩阵确定最大权重b匹配,其中将b设置成预定程度值,并产生具有二元值的中间图形数据结构;截取所述中间图形数据结构,从而仅保留与所述测试数据集的节点对应的节点;以及基于所述中间图形数据结构的截取部分产生结果图形数据结构作为输出。
62.根据权利要求61所述的计算机化方法,其中确定所述最大权重b匹配包括在相邻节点之间传递消息,直到满足结束条件,从而更新与所述扩展图形数据结构中选定用户节点的每个相邻项目节点对应的信任值,每条消息都基于所述第二权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容;以及在与所选用户节点关联的电子存储器中存储每个更新的信任值和每条接收的消息。
63.根据权利要求62所述的计算机化方法,其中产生所述结果图包括选择预定数量的与所选用户节点匹配的项目节点,所述匹配基于与所选用户节点相邻的项目节点的更新信任值;以及输出所选的项目节点。
64.根据权利要求61所述的计算机化方法,其中所述学习包括利用逻辑损失函数执行快速最大裕度矩阵因子分解(fMMMF)。
65.一种推荐系统,包括第一处理器,所述第一处理器适于学习针对具有多个节点的图形数据结构的边缘的边缘权重,所述多个节点包括一组用户节点和一组项目节点,所述第一处理器还适于在第一权重矩阵中存储所述边缘权重;第二处理器,所述第二处理器耦合到所述第一处理器并适于从所述第一处理器接收所述图形数据结构的一部分和所述第一权重矩阵,所述第二处理器还适于利用程度分布数据执行匹配操作,所述程度分布数据基于偏差边界数据,所述偏差边界数据包括针对所述图形数据结构中的每个用户和项目的偏差边界,所述偏差边界数据是基于所述图形数据结构的部分和对应于所述图形数据结构的偏好矩阵确定的,其中所述匹配操作包括产生扩展的图形数据结构,所述扩展的图形数据结构包括所述图形数据结构的该部分的节点和多个伪节点;产生第二权重矩阵,所述第二权重矩阵包括来自所述第一权重矩阵与来自所述图形数据结构的该部分的节点对应的值以及与所述伪节点对应的额外值,所述额外值是基于所述偏差边界数据的一部分确定的;将与所述图形数据结构节点的该部分对应的扩展图形数据结构节点约束到预定程度值,不约束所述扩展图形数据结构中的所述伪节点;基于所述扩展图形数据结构和所述第二权重矩阵确定最大权重b匹配,其中将b设置成预定程度值,所述确定包括在相邻节点之间传递消息,直到满足结束条件,从而更新与所述扩展图形数据结构中选定用户节点的每个相邻项目节点对应的信任值,每条消息都基于所述第二权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容;以及在与所选用户节点关联的电子存储器中存储每个更新的信任值和每条接收的消息; 截取所述中间图形数据结构,从而仅保留与所述图形数据结构的节点的该部分对应的节点;以及基于所述中间图形数据结构的截取部分产生结果图形数据结构作为输出。
66.根据权利要求65所述的推荐系统,其中产生所述结果图包括选择预定数量的与所选用户节点匹配的项目节点,所述匹配基于与所选用户节点相邻的项目节点的更新信任值;以及输出所选的项目节点。
67.根据权利要求66所述的推荐系统,其中所述项目包括约会应用中的异性成员。
68.根据权利要求66所述的推荐系统,其中所述学习包括利用逻辑损失函数执行快速最大裕度矩阵因子分解(fMMMF)。
69.根据权利要求66所述的推荐系统,其中所述项目包括电影。
70.根据权利要求66所述的推荐系统,其中所述项目包括图书。
71.根据权利要求66所述的推荐系统,其中所述项目包括声音记录。
72.—种计算机可读介质,其上存储有软件指令,用于对计算机进行编程以对推荐数据进行后期处理,在由处理器执行时,所述软件指令令所述处理器执行如下操作,包括接收培训数据集,所述培训数据集包含多个节点,所述多个节点包括一组用户节点和一组项目节点;接收评级矩阵,所述评级矩阵表示用户对所述培训数据集中项目的偏好,所述评级矩阵中的每个单元都包含表示用户之一对项目之一的评级的值;接收测试数据集,所述测试数据集包含多个节点,所述多个节点包括一组用户节点和一组项目节点;针对所述培训数据集中的每个用户和每个项目产生偏差边界数据,所述偏差边界数据包括偏差边界;基于所述培训数据集和所述评级矩阵学习针对所述测试数据集中的边缘权重的值,并在所述第一权重矩阵中存储所述边缘权重,所述学习包括利用逻辑损失函数执行快速最大裕度矩阵因子分解例程;产生扩展的图形数据结构,所述扩展的图形数据结构包括所述测试数据集的节点和额外的伪节点;产生第二权重矩阵,所述第二权重矩阵包括来自所述第一权重矩阵与来自所述测试数据集的节点对应的值以及与所述伪节点对应的额外值,所述额外值是基于所述偏差边界数据的一部分确定的;将与所述测试数据集节点对应的扩展图形数据结构节点约束到预定程度值,不约束所述扩展图形数据结构中的所述伪节点;基于所述扩展图形数据结构和所述第二权重矩阵确定最大权重b匹配,其中将b设置成预定程度值,所述确定包括在相邻节点之间传递消息,直到满足结束条件,从而更新与所述扩展图形数据结构中选定用户节点的每个相邻项目节点对应的信任值,每条消息都基于所述第二权重矩阵值和接收的消息,其中根据压缩消息更新规则确定每条消息的数据内容,以及在与所选用户节点关联的电子存储器中存储每个更新的信任值和每条接收的消息;截取所述中间图形数据结构,从而仅保留与所述测试数据集的节点对应的节点;以及基于所述中间图形数据结构的截取部分产生结果图形数据结构作为输出。
73.根据权利要求72所述的计算机可读介质,其中产生所述结果图包括选择预定数量的与所选用户节点匹配的项目节点,所述匹配基于与所选用户节点相邻的项目节点的更新信任值;以及输出所选的项目节点。
74.根据权利要求72所述的计算机可读介质,其中所述项目包括电影。
75.根据权利要求72所述的计算机可读介质,其中所述项目包括图书。
76.根据权利要求72所述的计算机可读介质,其中所述项目包括声音记录。
77.根据权利要求72所述的推荐系统,其中所述项目包括约会应用中的异性成员。
全文摘要
公开了一种利用程度分布信息进行匹配的方法、系统、计算机程序产品和计算机可读介质。该方法的一实施例可以包括对利用程度分布信息扩展的图形数据结构执行b匹配,以便识别选定输入节点的邻居。可以使用信任传播执行b匹配。信任传播方法适于使用压缩消息更新规则并适于用于分布式处理系统。一实施例还可以包括,通过向第一匹配结果应用程度分布信息以产生第二匹配结果来增强匹配结果。公开了用于在线广告/搜索项匹配、产品推荐、约会服务和社交网络匹配、拍卖买家/卖家匹配和资源分配等的实施例。
文档编号G06Q30/00GK102317962SQ200980156712
公开日2012年1月11日 申请日期2009年12月11日 优先权日2008年12月12日
发明者B·黄, T·杰巴拉 申请人:纽约市哥伦比亚大学理事会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1