使用深度学习模型识别内容项的制作方法

文档序号:14959002发布日期:2018-07-18 00:08阅读:189来源:国知局

本公开总体涉及训练深度学习模型。



背景技术:

深度学习是可涉及在受监督或无监督设置中训练模型的一种机器学习类型。深度学习模型可被训练来学习数据的表示。作为实例并非限制性方式,深度学习模型可将数据表示为强度值的向量。深度学习模型可用于数据分类。分类可涉及通过训练深度学习模型来确定数据点属于哪个类别集合。



技术实现要素:

在具体实施例中,系统可使用深度学习模型来识别与输入的内容项相似的一个或多个内容项。可以对深度学习模型进行训练,以将内容项映射到多维嵌入空间中的嵌入。每一嵌入可对应于嵌入空间中的点的坐标。可以对深度学习模型进行训练以生成内容项的嵌入,使得属于相同类的内容项位于嵌入空间中的相同点聚类中。可进一步训练深度学习模型以基于内容项的一个或多个属性来生成内容项的嵌入,其将内容项放置在聚类内的特定位置处。

内容项的嵌入可用于完成任何数量的合适任务。作为示例而不是限制的方式,系统可以采用搜索算法来识别嵌入空间中的、作为接近搜索查询的内容项的一个或多个嵌入。系统可以确定所识别的嵌入的内容项与搜索查询相似。在具体实施例中,可以响应于所接收的、用户在客户端系统输入的搜索查询识别内容项。所识别的内容项可作为在运行在客户端系统上的应用程序(例如,消息传送平台、与社交网络系统相关联的应用程序或任何其他合适的应用程序)的界面上的建议而显示给用户。

在具体实施例中,第二内容项可以被识别(例如,响应于包括第一内容项的搜索查询)并且可以在嵌入空间中具有接近于第一内容项的嵌入(例如,所识别的第二内容项可以是与第一内容项相关和/或相似的实体或者数据对象)。所识别的第二内容项可被高速缓存或预高速缓存。作为示例而不是限制的方式,可以为一个或多个用户或者一个或多个客户端系统单独地缓存或者预缓存所识别的接近第一内容项的第二内容项。作为示例而非限制,高速缓存或预高速缓存可以在服务器侧或在客户端侧被实现或执行用于一个或多个特定用户或用于每个用户。高速缓存或预高速缓存可允许更快地访问内容项。作为示例而不是限制的方式,如果相应用户请求内容项或者如果服务器向用户(例如,向用户的客户端系统)推送推荐(例如,识别的第二内容项),则可以快速访问内容项(例如,识别的与第一内容项相关或相似的第二内容项)。通过使用所提出的方法,可以将与所获得或者接收的第一内容项有关的内容项(例如,存储在作为实例而非限制性方式的社交网络系统的计算系统的一个或多个数据库内的数据对象)识别为来自用户或者客户端系统的搜索查询是可能的。所识别的第二内容项可各自与被访问的概率相关联。在具体实施例中,可以基于访问的概率超过某个最小概率选择第二内容项。高速缓存或预先高速缓存这样的内容项或对象在避免无用高速缓存和/或减少数据流量方面可能是有效的,和/或在改善访问相应内容项或数据对象的速度或访问时间方面是有效的。在所有可能的内容项(例如,数十亿个内容项)中,在每个搜索中可仅发现内容项的子集相关。通过使用所提议的方法,相关内容项的子集可以被发送到客户端系统或由客户端系统高速缓存或预高速缓存。相关内容项,包括作为示例而不是作为限制,被确定为与第一内容项相似(例如,在嵌入空间中接近于第一内容项)的第二内容项,可以通过在嵌入空间中执行搜索(例如,距离搜索)来快速地获得和/或识别第一内容项。在具体实施例中,实体的聚类可以基于所使用的相应数据库。换言之,聚类可以是特定于数据库的。作为示例而非限制性方式,可以基于所提议的方法针对社交网络系统的一个或多个用户执行相关实体的聚类。

在具体实施例中,作为示例而不是限制的方式,内容项、与内容项相关联的信息或者这两者可以作为数据对象存储在一个或多个数据库或者数据存储中。作为示例而非限制,这些数据库或数据存储可以在一个或多个数据中心中,其可以在地理上分布(例如,在不同的位置、城市、国家和/或大陆中)。在具体实施例中,嵌入空间可用于预测一个或多个内容项相对于一个或多个特定用户、每个用户、社交网络系统的一个或多个用户、或者其任意组合的相关性,并且每个用户均可位于相应地理位置内。被预测为具有相关性的内容项和相应的信息可基于所确定的相关性被存储在位于距一个或多个用户更近位置的数据库中。作为示例而非限制性地,被确定为相关的内容项和相关联的信息还可以被预先缓存或高速缓存在距离上靠近一个或多个用户或客户端系统的地理位置的位置的一个或多个客户端系统、一个或多个服务器或其任意组合上。此类实施例可有效地减少远程数据库和/或数据中心之间的负载和/或数据流量。这些实施例还可改善(例如,减少)访问时间(例如,用于访问特定内容项)。

在具体实施例中,内容项可以进一步被聚类或者重新聚类。聚类可以导致更快的搜索结果(即,减少搜索时间并由此减少搜索引擎的负载)和/或导致跨相应数据网络的更少数据流量。聚类可基于它们在嵌入空间中的位置或定位来跨数据存储器存储。该存储方案可以改善数据访问时间和/或搜索时间。作为实施例但并不作为限制,基于内容项在内嵌空间中的相应定位将内容项的聚类存储在数据存储中,可导致搜索引擎能够访问更少的数据存储以检索相关结果。另外,通过对嵌入进行聚类,与从不执行聚类的嵌入空间检索搜索结果的应用相比,从该嵌入空间检索的搜索结果可以更准确/特定,因为搜索结果可以附加地基于实体的属性而不仅基于一般高级分类。客户端系统可不必继续提交越来越精细的搜索以便为用户获得足够的搜索结果,这意味着可以减少客户端系统和服务器之间的交互的数量和强度。此外,聚类可以提供更多多样化的搜索结果,因为来自不同聚类的搜索结果可以被有意地拉入到搜索结果中。尽管描述了其中由服务器执行嵌入的确定的具体实施例,但是这是作为示例而非限制,客户端系统可以确定内容项在嵌入空间中的嵌入中的一些或全部。作为示例而不是限制的方式,内容项可以是视觉内容,并且可以在客户端系统上或者由客户端系统执行视觉内容的预处理(例如,确定视觉内容的一个或多个属性)。然后,可以向用户呈现(例如,在客户端系统的界面处)与视觉内容相对应的一个或多个搜索词(例如,每个搜索词基于视觉内容的一个或多个属性)。然后,可以(例如,通过客户端系统或服务器发布相应提示)提示用户确认搜索词。

本文所公开的实施例仅是示例,并且本公开的范围不限于它们。具体实施例可以包括本文所公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些或不包括这些部件、元件、特征、功能、操作或步骤。根据本发明的实施例在针对方法、存储介质、系统和计算机程序产品的所附权利要求中具体公开,其中在一个权利要求类别(例如,方法)中提到的任何特征也可以在另一个权利要求类别(例如,系统)中要求保护。所附权利要求中的依赖性或背部引用仅出于正式的原因而选择。然而,还可以要求保护任何先前权利要求(特别是多个从属权利要求)的有意引用导致的任何主题,使得披露并且可以要求保护权利要求及其特征的任何组合,而不管在所附权利要求中选择的从属权利要求如何。可以要求保护的主题不仅包括所附权利要求中所阐述的特征的组合,还包括权利要求中的特征的任何其他组合,其中权利要求中提到的每个特征可以与权利要求中的任何其他特征或其他特征的组合组合。此外,在此描述或描绘的任何实施例和特征可以在单独的权利要求中和/或在与在此描述或描绘的任何实施例或特征或与所附权利要求的任何特征的任何组合中要求保护。

在根据本发明的实施例中,一种计算机实现的方法,可以包括:

由一个或多个计算装置接收第一内容项;

由一个或多个计算设备确定所述第一内容项的第一嵌入,其中:

所述第一嵌入对应于嵌入空间中的第一点,

所述嵌入空间包括与第二内容项的多个第二嵌入对应的多个第二点,

使用深度学习模型来确定所述第一和第二嵌入,

所述第一点和所述第二点位于所述嵌入空间中的一个或多个聚类中,

所述聚类中的每个聚类与内容项的类别相关联,并且

所述第一点和所述第二点进一步基于所述第一内容项和所述第二内容项的一个或多个属性而位于所述聚类内;以及

由一个或多个计算装置基于以下各项来识别与所述第一内容项相似的所述第二内容项中的一个或多个:

第一点的位置,

对应于所述一个或多个第二内容项的所述一个或多个第二点位于其中的一个或多个特定聚类,以及

所述一个或多个第二点的位置对应于所述特定聚类内的所述一个或多个第二内容项。

实施例中的深度学习模型可以是机器学习模型、神经网络、潜神经网络、任何其他合适的深度学习模型或其任何组合。在实施例中,深度学习模型可以具有多个抽象层,其中输入可以是任何合适数量的内容项,并且其中,输出可以是内容项的一个或多个嵌入。

嵌入空间可以是多维空间,例如,d-维度,其中d是控制容量(例如,自然数)的超参数,并且其中,嵌入空间可以包括对应于内容项的嵌入的多个点。如本文所使用的,内容项的嵌入是指内容项在嵌入空间中的表示。

在具体实施例中,深度学习模型(例如,神经网络)可以包括将内容项映射到中向量的一个或多个索引,其中,表示实数集,并且d是控制容量(例如,自然数)的超参数。向量可以是d维度强度向量。如在此所使用的,强度值可以是在-1到1范围内的任何合适的值。内容项的向量表示中的每一个可以为嵌入空间中的相应点提供坐标。

在具体实施例中,作为示例而非限制性地,取决于聚类在嵌入空间中的相应位置,第二内容项与之相关联(即,位于其中)的聚类可以跨多于一个的数据存储器存储。具体地,聚类可以具有以下优点:已经接收到第一内容项(例如,在搜索查询中)的对应搜索引擎可能集中于有限数量的数据存储器。即,搜索引擎可能不必去往尽可能多的数据存储器以检索相关结果(例如,与第一内容项相似的第二内容项)。这可以减少搜索引擎的负载。这还可能导致数据传输率降低。

在具体实施例中,聚类可以用于提供多样化搜索结果。例如,为了使搜索结果多样化,可以有意地从不同聚类拉取搜索结果。

在具体实施例中,可以由一个或多个服务器确定内容项在嵌入空间中的嵌入。在具体实施例中,可以由一个或多个客户端系统确定内容项的嵌入。作为示例而不是限制的方式,可以由客户端系统整体或部分地执行任何合适类型的内容(例如,视觉内容)的预处理。作为另一个示例,并非通过限制的方式,客户端系统可以确定内容项(例如,视觉内容项)的一个或多个属性。

在具体实施例中,嵌入和聚类可以用于将相应的内容项存储在一个或多个数据库中。作为示例而非限制,这些一个或多个数据库可以是包括一个或多个互连数据库的数据中心。内容项可以基于与某个地理位置内的用户或其他实体的相关性的预测或确定的概率而被存储在一个或多个数据库中。内容项还可以基于内容项和与某个地理位置相关联的内容项之间的相似性而被存储在一个或多个数据库中。

在具体实施例中,嵌入空间可以用于确定第二内容项相对于给定的第一内容项的相关性或相似性值的概率(例如,基于嵌入空间中的内容项之间的接近度或者基于嵌入空间中的相同聚类中的内容项)。将内容项存储在一个或多个数据库中的方式(即,哪些内容项将被存储在哪个数据库中)可基于所确定的概率或相似性值来确定。作为实例并非限制性方式,例如,基于用户和/或地理特定的预测。

使用嵌入空间来确定内容项之间的相似性的准确性可以改善数据访问时间。嵌入还可有效地减少(例如,通过搜索引擎)搜索时间。具体地,根据如从嵌入空间确定的相似性的分类和/或存储,并且特别是根据确定的相似性的聚类,可能导致较快的搜索时间、较少的数据流量,并且导致相应搜索引擎和相关数据库的系统负载的减少。

本发明的实施例还可涉及一种操作计算机实现的搜索引擎用于在一个或多个电子数据库中搜索和/或检索内容项的方法,所述内容项与存储在所述一个或多个数据库中的数据对象相关联。操作搜索引擎的方法可涉及如上所述的方法,包括如本文所述的其任何实施例,其中,确定与第一内容项相似的第二内容项中的一个或多个的方法可用于在一个或多个电子数据库中识别搜索结果,并且基于所确定的相似的第二内容项,例如可生成搜索结果(特别是搜索结果页面)并提供搜索结果以在与查询用户相关联的显示设备上显示。具体地,第一内容项可以表示由一个或多个计算设备接收的搜索查询或搜索词,并且被确定为与第一内容项相似的一个或多个第二内容项可以用作搜索结果,或者用于响应于接收到第一内容项而生成搜索结果。

在具体实施例中,作为示例而不是限制的方式,基于多维嵌入空间中的内容项之间的相似性确定搜索结果可以提高对包括一个或多个不同数据库的电子数据库中的特定内容项的搜索的速度和/或准确度。

由根据所提议的方法运行的相应搜索引擎生成的搜索结果可能更准确和/或更特定,至少因为搜索结果可能不是仅基于高级别类别(这可能是利用已知搜索算法的情况)而是也可基于要搜索的内容项的属性。由此,客户端系统可能不必继续提交越来越精细的搜索,以便获得用户寻求的搜索结果,或者换言之,可以极大地减少要提交给搜索引擎的搜索的数量。这尤其适合于减少系统负载,尤其是客户端系统与服务器之间的交互。

可以使用减少位于一个或多个聚类中的点之间的重叠的损失函数来训练深度学习模型。

第一和第二内容项的一个或多个属性可以是深度学习模型的潜输入变量。

深度学习模型可以是神经网络。

在具体实施例中,根据本发明,该方法可以包括:基于识别的一个或多个第二内容项生成搜索结果并且提供搜索结果以在与查询用户相关联的显示设备上显示;和/或进一步的步骤:根据与识别的一个或多个第二内容项相关联的聚类存储第一内容项,和/或包括在与用户和/或服务器相关联的客户端设备上缓存或预先缓存识别的第二内容项中的一个或多个的步骤,和/或进一步包括基于识别的相似的第二内容项对具体从识别的一个或多个第二内容项中选择的内容项重新聚类的步骤。

第一内容项和第二内容项可各自是视觉内容,并且第一和第二内容项的一个或多个属性可包括颜色、姿态、光照条件、场景几何形状、材料、纹理、大小和粒度中的一个或多个。

第一内容项可以是在用户的客户端系统处接收的搜索查询。

在根据本发明的实施方式中,该方法可进一步包括将一个或多个识别的第二内容项发送至客户端系统以显示给用户。

第一内容项的内容的类型可以包括文本内容、图像内容、音频内容和视频内容中的一个或多个。

在根据本发明的实施方式中,该方法可进一步包括确定第一内容项的内容的类型,并且识别第二内容项中的一个或多个可进一步基于第一内容项的内容的类型。

在根据本发明的实施例中,一个或多个计算机可读非暂时性存储介质可以包含软件,该软件在被执行时可操作以:

接收第一内容项;

确定所述第一内容项的第一嵌入,其中:

所述第一嵌入对应于嵌入空间中的第一点,

所述嵌入空间包括与第二内容项的多个第二嵌入对应的多个第二点,

使用深度学习模型来确定所述第一和第二嵌入,

所述第一点和所述第二点位于所述嵌入空间中的一个或多个聚类中,

所述聚类中的每个聚类与内容项的类别相关联,并且

所述第一点和所述第二点进一步基于所述第一内容项和所述第二内容项的一个或多个属性而位于所述聚类内;以及

基于以下各项来识别与所述第一内容项相似的所述第二内容项中的一个或多个:

该第一点的位置,

对应于所述一个或多个第二内容项的所述一个或多个第二点位于其中的一个或多个特定聚类,以及

所述一个或多个第二点的位置对应于所述特定聚类内的所述一个或多个第二内容项。

可以使用减少位于一个或多个聚类中的点之间的重叠的损失函数来训练深度学习模型。

第一和第二内容项的一个或多个属性可以是深度学习模型的潜输入变量。

第一内容项和第二内容项可各自是视觉内容,并且第一和第二内容项的一个或多个属性可包括颜色、姿态、光照条件、场景几何形状、材料、纹理、大小和粒度中的一个或多个。

第一内容项可以是在用户的客户端系统处接收的搜索查询。

在根据本发明的实施方式中,一种系统可以包括:一个或多个处理器;以及耦接至处理器的存储器,该存储器包括可由处理器执行的指令,当执行指令时处理器能操作以:

接收第一内容项;

确定所述第一内容项的第一嵌入,其中:

所述第一嵌入对应于嵌入空间中的第一点,

所述嵌入空间包括与第二内容项的多个第二嵌入对应的多个第二点,

使用深度学习模型来确定所述第一和第二嵌入,

所述第一点和所述第二点位于所述嵌入空间中的一个或多个聚类中,

所述聚类中的每个聚类与内容项的类别相关联,并且

所述第一点和所述第二点进一步基于所述第一内容项和所述第二内容项的一个或多个属性而位于所述聚类内;以及

基于以下各项来识别与所述第一内容项相似的所述第二内容项中的一个或多个:

该第一点的位置,

对应于所述一个或多个第二内容项的所述一个或多个第二点位于其中的一个或多个特定聚类,以及

对应于所述特定聚类内的所述一个或多个第二内容项的所述一个或多个第二点的位置。

可以使用减少位于一个或多个聚类中的点之间的重叠的损失函数来训练深度学习模型。

第一和第二内容项的一个或多个属性可以是深度学习模型的潜输入变量。

第一内容项和第二内容项可各自是视觉内容,并且第一和第二内容项的一个或多个属性可包括颜色、姿态、光照条件、场景几何形状、材料、纹理、大小和粒度中的一个或多个。

第一内容项可以是在用户的客户端系统处接收的搜索查询。

在根据本发明的另一实施方式中,一个或多个计算机可读非暂时性存储介质包含软件,该软件在被执行时可操作为执行根据本发明或上述任一实施方式的方法。

在根据本发明的进一步实施方式中,一种系统包括:一个或多个处理器;以及至少一个存储器,耦接至处理器并且包括可由处理器执行的指令,当执行指令时处理器可操作为执行根据本发明的方法或者任何上述实施方式的方法。

在根据本发明的另一实施例中,计算机程序产品,优选地包括计算机可读非暂时性存储介质,当在数据处理系统上执行时可操作以执行根据本发明或上述实施例中的任一个的方法。

附图说明

图1示出了与社交网络系统相关联的示例性网络环境。

图2示出了示例性社交图谱。

图3示出了示例深度学习模型。

图4示出了使用深度学习模型生成的嵌入空间的示例示图。

图5示出了用于在嵌入空间中识别相似内容项的示例方法。

图6示出嵌入空间的示例示图。

图7示出了用于识别与第一内容项相似的第二内容项的示例性方法。

图8示出了示例性计算机系统。

具体实施方式

系统概述

图1示出了与社交网络系统相关的示例网络环境100。网络环境100包括通过网络110彼此连接的客户端系统130、社交网络系统160和第三方系统170。尽管图1示出了客户端系统130、社交网络系统160、第三方系统170和网络110的特定布置,但是本公开考虑客户端系统130、社交网络系统160、第三方系统170和网络110任何合适的布置。作为示例而非限制,客户端系统130、社交网络系统160和第三方系统170中的两个或更多个可以绕过网络110直接相互连接。作为另一个示例,客户端系统130、社交网络系统160和第三方系统170中的两个或更多个可以在物理或逻辑上彼此全部或部分地共置。此外,尽管图1示出了特定数量的客户端系统130、社交网络系统160、第三方系统170和网络110,本公开考虑任何合适数量的客户端系统130、社交网络系统160,第三方系统170和网络110。作为示例而非限制,网络环境100可以包括多个客户端系统130、社交网络系统160、第三方系统170和网络110。

本公开考虑任何合适的网络110。作为示例而非限制,网络110的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网的一部分、公共交换电话网络(pstn)的一部分、蜂窝电话网络或者这些中的两个或更多个的组合。网络110可以包括一个或多个网络110。

链路150可将客户端系统130、社交网络系统160和第三方系统170连接到通信网络110或彼此连接。本公开考虑任何合适的链路150。在具体实施例中,一个或多个链路150包括一个或多个有线(例如,诸如数字用户线路(dsl)或电缆数据服务接口规范(docsis)),无线(例如,诸如wi-fi或全球互通微波接入(wimax))或光学(例如,诸如同步光纤网络(sonet)或同步数字体系(sdh))链路。在具体实施例中,一个或多个链路150各自包括自组织网络、内联网,外联网、vpn、lan、wlan、wan、wwan、man、互联网的一部分、pstn的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一个链路150或者两个或更多个这样的链路150的组合。链路150在整个网络环境100中不一定是相同的。一个或多个第一链路150可以在一个或多个方面与一个或多个第二链路150不同。

在具体实施例中,客户端系统130可以是包括硬件、软件或嵌入式逻辑组件或者两个或更多个这种组件的组合,并且能够执行由客户端系统130实现或支持的适当功能的电子设备。作为示例而非限制,客户端系统130可以包括计算机系统,例如台式计算机、笔记本或便携式电脑、上网本、平板电脑、电子书阅读器、gps设备、相机、个人数字助理(pda)、手持电子设备、蜂窝电话、智能电话、增强/虚拟现实设备、其他合适的电子设备或其任何适当的组合。本公开考虑任何合适的客户端系统130。客户端系统130可以使在客户端系统130处的网络用户能够访问网络110。客户端系统130可以使它的用户能够与其他客户端系统130处的其他用户通信。

在具体实施例中,客户端系统130可以包括网页浏览器132、诸如微软ie浏览器,谷歌浏览器或火狐浏览器,并且可以具有一个或多个附件、插件或其他扩展,诸如工具栏或雅虎工具栏。客户端系统130处的用户可以输入将网络浏览器132指向特定服务器(诸如服务器162或与第三方系统170相关的服务器)的统一资源定位符(url)或其他地址,并且网络浏览器132可以生成超文本传输协议(http)请求并将该http请求传送给服务器。服务器可以接受http请求,并响应于http请求,向客户端系统130传送一个或多个超文本标记语言(html)文件。客户端系统130可以基于来自服务器的html文件渲染用于呈现给用户的网页。本公开考虑任何合适的网页文件。作为示例而非限制,根据特定需要,网页可以从html文件、可扩展超文本标记语言(xhtml)文件或可扩展标记语言(xml)文件渲染。这些页面还可以执行脚本,例如但不限于,诸如以javascript、java、微软银光、诸如ajax(异步javascript和xml)的标记语言和脚本的组合等编写的脚本。在此,在适当的情况下,对网页的引用包含一个或多个对应的网页文件(浏览器可以用其来渲染网页),反之亦然。

在具体实施例中,社交网络系统160可以是能够托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、存储、接收和发送社交网络数据,例如,诸如用户简档数据、概念简档数据、社交图谱信息或与在线社交网络相关的其他合适的数据。社交网络系统160可以由网络环境100的其他组件直接或经由网络110访问。在具体实施例中,社交网络系统160可以包括一个或多个服务器162。每个服务器162可以是跨越多个计算机或多个数据中心的分布式服务器或单一服务器。服务器162可以是各种类型的,例如但不限于,诸如网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适用于执行在此描述的功能或过程的另一服务器、或其任何组合。在具体实施例中,每个服务器162可以包括用于执行由服务器162实现或支持的适当功能的硬件、软件或嵌入式逻辑组件或者两个或更多个这种组件的组合。在具体实施例中,社交网络系统160可以包括一个或多个数据存储器164。数据存储器164可以被用来存储各种类型的信息。在具体实施例中,存储在数据存储器164中的信息可以根据特定的数据结构来组织。在具体实施例中,每个数据存储器164可以是关系型、柱状型、相关型或其他合适的数据库。尽管本公开描述或示出特定类型的数据库,但是本公开考虑任何合适类型的数据库。特定的实施例可以提供使客户端系统130、社交网络系统160或第三方系统170能够管理、检索、修改、添加或删除存储在数据存储器164中的信息的接口。

在具体实施例中,社交网络系统160可以将一个或多个社交图谱存储在一个或多个数据存储器164中。在具体实施例中,社交图谱可以包括多个节点以及连接节点的多个边,该多个节点可以包括多个用户节点(每个对应于特定用户)或多个概念节点(每个对应于特定概念)。社交网络系统160可以向在线社交网络的用户提供与其他用户进行通信和交互的能力。在具体实施例中,用户可以通过社交网络系统160加入在线社交网络,然后将连接(例如,关系)添加到他们想要连接到的社交网络系统160的多个其他用户。在此,术语“好友”可以指社交网络系统160的、用户已经通过社交网络系统160与其形成了连接、关联或关系的任何其他用户。

在具体实施例中,社交网络系统160可以向用户提供对社交网络系统160支持的各种类型的项目或对象采取行动的能力。作为示例而非限制,项目和对象可以包括社交网络系统160的用户可以属于的组或社交网络;用户可能感兴趣的事件或日历条目;用户可以使用的基于计算机的应用程序;允许用户通过服务购买或出售物品的交易;用户可能执行的与广告的交互;或其他合适的项目或对象。用户可以与能够社在交网络系统160或第三方系统170的外部系统中表示的任何事物进行交互,第三方系统170与社交网络系统160分离且通过网络110耦接到社交网络系统160。

在具体实施例中,社交网络系统160可以能够链接各种实体。作为示例而非限制,社交网络系统160可以使用户能够彼此交互以及从第三方系统170或其他实体接收内容,或者允许用户通过应用程序接口(api)或其他通信渠道与这些实体交互。

在具体实施例中,第三方系统170可以包括一个或多个类型的服务器、一个或多个数据存储器、一个或多个接口、包括但不限于api、一个或多个网络服务、一个或多个内容源、一个或多个网络或例如服务器可与之通信的任何其他合适的组件。第三方系统170可以通过与运行社交网络系统160的实体不同的实体运行。然而,在具体实施例中,社交网络系统160和第三方系统170可以彼此协作地操作以向社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或主干网,诸如第三方系统170的其他系统可以使用该平台或主干网以向互联网上的用户提供社交网络服务和功能。

在具体实施例中,第三方系统170可以包括第三方内容对象提供商。第三方内容对象提供商可以包括可以被传送到客户端系统130的内容对象的一个或多个源。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如,诸如电影放映时间、电影评论、餐厅评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如,诸如优惠券、打折券、礼品券或其他合适的激励对象。

在具体实施例中,社交网络系统160还包括用户生成的内容对象,其可以提高用户与社交网络系统160的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统160的任何事物。作为示例而非限制,用户将来自客户端系统130的帖子传送到社交网络系统160。帖子可以包括诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他相似数据或媒体的数据。内容还可以由第三方通过诸如新闻馈送或流的“通信渠道”添加到社交网络系统160。

在具体实施例中,社交网络系统160可以包括各种服务器、子系统、程序、模块、日志和数据存储器。在具体实施例中,社交网络系统160可以包括以下中的一个或多个:web服务器、行为记录器、api请求服务器、相关性排序引擎、内容对象分类器、通知控制器、行为日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告锁定模块、用户界面模块、用户简档存储、连接存储器、第三方内容存储器或位置存储器。社交网络系统160还可以包括诸如网络接口、安全机制、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件或其任何合适的组合。在具体实施例中,社交网络系统160可以包括用于存储用户简档的一个或多个用户简档存储器。用户简档可以包括例如,传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息,诸如工作经历、教育历史、爱好或喜好、兴趣、亲和度、或位置。兴趣信息可以包括与一个或多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而非限制,如果用户“点赞”关于鞋子品牌的文章,该类别可以是品牌,或者是“鞋子”或“服装”的一般类别。连接存储器可以用于存储关于用户的连接信息。连接信息可以指出具有相似或共同工作经验,团体成员身份,兴趣爱好,教育历史或者以任何方式相关或共享共同属性的用户。连接信息还可以包括不同用户和内容(内部和外部)之间的、用户定义的连接。网络服务器可以用于通过网络110将社交网络系统160链接到一个或多个客户端系统130或一个或多个第三方系统170。网络服务器可以包括用于在社交网络系统160和一个或多个客户端系统130之间接收和路由消息的邮件服务器或其他消息收发功能。api请求服务器可以允许第三方系统170通过调用一个或多个api来访问来自社交网络系统160的信息。行为记录器可被用于从网络服务器接收关于社交网络系统160上或之外的用户行为的通信。结合行为日志,第三方内容对象日志可以保持用户对第三方内容对象的暴露。通知控制器可以将关于内容对象的信息提供给客户端系统130。可以将信息作为通知推送到客户端系统130,或者可以响应从客户端系统130接收的请求从客户端系统130提取信息。授权服务器可以用于实施社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置确定如何共享与用户相关的特定信息。授权服务器可以允许用户例如通过设置适当的隐私设置从而选择或者不选择让他们的行为被社交网络系统160记录或与其他系统(例如,第三方系统170)共享。第三方内容对象存储器可以用于存储从例如第三方系统170的第三方接收的内容对象。位置存储器可以用于存储从与用户相关的客户端系统130接收的位置信息。广告定价模块可以将社交信息、当前时间、位置信息或其他合适的信息组合起来,以通知的形式向用户提供相关的广告。

社交图谱

图2示出了示例社交图谱200。在具体实施例中,社交网络系统160可以将一个或多个社交图谱200存储在一个或多个数据存储器中。在具体实施例中,社交图谱200可以包括多个节点以及连接节点的多个边206,该多个节点可以包括多个用户节点202或多个概念节点204。为了教学目的,在二维视觉图表示中示出了图2中所示的示例社交图谱200。在具体实施例中,为了合适的应用程序,社交网络系统160、客户端系统130或第三方系统170可以访问社交图谱200和相关的社交图谱信息。社交图谱200的节点和边可以被存储为例如数据存储器(例如社交图谱数据库)中的数据对象。这样的数据存储器可以包括社交图谱形200的节点或边的一个或多个可搜索或可查询索引。

在具体实施例中,用户节点202可对应于社交网络系统160的用户。作为示例而非限制,通过社交网络系统160交互或通信的用户可以是个人(人类用户)、实体(例如企业、商业或第三方应用)或者(例如个人或实体)团体。在具体实施例中,当用户向社交网络系统160注册账户时,社交网络系统160可以创建对应于用户的用户节点202,并将用户节点202存储在一个或多个数据存储器中。在适当的时候,在此描述的用户和用户节点202可以指注册用户和与注册用户相关的用户节点202。另外或作为替代,在适当的情况下,在此描述的用户和用户节点202可以指尚未向社交网络系统160注册的用户。在具体实施例中,用户节点202可以与由用户提供的信息或由包括社交网络系统160的各种系统收集的信息相关。作为示例而非限制,用户可以提供他或她的姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、工作、教育背景、偏好、兴趣或其他人口统计信息。在具体实施例中,用户节点202可以与对应于与用户相关的信息的一个或多个数据对象相关。在具体实施例中,用户节点202可以对应于一个或多个网页。

在具体实施例中,概念节点204可以对应于概念。作为示例而非限制,概念可以对应地方(例如,诸如电影院、餐厅、地标或城市);网站(例如,诸如与社交网络系统160相关的网站或与网络应用服务器相关的第三方网站);实体(例如,诸如人、企业、团体、运动队或名人);可位于社交网络系统160内或位于诸如网络应用程序的外部服务器上的资源(例如,诸如音频文件、视频文件、数字照片、文本文件、结构化文档或应用程序);不动产或知识产权(例如,诸如雕塑、绘画、电影、游戏、歌曲、创意、照片或书面作品);游戏;活动;想法或理论;增强/虚拟现实环境中的对象;另一个合适的概念或两个或更多这样的概念。概念节点204可以与由用户提供的概念信息或由包括社交网络系统160的各种系统收集的信息相关。作为示例而非限制,概念信息可以包括名称或标题;一个或多个图像(例如,书的封面图像);位置(例如地址或地理位置);网站(可能与url相关);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息或这些信息的任何合适的组合。在具体实施例中,概念节点204可以与对应于与概念节点204相关的信息的一个或多个数据对象相关。在具体实施例中,概念节点204可以对应于一个或多个网页。

在具体实施例中,社交图谱表200中的节点可以表示网页或由网页(可以被称为“简档页面”)表示。简档页面对于社交网络系统160可访问或由其托管。简档页面也可以被托管在与第三方服务器170相关的第三方网站上。作为示例而非限制,对应于特定外部网页的简档页面可以是特定外部网页,并且简档页面可以对应于特定概念节点204。简档页面可以被其他用户的全部或选定的子集查看。作为示例而非限制,用户节点202可以具有对应的用户简档页面,对应的用户可以在其中添加内容、做出声明或以其他方式表达他或她自己。作为另一个示例而非限制,概念节点204可以具有对应的概念简档页面,一个或多个用户可以在其中添加内容、做出声明或表达他们自己,具体涉及与概念节点204对应的概念。

在具体实施例中,概念节点204可以表示由第三方系统170托管的第三方网页或资源。除其他元素外,第三方网页或资源还可以包括表示内容、可选择的或其他图标、或表示行为或活动的其他可交互对象(其可以以例如javascript,ajax或php代码实现)。作为示例而非限制,第三方网页可以包括诸如“点赞”、“签到”、“吃”、“推荐”或其他合适的行为或活动的可选图标。观看第三方网页的用户可以通过选择图标中的一个(例如,“签到”)来执行动作,引起客户端系统130向社交网络系统160发送指示用户的动作的消息。响应于该消息,社交网络系统160可以在对应于用户的用户节点202和对应于第三方网页或资源的概念节点204之间创建边(例如,签到类型边),并且将边206存储在一个或多个数据存储器中。

在具体实施例中,社交图谱200中的一对节点可以通过一个或多个边206彼此连接。连接一对节点的边206可以表示该对节点之间的关系。在具体实施例中,边206可以包括或表示与一对节点之间的关系对应的一个或多个数据对象或属性。作为示例而非限制,第一用户可以指出第二用户是第一用户的“好友”。响应于该指示,社交网络系统160可以向第二用户发送“好友请求”。如果第二用户确认“好友请求”,则社交网络系统160可在社交图谱200中创建将第一用户的用户节点202连接到第二用户的用户节点202的边206,并将边206作为社交图谱信息存储在一个或多个数据存储器164中。在图2的示例中,社交图谱200包括指示用户“a”和用户“b”的用户节点202之间的好友关系的边206以及指示用户“c”和用户“b”的用户节点202之间的好友关系的边。虽然本公开描述或说明具有连接特定用户节点202的特定属性的特定边206,但本公开考虑具有连接用户节点202的任何合适属性的任何适当边206。作为示例而非限制,边206可以表示友谊、家庭关系、商业或雇佣关系、粉丝关系(例如包括点赞等)、追随者关系、访客关系(例如包括访问、浏览、签到、分享等)、订户关系、上/下级关系、互惠关系、非互惠关系、另一种合适类型的关系、或两种以上这种关系。此外,尽管本公开总体上将节点描述为连接,但是本公开还将用户或概念描述为连接。在此,在适当的情况下,对连接的用户或概念的引用可以指与那些在社交图谱200中通过一个或多个边206连接的用户或概念对应的节点。

在具体实施例中,用户节点202与概念节点204之间的边206可以表示与用户节点202相关的用户针对与概念节点204相关的概念执行的特定行为或活动。作为示例而非限制,如图2所示,用户可以“点赞”、“出席”、“播放”、“收听”、“烹饪”、“工作于”或“观看”概念,每个概念可以对应于边类型或子类型。对应于概念节点204的概念简档页面可以包括,例如,可选择的“签到”图标(例如,诸如可点击的“签到”图标)或可选的“添加到收藏夹”图标。相似地,在用户点击这些图标之后,社交网络系统160可响应于对应于相应行为的用户的行为而创建“喜欢”边或“签到”边。作为另一个示例而非限制,用户(用户“c”)可以使用特定应用程序(在线音乐应用程序spotify)来收听特定歌曲(“imagine”)。在这种情况下,社交网络系统160可以在对应于用户的用户节点202和对应于歌曲和应用的概念节点204之间创建“收听”边206和“使用”边(如图3所示)以指出用户收听该歌曲并使用该应用程序。此外,社交网络系统160可以创建对应于歌曲和应用的概念节点304之间的“播放”边306(如图2所示),以指出特定歌曲由特定应用播放。在这种情况下,“播放”边206对应于由外部应用(spotify)对外部音频文件(歌曲“imagine”)执行的行为。尽管本公开描述具有连接用户节点202和概念节点204的特定属性的特定边206,但是本公开考虑具有连接用户节点202和概念节点204的任何合适属性的任何适当边206。此外,尽管本公开描述代表单一关系的用户节点202和概念节点204之间的边,但是本公开考虑代表一个或多个关系的用户节点202和概念节点204之间的边。作为示例而非限制,边206可以表示用户点赞和已经在特定概念上使用两者。或者,另一个边206可以表示用户节点202和概念节点204之间的每种类型的关系(或者单个关系的倍数)(如图2所述,在用户“e”的用户节点202与用于“spotify”的概念节点204之间)。

在具体实施例中,社交网络系统160可以在社交图谱200中的用户节点202和概念节点204之间创建边206。作为示例而非限制,观看概念简档页面(例如通过使用web浏览器或由用户的客户端系统130托管的专用应用程序)的用户可以通过点击或选择“点赞”图标来指出他或她喜欢概念节点204表示的概念,这可能引起用户的客户端系统130向社交网络系统160发送指示用户喜欢与概念简档页面相关的概念的消息。响应于该消息,社交网络系统160可以在与用户相关的用户节点202与概念节点204之间创建边206,如用户与概念节点204之间的“点赞”边206所示。在具体实施例中,社交网络系统160可以将边206存储在一个或多个数据存储器中。在具体实施例中,边206可以由社交网络系统160响应于特定用户行为而自动形成。作为示例而非限制,如果第一用户上传图片、观看电影或聆听歌曲,则可以在对应于第一用户的用户节点2302与对应于这些概念的概念节点204之间形成边206。尽管本公开描述了以特定方式形成特定边206,但是本公开考虑以任何合适的方式形成任何合适的边206。

训练深度学习模型

具体实施例使用深度学习模型来识别与给定内容项(例如,搜索查询)相似的一个或多个内容项。作为示例而不是限制的方式,内容项可以包括文本内容(例如,一个或多个n元语法)、视觉内容(例如,一个或多个图像)、音频内容(例如,一个或多个音频记录)、视频内容(例如,一个或多个视频剪辑)、任何其他合适类型的内容或者其任意组合。如本文所使用的,n元语法可以是单词或单词组、语句的任何部分、标点符号(例如“!”)、俗语(例如,“例如nuts,)、首字母缩写(例如,“、首字母)、缩写(例如,“、缩写(例)、感叹号(““gh”)、字母数字字符、符号、书面字符、重音标记或其任何组合。

图3示出了示例深度学习模型310。深度学习模型310可以是机器学习模型、神经网络、潜神经网络、任何其他合适的深度学习模型或其任何组合。在具体实施例中,深度学习模型310可具有多个抽象层。输入302、304、306和308可以是任何合适数量的内容项。输出312可以是内容项的一个或多个嵌入。嵌入空间可以是多维空间(例如,d-维度,其中d是控制容量的超参数)并且可以包括对应于内容项的嵌入的多个点。如本文所使用的,内容项的嵌入是指内容项在嵌入空间中的表示。尽管在图3中示出了特定数量的输入内容项302、304、306和308,但深度学习模型310可生成针对任何合适数量的输入内容项302、304、306和308的内容项的嵌入。

在具体实施例中,深度学习模型310(例如,神经网络)可以包括将内容项映射到中的向量的一个或多个索引,其中,表示实数集,并且d是控制容量的超参数。这些向量可以是d维度强度向量。如在此所使用的,强度值可以是在-1到1范围内的任何合适的值。内容项的向量表示中的每一个可以为嵌入空间中的相应点提供坐标。尽管在图3中示出了特定数量的输入内容项302、304、306和308,但深度学习模型310可提供任何合适数量的内容项302、304、306和308与矢量表示之间的映射。

深度学习模型310可被训练以生成内容项的最佳嵌入。深度学习模型310可包括一个或多个索引,其可随着深度学习模型310被训练而被动态地更新。可在深度学习模型310的训练阶段期间生成一个或多个索引。深度学习模型310可以是例如神经网络或潜神经网络。深度学习模型310可使用随机分布来初始化。也就是说,深度学习模型310最初可具有随机分配的映射(即,在内容项302、304、306和308与矢量表示之间,基于其,可生成内容项302、304、306和308的嵌入)。作为示例而不是限制的方式,随机分布可以是高斯分布。训练可导致深度学习模型310的一个或多个索引生成优于初始映射的映射。

尽管本公开描述并且示出了图3的具体实施方式由社交网络系统160实现,然而,本公开考虑图3的任何合适的实施方式由任何合适的平台或系统实现。作为示例,而非限制性地,图3的具体实施例可以由客户端系统130、第三方系统170或任何其他合适的系统实现。此外,尽管本公开描述并且示出了执行图3中的方法的具体步骤的具体部件、设备或者系统,然而,本公开考虑执行图3中的方法的任何合适步骤的任何合适部件、设备或者系统的任何合适组合。

在具体实施例中,可以对深度学习模型310进行训练以生成在嵌入空间中的内容项的嵌入的聚类。每个聚类可以与内容项的类别(例如,内容项的分类或子集)相关联。如本文所使用的,聚类可以是与在嵌入空间中的内容项的嵌入相对应的一个或多个点的集合,并且其嵌入在该聚类中的内容项可以属于同一类别。

图4示出了使用深度学习模型310生成的嵌入空间的示例示图400。嵌入空间被描绘为包括两个聚类410和412。聚类410被示为包括内容项的被描绘为圆圈集合(白圆圈集合402和黑圆圈集合404)的嵌入。聚类412被示为包括内容项的被描绘为正方形集合(白色正方形集合406和黑色正方形集合408)的嵌入。尽管内容项402、404、406和408的嵌入在图4中被描绘为特定形状,但将理解,这些嵌入中的每一个表示多维嵌入空间中的相应点(即,由坐标定义)。为了清楚和便于描述,内容项402、404、406和408的嵌入被描绘为具有特定形状。

在具体实施例中,深度学习模型310可以被训练为将内容项嵌入该嵌入空间中的聚类中(例如,对内容项进行分类)并且基于分类变化在聚类内的位置嵌入内容项。如本文所使用的,嵌入内容项可以指生成对应于嵌入空间中的特定点的内容项的嵌入。在深度学习模型310被训练(例如,在初始化时)之前,深度学习模型310可生成随机地散布在嵌入空间中的内容项的嵌入。深度学习模型310可被训练以最小化或减小内容项的每个嵌入的矢量表示和相似的内容项的嵌入的矢量表示之间的误差。可以使用语义相似性(例如,基于内容项的一个或多个含义的关系)和视觉相似性(例如,基于视觉内容项的一个或多个视觉属性的关系)来训练深度学习模型310,以确定内容项之间的相似性。在具体实施例中,深度学习模型310可被训练为基于内容项的语义相似性对内容项进行分类(例如,嵌入在特定的聚类中)。在具体实施例中,深度学习模型310可以被训练成基于嵌入在同一聚类和不同聚类(例如,接近或者相邻聚类)中的内容项之间的视觉相似性在聚类内的特定位置嵌入内容项。可以使用减少位于嵌入空间中的一个或多个聚类中的点之间的重叠的损失函数来训练(例如,通过添加相似性的附加度量)深度学习模型310。虽然相似性在本文中被描述和示出为由语义和视觉相似性组成,但是将理解,这仅仅是说明性的而不是限制性的。相似性可基于语义相似性、视觉相似性、音频相似性、任何其他合适的相似性度量或其任何组合来定义。相似性可基于内容项的类型来定义。作为实例但并不作为限制,深度学习模型310可生成针对音频内容项的嵌入,并且深度学习模型310可被训练为基于语义相似性和音频相似性(例如,音频内容的一个或多个属性)嵌入音频内容项。

深度学习模型310可经训练以在非监督设置中(例如,经训练以提供针对未经标记的数据的结构)将内容项分类(例如,嵌入在聚类中)。在具体实施例中,深度学习模型310可进一步被训练(例如,使用深度学习模型310中的与用于对内容项进行分类的层不同的层)以在聚类中的位置嵌入内容项,其反映在嵌入空间中的相同和不同聚类中的内容项之间的视觉相似性。可基于内容项的一个或多个属性来确定视觉相似性。作为实例并非限制性方式,视觉相似性可基于姿态、光照条件、场景几何形状、颜色、材料、纹理、尺寸、粒度(例如,细粒度或粗粒度)、内容项的任何其他合适的视觉属性或其任何组合。内容项的属性可以是深度学习模型310的潜输入变量。

在嵌入空间中可以通过距离表示相似性。在高级别,可以在嵌入空间中彼此接近的点处嵌入相似的内容项。语义相似性可以由全局接近度来表示(例如,相同类别中的内容项可以被嵌入在嵌入空间中的同一聚类中的点处)。视觉相似性可由局部接近度来表示(例如,尽管有聚类分配,但共同具有一个或多个属性的内容项可被嵌入在彼此接近的点处)。

在图4的所展示的示例中,白色圆圈402可以表示白色狗的图像的嵌入;黑色圆圈404可以表示黑色狗的图像的嵌入;白色正方形406可以表示白色猫的图像的嵌入;并且黑色正方形408可以表示黑色猫的图像的嵌入。深度学习模型310可被训练成全局地在动物类别(例如,狗和猫)之间进行区分,并且进一步被训练成局部地区分黑色和白色的猫和狗(即,在嵌入空间中表示的猫和狗的属性是颜色)。深度学习模型310可以生成位于聚类410(其可以与狗的类别相关联)中的白色狗的图像的嵌入402以及黑色狗的图像的嵌入404。深度学习模型还可生成位于聚类412中的白色猫的图像的嵌入406以及黑色猫的图像的嵌入408,该聚类412可与猫的类别相关联。如图4所示,白色狗的图像的嵌入402在距离上接近白色猫的图像的嵌入406,尽管嵌入402和406在不同的聚类中。同样如图4所示,黑色狗的图像的嵌入404在距离上接近于黑色猫的图像的嵌入408,尽管嵌入404和408在不同的聚类中。嵌入空间可基于一个或一个以上属性(例如,色彩)提供类别的相似性以及视觉相似性的表示。

在具体实施例中,可以使用基于聚类技术的算法训练深度学习模型310。深度学习模型310可以不受监督的方式来训练,以便将内容项分配给针对每个类别的聚类(即,将每个内容项嵌入到相应的类别中)。深度学习模型310可使用搜索嵌入空间中的点的聚类之间的重叠并减少或最小化这些聚类在局部级别之间的重叠的算法来进一步训练。在具体实施例中,深度学习模型310的训练集可以由等式(1)–(4)给出:

输入内容项对(d)在c类别中(1)

内容项的向量表示(r_n)rn=f(xn;θ),n=1,...,n(2)

对于每个类别c,存在kc聚类分配

其中,

如在此使用的,θ表示参数向量,xn表示内容项,yn表示内容项,以及n示内容项,以。在具体实施例中,可以使用由等式(5)给出的损失函数训练深度学习模型310:

其中,方差(σ2)由下式给出:

如在此使用的,μ表示学习率,α表示在聚类之间的可变裕度。可以根据嵌入空间的聚类的期望的紧密度(例如,在嵌入空间中点的聚类在空间中彼此多接近)来调整α参数。

在具体实施例中,(例如,使用如等式(5)所示的损失函数)训练深度学习模型310可导致深度学习模型310的一个或多个权重被更新。(例如,使用高斯分布)可随机确定深度学习模型的一个或多个权重的初始值。在具体实施例中,可以更新深度学习模型的权重中的一个或多个以最小化嵌入空间中的点的聚类之间的重叠。在具体实施例中,可以使用由等式(5)给出的损失函数更新深度学习模型的一个或多个权重以最小化误差。深度学习模型的权重可被更新以产生对于内容项的更好的嵌入,这可导致嵌入空间中的点(即,对应于内容项的嵌入)的分布在聚类之间具有更少的重叠。

尽管本公开描述并且示出了图4的具体实施方式以具体方式实现,但是本公开考虑图4的发生在任何合适的界面上并且由任何合适的平台或系统实现的任何合适的实施方式。作为一个实例,并非通过限制的方式,图4的具体实施例可以由客户端系统130、社交网络系统160、第三方系统170或者任何其他合适的系统实现。此外,尽管本公开描述并且示出了执行图4中的方法的具体步骤的具体部件、设备或者系统,然而,本公开考虑执行图4中的方法的任何合适步骤的任何合适部件、设备或者系统的任何合适组合。

一旦对深度学习模型进行了训练以在嵌入空间中嵌入内容项,嵌入空间可被用于实现各种任务,作为示例而非限制,包括识别给定输入内容项的特定内容项。

使用嵌入空间来识别相似的内容项

图5示出了用于在嵌入空间中识别相似内容项的示例方法500。在步骤510,系统可以从用户的客户端系统130接收第一内容项。作为实施例但并不作为限制,第一内容项可以是用户在客户端系统130的界面处输入的搜索查询。在步骤520,深度学习模型310可被用于确定第一内容项在嵌入空间中的第一嵌入。在具体实施例中,在确定第一内容项的第一嵌入之前,可以如结合图4所描述的那样训练深度学习模型310。深度学习模型可以(作为示例而非限制的方式)将第一内容项映射到第一内容项的第一向量表示。可以基于第一内容项的第一矢量表示来确定第一内容项的第一嵌入,并且第一嵌入可以对应于嵌入空间中的第一点。在具体实施例中,嵌入空间可以包括与第二内容项的多个第二嵌入对应的多个第二点。可以使用深度学习模型310来确定第二嵌入。第一点和第二点可以位于嵌入空间中的一个或多个聚类中。第一点和第二点可以进一步基于第一和第二内容项的一个或多个属性位于聚类内。第一和第二内容项的一个或多个属性可以是潜变量,基于该潜变量,可训练深度学习模型310。

在步骤530,系统可确定第一内容项的内容的类型。第一内容项的内容的类型可以是文本内容、图像内容、音频内容、视频内容、医学图像内容、任何其他合适类型的内容或其任何组合。作为示例而不是限制的方式,第一内容项可以是视觉内容(例如,与法国斗牛犬一起睡觉的婴儿的图像)。作为另一个实例,并非通过限制的方式,第一内容项可以是文本内容(例如,“kaceymusgraves”)。

在步骤540,系统可以识别嵌入空间中的与第一内容项相似的一个或多个第二内容项。在具体实施例中,系统可以基于与第一内容项的第一嵌入对应的第一点的位置、基于与一个或多个第二内容项对应的一个或多个第二点所位于的一个或多个特定聚类、和基于与一个或多个第二内容项对应的一个或多个第二点在特定聚类内的位置,识别一个或多个第二内容项。作为示例而不是限制的方式,与第一内容项的嵌入对应的第一点可以位于特定聚类中,并且可以应用搜索算法以识别在该特定聚类中距第一点在阈值距离内的一个或多个第二点。作为另一实例,并非通过限制的方式,第一点可以位于嵌入空间中的一个或多个聚类的附近,并且可以应用搜索算法以识别在接近聚类的每一个中的第一点的阈值距离内的一个或多个第二点(即,检索多样化的搜索结果)。作为另一实例,并非通过限制的方式,第一点可以位于嵌入空间中的一个或多个聚类的附近,并且可以应用搜索算法以识别在每个附近聚类中的处于相应附近聚类的质心的阈值距离内的一个或多个点。

在具体实施例中,系统可以基于在步骤530识别的第一内容项的内容的类型,识别嵌入空间中与第一内容项相似的一个或多个第二内容项。应用于识别与第一内容项相似的第二内容项的具体搜索算法可根据第一内容项的内容的类型而变化。作为一个示例,并非通过限制的方式,如果第一内容项是文本内容(例如,“kaceymusgraves”),那么可以应用搜索算法以搜索在对应于第一内容项的第一嵌入的第一点所位于的聚类(例如,国家音乐家的类别)内的第二点。作为另一个实例,并非通过限制的方式,如果第一内容项是视觉内容(例如,与法国斗牛犬一起睡觉的婴儿的图像),那么可以应用搜索算法以搜索在第一点的阈值距离内的第二点,而不管每个第二点位于的聚类。

在步骤550处,系统可以向客户端系统130发送在步骤540中识别的第二内容项以向用户显示。作为实施例但并不作为限制,第一内容项可作为搜索查询由用户在客户端系统130的界面处输入,并且所识别的第二内容项可作为搜索结果在客户端系统130处显示给用户。

在适当情况下,具体实施方式可重复图5的方法的一个或多个步骤。尽管本公开描述并且示出了图5的方法的具体步骤以具体顺序发生,但是本公开考虑图5的方法的任何合适步骤以任何合适顺序发生。尽管本公开描述并且示出了以特定方式实现图5的具体实施例,但是本公开考虑图5的发生在任何合适的接口上并且由任何合适的平台或系统实现的任何合适的实施例。作为一个实例,并非通过限制的方式,图5的具体实施方式可以由客户端系统130、社交网络系统160、第三方系统170或者任何其他合适的系统实现。此外,尽管本公开描述并且示出了执行图5的方法的具体步骤的具体部件、设备或者系统,然而,本公开考虑执行图5的方法的任何合适步骤的任何合适部件、设备或者系统的任何合适组合。

图6示出嵌入空间的示例示图600。嵌入空间可以包括与第二内容项的第二嵌入对应的第二点的聚类620、630、640和650。聚类620、630、640和650中的每一个可以与一类内容项相关联。嵌入空间还可以包括与第一内容项的第一嵌入对应的第一点610。嵌入空间可使用深度学习模型310来生成。如图6所示,可以至少部分地训练嵌入空间(例如,使用等式(5)的损失函数)。每一个聚类620、630、640和650之间的距离可以取决于等式(5)的参数α,如上文结合图4所述。将理解的是,尽管图6中的嵌入空间被描绘为是2维的,但嵌入空间可以具有任何合适的维数(例如,多维)。

可接收第一内容项,并且可通过使用深度学习模型310确定对应于第一内容项的第一嵌入的第一点610而将该第一内容项嵌入在嵌入空间中。在图6展示的示例中,第一点610位于第二点的聚类620内。如以上结合图5所描述的,可应用搜索算法来识别与第一内容项相似的一个或多个第二内容项。作为实施例但并不作为限制,可以应用搜索算法以确定聚类620中的一个或多个第二点在聚类620中的第一点610的阈值距离内,并且可以将对应于一个或多个第二点的第二内容项识别为与第一内容项相似。作为实施例但并不作为限制,可以应用搜索算法以确定在聚类620、630和650中的一个或多个第二点在第一点310的阈值距离内,并且可以将对应于在聚类620、630和650中的一个或多个第二点的第二内容项识别为与第一内容项相似。

尽管本公开描述并且示出了图6的具体实施方式以具体方式实现,但是本公开考虑图6的发生在任何合适的接口上并且由任何合适的平台或系统实现的任何合适的实施方式。作为一个实例,并非通过限制的方式,图6的具体实施方式可以由客户端系统130、社交网络系统160、第三方系统170或者任何其他合适的系统实现。此外,尽管本公开描述并且示出了执行图6的方法的具体步骤的具体部件、设备或者系统,然而,本公开考虑执行图6的方法的任何合适步骤的任何合适部件、设备或者系统的任何合适组合。

图7示出了用于识别与第一内容项相似的第二内容项的示例性方法。该方法可开始于步骤710,接收第一内容项。在步骤720,确定第一内容项的第一嵌入,其中第一嵌入对应于嵌入空间中的第一点,嵌入空间包括对应于第二内容项的多个第二嵌入的多个第二点,使用深度学习模型来确定第一和第二嵌入,第一和第二点位于嵌入空间中的一个或多个聚类中,每个聚类与一类内容项相关联,并且第一和第二点基于第一和第二内容项的一个或多个属性进一步位于聚类内。在步骤730,基于第一点的位置、与一个或多个第二内容项对应的一个或多个第二点所位于的一个或多个特定聚类、以及与一个或多个第二内容项相对应的一个或多个第二点在特定聚类内的位置,识别与第一内容项相似的一个或多个第二内容项。

在适当情况下,具体实施方式可重复图7的方法的一个或多个步骤。尽管本公开描述并且示出了图7的方法的具体步骤以具体顺序发生,但是本公开考虑图7的方法的以任何合适顺序发生的任何合适步骤。此外,尽管本公开描述并且示出了包括图7的方法的具体步骤的识别与第一内容项相似的第二内容项的示例性方法,但是本公开考虑了用于识别与第一内容项相似的第二内容项的任何合适的方法,包括任何合适的步骤,在适当的情况下,这些步骤可以包括图7的方法的所有、一些步骤或者不包括图7的方法的步骤。此外,尽管本公开描述并且示出了执行图7的方法的具体步骤的具体部件、设备或者系统,然而,本公开考虑执行图7的方法的任何合适步骤的任何合适部件、设备或者系统的任何合适组合。

系统和方法

图8示出了示例计算机系统800。在具体实施例中,一个或多个计算机系统800执行在此描述或示出的一个或多个方法的一个或多个步骤。在具体实施例中,一个或多个计算机系统800提供在此描述或示出的功能。在特定的实施例中,运行在一个或多个计算机系统800上的软件执行在此描述或示出的一个或多个方法的一个或多个步骤,或者提供在此描述或示出的功能。具体实施例包括一个或多个计算机系统800的一个或多个部分。在此,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。

本公开考虑了任何合适数量的计算机系统800。本公开考虑采取任何合适的物理形式的计算机系统800。作为示例而非限制,计算机系统800可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(例如、诸如计算机模块(com)或模块上系统(som))、台式计算机系统、膝上或笔记本计算机系统、交互式信息亭、大型机、计算机系统的网格、移动电话、个人数字助理(pda)、服务器、平板计算机系统或其中的两个或更多个的组合。在适当的情况下,计算机系统800可以包括单一或分散;跨越多个地点;跨越多台机器;跨越多个数据中心;或驻留在可以包括一个或多个网络中的一个或多个云组件的云中的一个或多个计算机系统800。在适当的情况下,一个或多个计算机系统800可以在没有显着的空间或时间限制的情况下执行在此描述或示出的一个或多个方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统800可以实时或以批处理模式执行在此描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统800可以在不同的时间或在不同的位置执行在此描述或示出的一个或多个方法的一个或多个步骤。

在具体实施例中,计算机系统800包括处理器802、内存804、存储器806、输入/输出(i/o)接口808、通信接口810和总线812。尽管本公开描述和示出了在特定布置中具有特定数量的特定组件的特定计算机系统,但本公开考虑在任何合适的布置中具有任何合适数量的任何合适组件的任何合适的计算机系统。

在具体实施例中,处理器802包括用于执行诸如构成计算机程序的指令的硬件。作为示例而非限制,为了执行指令,处理器802可以从内部寄存器、内部缓存、内存804或存储器806中检索(或取出)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部缓存、内存804或存储器806。在具体实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部缓存。在适当的情况下,本公开考虑包括任何合适数量的任何合适的内部缓存的处理器802。作为示例而非限制,处理器802可以包括一个或多个指令缓存、一个或多个数据缓存以及一个或多个翻译后援缓冲器(tlb)。指令缓存中的指令可以是内存804或存储器806中的指令的副本,并且指令缓存可以加速处理器802对那些指令的检索。数据缓存中的数据可以是内存804或者存储器806中用于在处理器802处执行的指令以进行操作的数据的副本;在处理器802处执行的先前指令的结果,用于由在处理器802处执行的后续指令访问或用于写入内存804或存储器806;或其他合适的数据。数据缓存可以加速处理器802的读取或写入操作。tlb可以加速处理器802的虚拟地址转换。在具体实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑包括任何合适数量的任何合适的内部寄存器的处理器802。在适当的情况下,处理器802可以包括一个或多个算术逻辑单元(alu);是一个多核处理器;或者包括一个或多个处理器802。尽管本公开描述并示出了特定的处理器,但是本公开考虑了任何合适的处理器。

在特定的实施例中,内存804包括用于存储处理器802执行的指令或处理器802进行操作的数据的主存储器。作为示例而非限制,计算机系统800可以将来自存储器806或另一个源(例如,诸如另一个计算机系统800)的指令加载到内存804。处理器802然后可以将来自内存804的指令加载到内部寄存器或内部缓存。为了执行指令,处理器802可以从内部寄存器或内部缓存中取回指令并对它们进行解码。在执行指令期间或之后,处理器802可以将一个或多个结果(其可以是中间结果或最终结果)写入内部寄存器或内部缓存。处理器802然后可以将这些结果中的一个或多个写入内存804。在具体实施例中,处理器802仅执行一个或多个内部寄存器或内部缓存中的指令或内存804(与存储器806或别处相反)中的指令,并且仅操作一个或多个内部寄存器或内部缓存中的数据或内存804(与存储器806或别处相反)中的数据。一个或多个存储器总线(其每个可以包括地址总线和数据总线)可以将处理器802耦接到内存804。总线812可以包括一个或多个如下所述存储器总线。在具体实施例中,一个或多个存储器管理单元(mmu)驻留在处理器802和内存804之间,并且便于处理器802所请求的对内存804的访问。在具体实施例中,内存804包括随机存取存储器(ram)。在适当的情况下,该ram可以是易失性存储器,在适当的情况下,该ram可以是动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可以是单端口或多端口的ram。本公开考虑任何合适的ram。在适当的情况下,内存804可以包括一个或多个内存804。尽管本公开描述并示出特定的存储器,但是本公开考虑任何合适的存储器。

在具体实施例中,存储器806包括用于数据或指令的大容量存储。作为示例而非限制,存储器806可以包括硬盘驱动器(hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带、或通用串行总线(usb)驱动器、或这些中两个或更多个的组合。在适当的情况下,存储器806可以包括可移除的或不可移除的(或固定的)介质。在适当的情况下,存储器806可以在计算机系统800的内部或外部。在特定的实施例中,存储器806是非易失性的固态存储器。在特定的实施例中,存储器806包括只读存储器(rom)。在适当的情况下,该rom可以是掩模编程rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可变rom(earom)或闪存或这些中的两个或更多个的组合。本公开考虑采取任何合适的物理形式的大容量存储器806。在适当的情况下,存储器806可以包括一个或多个便于处理器802与存储器806之间通信的存储控制单元。在适当的情况下,存储器806可以包括一个或多个存储器806。尽管本公开描述并示出了特定的存储,但是本公开考虑任何合适的存储。

在具体实施例中,i/o接口808包括提供用于计算机系统800和一个或多个i/o设备之间的通信的一个或多个接口的硬件、软件或二者。在适当的情况下,计算机系统800可以包括这些i/o设备中的一个或多个。这些i/o设备中的一个或多个可以使个人与计算机系统800之间能够通信。作为示例而非限制,i/o设备可能包括:键盘、键盘、麦克风、显示器、鼠标、打印机、扫描仪、扬声器、静止照相机、手写笔、平板电脑、触摸屏、轨迹球、摄像机、其他合适的i/o设备或这些中的两个或更多个的组合。i/o设备可以包括一个或多个传感器。本公开考虑用于它们的任何合适的i/o设备以及任何合适的i/o接口808。在适当的情况下,i/o接口808可以包括使处理器802能够驱动这些i/o设备中的一个或多个的一个或多个设备或软件驱动器。在适当的情况下,i/o接口808可以包括一个或多个i/o接口808。尽管本公开描述并示出了特定的i/o接口,但是本公开考虑任何合适的i/o接口。

在具体实施例中,通信接口810包括在计算机系统800与一个或多个其他计算机系统800或一个或多个网络之间提供用于通信(例如,诸如基于分组的通信)的一个或多个接口的硬件、软件或二者。作为示例而非限制,通信接口810可以包括用于与以太网或其他有线网络通信的网络接口控制器(nic)或网络适配器,或用于与诸如wi-fi网络的无线网络进行通信的无线nic(wnic)或无线适配器。本公开考虑任何合适的网络以及任何合适的通信接口810。作为示例而非限制,计算机系统800可以与自组织网络、个人域网(pan)、局域网(lan)、广域网(wan)、城域网(man)或互联网的一个或多个部分或这些中的两个或更多个的组合通信。一个或多个这些网络中的一个或多个部分可以是有线或无线的。作为示例,计算机系统800可以与无线pan(wpan)(例如,诸如蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,诸如全球移动通信系统(gsm)网络)或其他合适的无线网络或者这些中的两个或更多个的组合通信。在适当的情况下,计算机系统800可以包括用于这些网络中的任何一个的任何合适的通信接口810。在适当的情况下,通信接口810可以包括一个或多个通信接口810。尽管本公开描述和示出了特定的通信接口,但是本公开考虑任何合适的通信接口。

在具体实施例中,总线812包括将计算机系统800的组件彼此耦接的硬件、软件或两者。作为示例而非限制,总线812可以包括加速图形端口(agp)或其他图形总线、增强型工业标准体系结构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准体系结构(isa)总线、无线带宽互连、低引脚数(lpc)总线、存储器总线、微通道架构(mca)总线、外设部件互连(pci)总线、pci扩展(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或其他合适的总线或这些中的两个或更多个的组合。在适当的情况下,总线812可以包括一个或多个总线812。尽管本公开描述并示出了特定的总线,但是本公开考虑任何合适的总线或互连。

在此,在适当情况下,计算机可读非临时性存储介质或媒介可以包括一个或多个基于半导体的或其他集成电路(ic)(例如,诸如现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或者这些中的两个或更多个的任何合适的组合。在适当的情况下,计算机可读非临时性存储介质可以是易失的、非易失的或易失和非易失的组合。

杂项

除非另有明确指出或者上下文另有指出,在此,“或”是包含性的而不是排他性的。因此,在此,除非另外明确指出或者上下文另有指出,否则“a或b”是指“a,b或两者”。此外,除非另有明确指出或者上下文另有指出,“和”既是联合的又是各自的。因此,除非另有明确指出或者上下文另有指出,在此,“a和b”意味着“a和b,共同地或分别地”。

本公开的范围涵盖本领域的普通技术人员将理解的对在此描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于在此描述或示出的示例性实施例。此外,尽管本公开在此将相应实施例描述和示出为包括特定组件、元件、特征、功能、操作或步骤,本领域普通技术人员将理解,这些实施例中的任何一个可以包括在此任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求书中对被适配为、被安排为、能够、被配置为、可以、操作为、或可操作来执行特定功能的设备或系统或设备或系统的组件的引用涵盖设备、系统、组件,无论它或那个特定的功能是否被激活,打开、或锁定,只要设备、系统或组件如此适配、安排、能够、配置、启用、可操作或运转。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1