用于自动地执行隐式消息搜索的计算机化系统和方法
本申请包括受版权保护的材料。版权所有者不反对任何人对专利公开进行传真复制,因为它出现在专利和商标局的文件或记录中,但在其他方面保留所有版权。
技术领域
本公开总体涉及改善消息传递和搜索设备、系统和/或平台的性能,这是通过修改能力并向这样的设备、系统和/或平台提供非本机功能,以用于用来在消息平台内自动地执行进程间通信(IPC),产生隐式消息搜索而不需要或不接收来自用户的搜索查询的新颖且改进的框架。
背景技术
电子邮件(email)流量持续增加,其主要由机器生成的流量支配,并且为了保持跟进,网络邮件服务持续提供越来越多的存储装置。此外,用户很少删除消息(82%从不删除单个消息),并且甚至更少地将他们的消息组织在文件夹中(70%从不定义单个文件夹,并且在定义文件夹的30%的用户中,只有10%实际使用它们)。上述内容的结果是用作数据存储的邮箱(用户通常这样认为),并且其中,检索特定消息相当困难。尽管用于检索过去的消息的默认机制是搜索,但它仍然很少在网络邮件中使用,甚至被许多人认为是困难和耗时的。
发明内容
所公开的系统和方法提供了一种搜索框架,该搜索框架提供了用于以直接和直觉的方式从消息传递平台内标识一组相关消息而无需指定或甚至不需要查询来发起搜索会话的能力。如下面更详细讨论的,关于消息m定义该组相关消息,消息m是用户已经展示出感兴趣的消息。根据一些实施例,可以基于具有消息m的用户动作经由所公开的搜索框架来展示、表达、确定、提取、导出、或以其他方式标识兴趣。例如,这种兴趣可以基于使得在收件箱视图中标记消息m的操作,可以涉及选择消息m的操作、涉及在点击并打开消息m之后返回到收件箱视图的操作、涉及在消息m和其他消息之间移动光标的操作、涉及回复、转发、删除、保存消息m等的操作、或其某种组合。
因此,每当检测到用户对消息m的兴趣时,检索与消息m相关的消息并被标记显示。可以以各种方式显示相关消息(如下面更详细地讨论并在图5A-5C中描绘的,其提供了说明所公开的搜索框架提供用于在消息传递用户界面(UI)内显示消息的非本机功能的非限制性实施例),但在所有情况下,它们将被呈现给用户而无需用户在消息平台内采取任何显式动作或UI视图的更改。
尽管将参考消息搜索来讨论本公开,但不应将其解释为限制性地,因为可以经由本文讨论的搜索框架来搜索和标识通过网络或在存储装置或存储库内可以定位的任何已知的或将要已知类型的内容项、数据项、或信息对象。
因此,所公开的系统和方法提供了一种搜索框架,用于在消息传送平台内经由进程间通信(IPC)来隐式地执行消息搜索而不需要或不实际接收用户搜索查询。本文讨论的搜索框架从邮箱标识与特定消息m相关的一组消息,该消息m被确定为用户当前感兴趣的对象。如本文所讨论的,当用户查看消息m或使用突出显示消息m的任何邮件操作来表达他对消息m的兴趣时,与消息m密切相关的该组消息将被呈现给用户。
因此,所公开的系统和方法提供了一种检索消息的新方法,并且这种检索被执行而无需制定或接收查询,并且无需切换到邮箱内的备用消息搜索状态(例如,无需在窗口、选项卡、UI显示之间切换以便在消息平台上执行搜索)。如从本文的公开所证明的,所公开的搜索框架可以在消息传递平台、应用、系统或服务内的任何消息或邮箱视图内执行(即不必切换到相应的消息搜索功能部分或窗口),并且提供了扩展相关消息的“线程”概念的功能。尽管普通“线程”消息源自单个种子消息并且对应于同一对应线,但本公开提供了不受这些约束限制的“线程”功能,并且仅集中于针对具有对于所标识的感兴趣消息的相关主题的那些消息提供“线程”。
根据一个或多个实施例,本公开提供了用于执行本文所讨论的搜索框架的计算机化方法,以及用于执行搜索框架的上述技术步骤的非暂态计算机可读存储介质。非暂态计算机可读存储介质具有有形地存储在其上,或者有形地编码在其上的计算机可读指令,这些计算机可读指令在由设备(例如,消息传递服务器、客户端设备等)执行时,使得至少一个处理器执行用于用来自动地执行隐式消息搜索而不需要或不接收来自用户的搜索查询,从而标识与感兴趣的消息相关的一组消息的新颖且改进的框架的方法。
根据一个或多个实施例,提供了一种系统,包括被配置为提供根据这样的实施例的功能的一个或多个计算设备。根据一个或多个实施例,功能被体现在由至少一个计算设备执行的方法的步骤中。根据一个或多个实施例,由计算设备的(一个或多个)处理器执行以实现根据一个或多个这样的实施例的功能的程序代码(或程序逻辑)被体现在非暂态计算机可读介质中、由非暂态计算机可读介质体现和/或在非暂态计算机可读介质上体现。
附图说明
根据如附图中所示的实施例的以下描述,本公开的前述内容和其他目的、特征和优点将是明显的,其中,附图标记在各个视图中指代相同的部分。附图不一定按比例绘制,而是将重点放在示出本公开的原理:
图1是示出根据本公开的一些实施例的在其中可以实现本文讨论的系统和方法的网络的示例的示意图;
图2描绘了示出根据本公开的一些实施例的客户端设备的示例的示意图;
图3是示出了根据本公开的实施例的示例性系统的组件的示意性框图;
图4是示出根据本公开的一些实施例执行的步骤的流程图;
图5A-5C示出了根据本公开的一些实施例的消息搜索的非限制性实施例;
图6是示出根据本公开的一些实施例执行的步骤的流程图;以及
图7是示出了根据本公开的一个或多个实施例的示例性硬件设备的架构的框图。
具体实施方式
现在将在下文中参考附图更全面地描述本公开,附图形成本公开的一部分,并且通过图示的方式示出了某些示例实施例。然而,主题可以以各种不同的形式体现,因此,所涵盖或要求保护的主题旨在被解释为不限于本文所述的任何示例实施例;提供示例实施例仅用于说明。同样,所要求保护或涵盖的主题的范围旨在相当广泛。除其他项外,例如,主题可以被体现为方法、设备、组件或系统。因此,实施例可以例如采用硬件、软件、固件或其任何组合的形式(除软件本身之外)。因此,以下详细描述不应被视为限制意义。
在整个说明书和权利要求书中,术语可以具有超出所明确说明的含义的在上下文中建议或暗示的细微差别的含义。同样地,如本文使用的短语“在一个实施例中”不一定指代同一实施例,并且如本文使用的短语“在另一实施例中”不一定指代不同的实施例。例如,所要求保护的主题旨在包括整个或部分示例实施例的组合。
通常,术语可以至少部分地从上下文中的使用来理解。例如,如本文所使用的诸如“和”、“或”或“和/或”之类的术语可包括多种含义,这些含义可以至少部分地取决于使用这些术语的上下文。通常,“或”如果用于关联列表(例如A、B或C),则意指A、B和C,此处以包含性意义使用,以及A、B或C,此处以排他性含义使用。此外,至少部分地取决于上下文,如本文所使用的术语“一个或多个”可以用于以单数意义描述任何特征、结构或特征,或者可以以复数含义描述特征、结构或特征的组合。类似地,至少部分地取决于上下文,诸如“一”、“一个”或“该”之类的术语也可以被理解为传达单数用法或传达复数用法。此外,至少部分地取决于上下文,术语“基于”可以被理解为不一定旨在传达因素的排他性组合,并且替代地,可以允许存在不一定被明确描述的其他因素。
下面参考方法和设备的框图和操作说明来描述本公开。应当理解,框图或操作说明的每个框以及框图或操作说明中的框的组合可以借助于模拟或数字硬件和计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机(以改变其如本文详述的功能)、专用计算机、ASIC或其他可编程数据处理装置的处理器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令实现方框图或一个或多个操作块中指定的功能/动作。在一些替代实现方式中,框中提到的功能/动作可以不按照操作说明中所指出的顺序发生。例如,连续示出的两个方框实际上可以基本上同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
可以将这些计算机程序指令提供给下列项的处理器:通用计算机(以改变其如本文详述的功能)、专用计算机、ASIC或其他可编程数据处理装置,使得通过计算机或其他可编程数据处理装置的处理器执行的指令实现方框图或一个或多个操作块中指定的功能/动作,从而根据本文的实施例来转换它们的功能。
为了本公开的目的,计算机可读介质(或一个或多个计算机可读存储介质)以计算机可读的形式存储计算机数据,该数据可以包括可由计算机执行的计算机程序代码(或计算机可执行指令)。通过示例而非限制的方式,计算机可读介质可以包括用于数据的有形或固定存储的计算机可读存储介质,或用于对包含代码的信号进行瞬时解释的通信介质。如本文使用的计算机可读存储介质是指物理或有形存储装置(与信号相反),并且包括但不限于以用于信息(计算机可读指令、数据结构、程序模块或其他数据)的有形存储的方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、DVD、或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或可用于有形地存储所需信息或数据或指令并且可由计算机或处理器访问的任何其他物理或材料介质。
出于本公开的目的,术语“服务器”应该被理解为指代提供处理、数据库和通信设施的服务点。通过示例而非限制的方式,术语“服务器”可以指具有相关联的通信和数据存储装置和数据库设施的单个物理处理器,或者它可以指代处理器和相关联的网络和存储设备,以及支持服务器提供的服务的操作软件和一个或多个数据库系统和应用软件的联网或集群复合体。服务器的配置或功能可以有很大不同,但通常服务器可以包括一个或多个中央处理单元和存储器。服务器还可以包括一个或多个大容量存储设备、一个或多个电源、一个或多个有线或无线网络接口、一个或多个输入/输出接口、或一个或多个操作系统,例如,Windows Server、Mac OS X、Unix、Linux、FreeBSD等。
出于本公开的目的,“网络”应该被理解为指代可以耦合设备以便可以交换通信的网络,例如,在服务器和客户端设备之间或者其他类型的设备之间交换通信,例如,包括在通过无线网络耦合的无线设备之间交换通信。网络还可以包括大容量存储装置,例如附接网络的存储装置(NAS)、存储区域网络(SAN)或其他形式的计算机或机器可读介质。网络可以包括互联网、一个或多个局域网(LAN)、一个或多个广域网(WAN)、有线类型连接、无线类型连接、蜂窝或其任何组合。同样地,可以采用不同架构或者可以服从或兼容不同协议的子网可以在更大的网络内互操作。例如,可以使得各种类型的设备可用于为不同的架构或协议提供可互操作的能力。作为一个说明性示例,路由器可以提供其他分离和独立LAN之间的链路。
通信链路或信道可以包括模拟电话线,例如双绞线、同轴电缆、包括T1、T2、T3或T4类型线的全数字线或分数数字线、综合业务数字网络(ISDN)、数字订户线(DSL)、包括卫星链路的无线链路、或其他通信链路或信道,如本领域技术人员可能已知的。此外,计算设备或其他相关电子设备可以例如通过有线或无线线路或链路而远程耦合到网络。
出于本公开的目的,“无线网络”应被理解为将客户端设备与网络耦合。无线网络可以采用独立自组网络、网状网络、无线LAN(WLAN)网络、蜂窝网络等。无线网络还可以包括通过无线无线电链路等耦合的终端、网关、路由器等的系统,其可以自由地、随机地移动或任意地组织自身,使得网络拓扑可以改变,有时甚至快速地改变。
无线网络还可以采用多种网络接入技术,包括Wi-Fi、长期演进(LTE)、WLAN、无线路由器(WR)网、或者第2代,第3代或第4代(2G、3G、4G或5G)蜂窝技术等。网络接入技术可以实现设备的广域覆盖,例如具有不同程度的移动性的客户端设备。
例如,网络可以通过一种或多种网络接入技术来实现RF或无线类型通信,例如,全球移动通信系统(GSM)、通用移动电信系统(UMTS)、通用分组无线电服务(GPRS)、增强型数据GSM环境(EDGE)、3GPP长期演进(LTE)、LTE高级、宽带码分多址(WCDMA)、蓝牙、802.11b/g/n等。无线网络实际上可以包括任何类型的无线通信机制,通过这些机制,信号可以在诸如客户端设备或计算设备之类的设备之间、网络之间或之内等进行传送。
计算设备能够例如经由有线或无线网络来发送或接收信号,或者能够例如在存储器中作为物理存储器状态来处理或存储信号,并且因此可以用作服务器。因此,能够用作服务器的设备可以包括例如专用机架式服务器、台式计算机、膝上型计算机、机顶盒、组合各种特征(例如前述设备的两个或更多个特征)的集成设备等。服务器的配置或功能可以有很大不同,但通常服务器可以包括一个或多个中央处理单元和存储器。服务器还可以包括一个或多个大容量存储设备、一个或多个电源、一个或多个有线或无线网络接口、一个或多个输入/输出接口、或一个或多个操作系统,例如,Windows Server、Mac OS X、Unix、Linux、FreeBSD等。
出于本公开的目的,客户端(或消费者或用户)设备可以包括能够例如经由有线或无线网络发送或接收信号的计算设备。客户端设备可以例如包括台式计算机或便携式设备,例如蜂窝电话、智能电话、显示寻呼机、射频(RF)设备、红外(IR)设备和近场通信(NFC)设备、个人数字助理(PDA)、手持式计算机、平板计算机、平板电话、笔记本计算机、机顶盒、可穿戴计算机、智能手表、组合各种特征(例如上述设备的特征)的集成或分布式设备等。
客户端设备在能力或特征方面可以不同。所要求保护的主题旨在涵盖广泛的潜在变化。例如,简单的智能电话、平板计算机或平板电话可以包括数字小键盘或功能有限的显示器,例如用于显示文本的单色液晶显示器(LCD)。然而,相比之下,作为另一示例,支持网络的客户端设备可以包括高分辨率屏幕、一个或多个物理或虚拟键盘、大容量存储装置、一个或多个加速度计、一个或多个陀螺仪、全球定位系统(GPS)、或者其他位置标识类型能力、或具有高度功能的显示器,例如触敏彩色2D或3D显示器。
客户端设备可以包括或可以执行各种操作系统,包括个人计算机操作系统(例如,Windows、iOS或Linux)或移动操作系统(例如,iOS、Android或Windows Mobile等)。
客户端设备可以包括或可以执行各种可能的应用,例如,能够与其他设备进行通信的客户端软件应用,例如,传送一个或多个消息,例如通过电子邮件,例如,Mail、短消息服务(SMS)或多媒体消息服务(MMS),例如,Yahoo!包括通过网络,例如社交网络,包括例如或InstagramTM,仅提供一些可能的示例。客户端设备还可以包括或执行应用以传送内容,例如文本内容、多媒体内容等。客户端设备还可以包括或执行应用以执行各种可能的任务,例如,浏览、搜索、播放、流式传输或显示各种形式的内容,包括本地存储或上传的图像和/或视频、或游戏(例如幻想体育联盟)。提供前述内容是为了说明所要求保护的主题旨在包括宽泛范围的可能的特征或能力。
如本文所讨论的,对“广告”的引用应被理解为包括但不限于被体现为提供由另一用户、服务、第三方、实体等所提供的信息的媒体项的数字媒体内容。这样的数字广告内容可以包括可由计算设备呈现的任何类型的已知或将已知的媒体,包括但不限于视频、文本、音频、图像和/或任何其他类型的已知或将已知的多媒体项或对象。在一些实施例中,数字广告内容可以被格式化为提供深度链接特征和/或能力的超链接多媒体内容。因此,虽然某个内容被称为广告,但它仍是可由计算设备呈现的数字媒体项,并且这种数字媒体项包括中继由网络关联方提供的促销内容的内容。
本文描述的原理可以以许多不同的形式体现。所公开的系统和方法提供了用于消息平台和服务以及它们的所提供的邮箱和用户界面(UI)的新颖搜索框架,用于自动地执行邮箱的搜索而不实际接收或甚至不需要用户所提供的搜索查询。
所公开的系统和方法被体现在搜索框架内(并且经由来自图3的搜索引擎300实现,如下面更详细地讨论的),该搜索框架向消息传递平台/服务提供非本机功能,其涉及确定用户对邮箱内的消息m感兴趣,然后利用该信息以便自动地搜索、标识和显示一组相关消息。本文讨论的搜索框架不需要搜索查询或执行驻留在托管邮箱的消息平台上的本机搜索功能;相反,所公开的搜索框架在确定(或标识)用户对特定消息(即如本文所引用的消息m)感兴趣时自动地执行一组指令。
如下面更详细讨论的,对消息m感兴趣的这种标识可以基于多种因素,包括但不限于例如与消息的用户交互(例如,当用户查看消息m、或使用突出显示消息m的任何邮件或计算机操作时)的类型、数量和/或频率等,或其某种组合。
这样,根据本公开的一些实施例,在标识感兴趣的消息(消息m)时,搜索框架自动地标识用户邮箱内的相关消息,对其进行检索,然后从邮箱视图中将其呈现给用户(如图5A-5C所示,并在下面更详细地讨论)。
如下面更详细讨论的(参见下面的图4讨论),基于消息m与用户邮箱中的其他消息之间的相似性分析来标识相关消息。所公开的相似性分析使得确定哪些消息与消息m相关(例如,涉及同一上下文),而不是简单地标识哪些消息在结构、发送者等方面是相似的,如从本文的讨论显而易见的。所公开的相似性分析涉及基于包括但不限于下列项的特征来执行每个消息的n-维分析:i)时间、ii)联系人关系和iii)内容相似性,如下所述。下面所讨论的分析利用三维相似性分析技术;然而,用于比较消息的特征的数量可以扩展到n-因子,从而验证上面提到的n-维分析。例如,这些因子可以包括但不限于消息HTML结构、消息语言、消息的样式等。
根据一些实施例,在标识与消息m相关的该组消息中执行的相似性分析可以基于对于邮箱的用户个性化的近似因子(或值)和/或基于邮箱内容。如本文的公开所验证的,通过标识特定于用户邮箱并且经常经由用户邮箱交换的某些类型的消息,可以在相似性分析(上面提到并在下面讨论的)期间考虑接近值。例如,考虑在线订购衣服的收据消息。针对很少在线订购的用户的该组相关消息可以是她先前的在线订单。对于经常在线购买的另一用户,该组相关消息可以包括甚至更具体的在线衣服订单:来自同一零售商的衣服订单。
尽管本文的讨论集中于标识单个感兴趣的消息并然后标识对于该标识消息的相关消息,但不应将其解释为限制性的,因为任何数目的消息可以被标识为对于用户是感兴趣的,并且任何数目的组的相关消息(例如,重叠的多组消息)可以通过本文讨论的所执行的搜索框架来标识,而不脱离本公开的范围。
因此,所公开的系统和方法提供了在消息传递平台内检索消息的新方式。这种消息检索被执行而无需制定或接收查询,和/或切换到邮箱内的消息搜索状态。如从本文的公开所验证的,所公开的搜索框架可以在消息传递平台、应用、系统或服务内的任何视图内执行,并且通过提供忽略典型会话“线程”中的传统消息分组约束的“线程”功能而提供了扩展相关消息的“线程”概念的高级功能,并提供了涉及单独地提供不受其来源或在邮箱内的位置阻碍的相关消息的“线程”。
如下面至少关于图6更详细地讨论的,根据一些实施例,如本文所讨论的,在提供、传递、或实现对于通过网络提供的消息、媒体和/或应用的这种设备访问时,与消息标识、搜索和显示相关联的、在消息标识、搜索和显示期间导出的或者以其他方式标识的、或者作为消息标识、搜索和显示的结果的信息可以用于货币化目的和有针对性的广告。向与这些所发现的内容相关联的用户提供有针对性的广告可以使得这些广告的点击率(CTR)增加和/或广告商服务由第三方提供的这种内容(例如,由广告商提供的数字广告内容,其中广告商可以是第三方广告商,或者是直接与本文讨论的系统和方法相关联或托管本文讨论的系统和方法的实体)的投资回报率(ROI)的增加。
现在将参考附图更详细地描述某些实施例。一般地,参考图1,示出了根据本公开的实施例的系统100。图1示出了在其中可以实施本文所讨论的系统和方法的一般环境的组件。并非需要所有组件来实施本公开,并且可以在不脱离本公开的精神或范围的情况下进行组件的布置和类型的变化。如图所示,图1的系统100包括局域网(“LAN”)/广域网(“WAN”)-网络105、无线网络110、移动设备(客户端设备)102-104和客户端设备101。图1还包括各种服务器,例如,内容服务器106、应用(或“App”)服务器108、消息(或消息传递)服务器120和广告(“ad”)服务器130。
以下更详细地描述移动设备102-104的一个实施例。然而,通常,移动设备102-104实际上可以包括能够通过网络(例如网络105、无线网络110等)接收和发送消息的任何便携式计算设备。移动设备102-104通常还可以被描述为被配置为便携式的客户端设备。因此,移动设备102-104实际上可以包括能够连接到另一计算设备并接收信息的任何便携式计算设备。这些设备包括多点触摸和便携式设备,例如,蜂窝电话、智能电话、显示寻呼机、射频(RF)设备、红外(IR)设备、个人数字助理(PDA)、手持式计算机、膝上型计算机、可穿戴计算机、智能手表、平板计算机、平板电话、组合一个或多个前述设备的集成设备等。这样,移动设备102-104通常在能力和特征方面范围很广。例如,蜂窝电话可以具有数字小键盘和在其上只能显示文本的几行单色LCD显示器。在另一示例中,支持网络的移动设备可以具有触敏屏幕、触控笔和在其上可以显示文本和图形的HD显示器。
支持网络的移动设备可以包括浏览器应用,其被配置为接收和发送网页、基于网络的消息等。浏览器应用可以被配置为采用几乎任何基于网络的语言来接收和显示图形、文本、多媒体等,包括无线应用协议消息(WAP)等。在一个实施例中,浏览器应用能够采用手持设备标记语言(HDML)、无线标记语言(WML)、WMLScript、JavaScript、标准通用标记语言(SMGL)、超文本标记语言(HTML)、可扩展标记语言(XML)等来显示和发送消息。
移动设备102-104还可以包括被配置为从另一计算设备接收内容的至少一个客户端应用。客户端应用可以包括提供和接收文本内容、图形内容、音频内容等的能力。客户端应用还可以提供标识其自身的信息,包括类型、能力、名称等。在一个实施例中,移动设备102-104可以通过各种机制中的任何一种来唯一地标识它们自己,包括电话号码、移动识别码(MIN)、电子序列号(ESN)或其他移动设备标识符。
在一些实施例中,移动设备102-104还可以与非移动客户端设备(例如客户端设备101等)进行通信。在一个实施例中,这种通信可以包括发送和/或接收消息、搜索、查看和/或共享照片、音频剪辑、视频剪辑或任何各种其他形式的通信。客户端设备101实际上可以包括能够通过网络进行通信以发送和接收信息的任何计算设备。这种设备的集合可以包括通常使用有线或无线通信介质进行连接的设备,例如个人计算机、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC等。因此,客户端设备101还可以具有用于显示信息的可导航视图的不同能力。
客户端设备101-104计算设备能够例如经由有线或无线网络来发送或接收信号,或者能够例如在存储器中作为物理存储器状态来处理或存储信号,并且因此可以用作服务器。因此,能够用作服务器的设备可以包括例如专用机架式服务器、台式计算机、膝上型计算机、机顶盒、组合各种特征(例如前述设备的两个或更多个特征)的集成设备等。
无线网络110被配置为将移动设备102-104及其组件与网络105相耦合。无线网络110可以包括可进一步覆盖独立自组网络等的各种无线子网络中的任何一个,以便为移动设备102-104提供面向基础设施的连接。这种子网络可以包括网状网络、无线LAN(WLAN)网络、蜂窝网络等。
网络105被配置为将内容服务器106、应用服务器108等与其他计算设备(包括客户端设备101)相耦合,并通过无线网络110耦合到移动设备102-104。网络105能够采用任何形式的计算机可读介质来将信息从一个电子设备传送到另一电子设备。此外,除了局域网(LAN)、广域网(WAN)、直接连接(例如通过通用串行总线(USB)端口)、其他形式的计算机可读介质或其任何组合之外,网络105还可以包括互联网。在互连的一组LAN(包括基于不同架构和协议的LAN)上,路由器用作LAN之间的链路,使得消息能够从一个LAN发送到另一LAN、和/或其他计算设备。
在用于或被理解为适用于本公开的通信网络内,这种网络将采用用于通过网络进行通信的各种协议。经由网络(例如参与数字通信网络的网络)传送的信号分组可以兼容或服从一个或多个协议。所采用的信令格式或协议可以包括例如TCP/IP、UDP、QUIC(快速UDP互联网连接)、DECnet、NetBEUI、IPX、APPLETALKTM等。互联网协议(IP)的版本可以包括IPv4或IPv6。互联网是指网络的分散全球网络。互联网包括局域网(LAN)、广域网(WAN)、无线网络或例如允许信号分组在LAN之间进行传送的长途公共网络。信号分组可以在网络的节点之间进行传送,例如,传送到采用本地网络地址的一个或多个站点。例如,信号分组可以经由耦合到互联网的接入节点通过互联网从用户站点进行传送。同样地,例如,信号分组可以经由网络节点被转发到经由网络接入节点耦合到网络的目标站点。经由互联网传送的信号分组可以例如经由网关、服务器等的路径来路由,其可以根据目标地址和到目标地址的网络路径的可用性来路由信号分组。
根据一些实施例,本公开还可以在电子社交网站内使用或可以访问电子社交网站。社交网络通常是指通过通信网络或通过各种子网络耦合的个体的电子网络,例如但不限于熟人、朋友、家人、同事或工友。潜在地,附加关系可能由于通过通信网络或子网络的社交互动而后续形成。在一些实施例中,多模通信可以在社交网络的成员之间发生。一个或多个社交网络内的个体可以经由各种设备与社交网络的其他成员进行交互或通信。多模通信技术是指允许跨多个设备或平台(例如,蜂窝电话、智能电话、平板计算设备、平板手机、个人计算机、电视、机顶盒、SMS/MMS、电子邮件、即时消息客户端、论坛、社交网站等)进行可互操作通信的一组技术。
在一些实施例中,所公开的网络110和/或105可以包括(一个或多个)内容分发网络。“内容传递网络”或“内容分发网络”(CDN)通常是指分布式内容传递系统,其包括由一个或多个网络链接的计算机或计算设备的集合。CDN可以采用软件、系统、协议或技术来促进各种服务,例如,存储、缓存、内容传送或流媒体或应用。CDN还可以使得实体能够全部或部分地操作或管理另一CDN的站点基础设施。
内容服务器106可以包括具有用于经由网络向另一设备提供内容的配置的设备。内容服务器106可以例如托管站点、服务或相关联的应用,例如,电子邮件平台(例如,Mail)、社交网站、照片共享站点/服务(例如,)、搜索平台或站点、或个人用户站点(例如博客、视频博客、在线约会站点等)等。内容服务器106还可以托管各种其他站点,包括但不限于商业站点、教育站点、词典站点、百科全书站点、维基、金融站点、政府站点等。可以用作内容服务器106的设备包括个人计算机、台式计算机、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、服务器等。
内容服务器106还可以提供各种服务,包括但不限于流媒体服务和/或下载媒体服务、搜索服务、电子邮件服务、照片服务、网络服务、社交网络服务、新闻服务、第三方服务、音频服务、视频服务、即时消息传递(IM)服务、SMS服务、MMS服务、FTP服务、IP语音(VOIP)服务等。可以经由应用服务器108来提供这样的服务,例如邮件应用和/或电子邮件平台,由此用户能够在用户被认证、验证或标识时利用这种服务。内容的示例可以包括视频、文本、音频、图像等,其可以以物理信号的形式(例如电信号)进行处理,或者可以例如作为物理状态存储在存储器中。
广告服务器130包括存储用于呈现给用户的在线广告的服务器。“广告服务”是指用于在网站、应用或用户更可能看到它们的其他地方放置在线广告的方法,例如,在在线会话期间或在计算平台使用期间。可以结合赞助广告使用各种货币化技术或模型,包括与用户相关联的广告。这种赞助广告包括货币化技术,包括赞助搜索广告、非赞助搜索广告、保证和非保证传递广告、广告网络/交换、广告定向、广告服务和广告分析。此类系统可以在网页创建期间合并广告投放机会的近乎实时的拍卖(在一些情况下不到500毫秒),并且具有更高质量的广告投放机会,产生更高的每广告收入。也就是说,当广告商相信他们的广告被投放在被呈现给用户的高度相关内容中或者与被呈现给用户的高度相关内容一起投放时,他们将支付更高的广告费。减少量化高质量广告投放所需的时间可以为广告平台带来竞争优势。因此,更高的速度和更相关的情境检测改善了这些技术领域。
例如,购买或销售在线广告的过程可能涉及许多不同的实体,包括广告商、发布商、代理商、网络或开发者。为了简化该过程,被称为“广告交换”的组织系统可以关联广告商或发布商,例如通过平台来促进从多个广告网络购买或销售在线广告库存。“广告网络”是指来自发布商的广告空间供应的聚合,例如用于全体供应给广告商。对于像这样的门户网站,广告可以至少部分地基于一个或多个搜索项来在产生自用户定义的搜索的网页上或应用中显示。如果所显示的广告与一个或多个用户的兴趣相关,则广告可能对用户、广告商或门户网站有益。因此,已经开发了各种技术来推断用户兴趣、用户意图或随后将相关广告定向到用户。呈现目标广告的一种方法包括采用人口统计特性(例如,年龄、收入、性别、职业等)来例如按组预测用户行为。可以至少部分地基于所预测的(一个或多个)用户行为来向目标观众中的用户呈现广告。
另一方法包括简档类型(profile-type)广告定向。在该方法中,可以生成特定于用户的用户简档以模拟用户行为,例如,通过跟踪用户通过站点的网站或网络的路径,并至少部分地基于最终传递的页面或广告来编辑简档。例如,可以标识相关性以例如用于用户购买。通过将内容或广告定向到特定用户,所标识的相关性可以用于定向潜在购买者。在呈现广告期间,呈现系统可以收集关于被呈现给用户的广告的类型的描述性内容。可以收集广泛的描述性内容,包括特定于广告呈现系统的内容。所收集的广告分析可以被发送到远离广告呈现系统的位置以进行存储或用于进一步评估。在广告分析发送不能立即可用的情况下,所收集的广告分析可以由广告呈现系统存储,直到那些广告分析的发送变为可用。
服务器106、108、120和130能够例如经由有线或无线网络来发送或接收信号,或者能够例如在存储器中作为物理存储器状态来处理或存储信号。能够用作服务器的设备可以包括例如专用机架式服务器、台式计算机、膝上型计算机、机顶盒、组合各种特征(例如前述设备的两个或更多个特征)的集成设备等。服务器的配置或功能可以有很大不同,但通常服务器可以包括一个或多个中央处理单元和存储器。服务器还可以包括一个或多个大容量存储设备、一个或多个电源、一个或多个有线或无线网络接口、一个或多个输入/输出接口、或一个或多个操作系统,例如,Windows Server、Mac OS X、Unix、Linux、FreeBSD等。
在一些实施例中,用户能够访问由服务器106、108、120和/或130提供的服务。在非限制性示例中这可以包括使用它们的各种设备101-104通过网络105的认证服务器、搜索服务器、电子邮件服务器、社交网络服务服务器、SMS服务器、IM服务器、MMS服务器、交换服务器、照片共享服务服务器和旅行服务服务器。在一些实施例中,诸如邮件或消息传递应用(例如,Mail、Messenger)、照片共享/用户生成内容(UGC)应用(例如,等)、流视频应用(例如,AmazonHBO等)、博客、照片或社交网络应用(例如,等)、搜索应用(例如,搜索)等之类的应用可以由应用服务器108(或内容服务器106、消息服务器120等)托管。因此,应用服务器108可以存储各种类型的应用和应用相关信息,包括应用数据和用户简档信息(例如,与用户相关联的标识和行为信息)。还应理解,内容服务器106还可以存储与内容服务器106在相关联的内容数据库107中提供的内容和服务有关的各种类型的数据,如下面更详细地讨论的。存在这样的实施例,其中,网络105还与可信搜索服务器(TSS)相耦合/连接,该可信搜索服务器(TSS)可用于根据本文所讨论的实施例来呈现内容。存在这样的实施例,其中,TSS功能可以被体现在服务器106、108、120和/或130内。
此外,尽管图1将服务器106、108、120和130分别示出为单个计算设备,但本公开不限于此。例如,服务器106、108、120和/或130的一个或多个功能可以分布在一个或多个不同的计算设备上。此外,在一个实施例中,服务器106、108、120和/或130可以被集成到单个计算设备中,而不脱离本公开的范围。
图2是示出客户端设备的示意图,该客户端设备示出了可以在本公开内使用的客户端设备的示例实施例。客户端设备200可以包括比图2中所示的组件更多或更少的组件。然而,所示出的组件足以公开用于实现本公开的说明性实施例。客户端设备200可以表示例如上面关于图1所讨论的客户端设备。
如图所示,客户端设备200包括经由总线224与大容量存储器230进行通信的处理单元(CPU)222。客户端设备200还包括电源226、一个或多个网络接口250、音频接口252、显示器254、键盘256、照明器258、输入/输出接口260、触觉接口262、可选全球定位系统(GPS)接收器264以及(一个或多个)相机或者其他光学、热或电磁传感器266。如本领域技术人员所理解的,设备200可以包括一个相机/传感器266、或多个相机/传感器266。(一个或多个)相机/(一个或多个)传感器266在设备200上的定位可以根据设备200模型、每设备200能力等或其某种组合而改变。
电源226向客户端设备200提供电力。可以使用可充电或不可充电电池来提供电力。电力还可以由外部电源提供,例如,AC适配器或补充和/或对电池进行充电的电动对接支架。
客户端设备200可选地可以与基站(未示出)进行通信,或者直接与另一计算设备进行通信。网络接口250包括用于将客户端设备200耦合到一个或多个网络的电路,并且被构造用于与如上所述的一个或多个通信协议和技术一起使用。网络接口250有时被称为收发器、收发设备或网络接口卡(NIC)。
音频接口252被布置为产生和接收音频信号,例如人声的声音。例如,音频接口252可以耦合到扬声器和麦克风(未示出)以实现与其他项的电信和/或生成用于某一动作的音频确认。显示器254可以是液晶显示器(LCD)、气体等离子体、发光二极管(LED)或与计算设备一起使用的任何其他类型的显示器。显示器254还可以包括触敏屏幕,该触敏屏幕被布置为接收来自诸如手写笔之类的对象或来自人手的手指的输入。
键盘256可以包括被布置为从用户接收输入的任何输入设备。例如,键盘256可以包括按钮数字拨号盘或键盘。键盘256还可以包括与选择和发送图像相关联的命令按钮。照明器258可以提供状态指示和/或提供光。照明器258可以在特定时间段内或响应于事件而保持有效。例如,当照明器258有效时,它可以从背后照亮键盘256上的按钮并在客户端设备通电时保持开启。此外,当执行特定动作(例如,拨打另一客户端设备)时,照明器258可以以各种模式来从背后照亮这些按钮。照明器258还可以使得位于客户端设备的透明或半透明壳体内的光源响应于动作而发光。
客户端设备200还包括输入/输出接口260,用于与外部设备(例如耳机)或图2中未示出的其他输入或输出设备进行通信。输入/输出接口260可以利用一种或多种通信技术,例如USB、红外、蓝牙TM等。触觉接口262被布置为向客户端设备的用户提供触觉反馈。例如,当客户端设备200从另一用户接收到通信时,可以采用触觉接口来以特定方式振动客户端设备200。
可选GPS收发器264可以确定客户端设备200在地球表面上的物理坐标,其通常将位置输出为纬度和经度值。GPS收发器264还可以采用其他地理定位机制,包括但不限于三角测量、辅助GPS(AGPS)、E-OTD、CI、SAI、ETA、BSS等,以进一步确定客户端设备200在地球表面上的物理位置。可以理解,在不同条件下,GPS收发器264可以确定客户端设备200在毫米内的物理位置;并且在其他情况下,所确定的物理位置可能不太精确,例如,在一米内或显著更大的距离内。然而,在一个实施例中,客户端设备可以通过其他组件提供可用于确定设备的物理位置的其他信息,包括例如MAC地址、互联网协议(IP)地址等。
大容量存储器230包括RAM 232、ROM 234和其他存储装置。大容量存储器230示出了用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的计算机存储介质的另一示例。大容量存储器230存储用于控制客户端设备200的低级操作的基本输入/输出系统(“BIOS”)240。大容量存储器还存储用于控制客户端设备200的操作的操作系统241。应理解,该组件可以包括通用操作系统,例如UNIX或LINUXTM的版本,或专用客户端通信操作系统,例如,Windows ClientTM或操作系统。操作系统可以包括Java虚拟机模块或者与其相接口,该Java虚拟机模块能够通过Java应用来控制硬件组件和/或操作系统操作。
存储器230还包括客户端设备200除其他选项外还可以用来存储应用242和/或其他数据的一个或多个数据存储。例如,可以采用数据存储来存储描述客户端设备200的各种能力的信息。然后可以基于各种事件中的任何事件将信息提供给另一设备,包括在通信期间作为头部的一部分进行发送、根据要求进行发送等。至少一部分能力信息也可以被存储在客户端设备200内的磁盘驱动器或其他存储介质(未示出)上。
应用242可以包括计算机可执行指令,当由客户端设备200执行时,发送、接收和/或以其他方式处理音频、视频、图像,并且实现与服务器和/或另一客户端设备的另一用户的通信。在一些实施例中,应用程序或“app”的其他示例包括浏览器、日历、联系人管理器、任务管理器、代码转换器、照片管理、数据库程序、文字处理程序、安全性应用、电子表格程序、游戏、搜索程序等。应用242还可以包括搜索客户端245,其被配置为使用任何已知或将已知的通信协议来发送、接收和/或以其他方式处理搜索查询和/或搜索结果。尽管示出了单个搜索客户端245,但应该清楚可以采用多个搜索客户端。例如,一个搜索客户端可以被配置为输入搜索查询消息,其中,另一搜索客户端管理搜索结果,并且又一搜索客户端被配置为管理服务数字内容(例如,广告)或与(但不限于)IM、电子邮件和其他类型的已知消息等相关联的其他形式的数字数据。
已经描述了在所公开的系统和方法内采用的一般架构的组件,现在将参考图3-图6来描述关于所公开的系统和方法的组件的一般操作。
图3是示出用于执行本文所讨论的系统和方法的组件的框图。图3包括搜索引擎300、网络315和数据库320。搜索引擎300可以是专用机器或处理器,并且可以由消息传递服务器、应用服务器、内容服务器、社交网络服务器、网络服务器、搜索服务器、内容提供商、电子邮件服务提供商、广告服务器、用户的计算设备等、或其任何组合托管。
根据一些实施例,搜索引擎300可以被体现为在用户设备上执行的独立应用。在一些实施例中,搜索引擎300可以用作安装在用户的设备上的应用,并且在一些实施例中,这样的应用可以是用户设备通过网络访问的基于网络的应用。在一些实施例中,搜索引擎300可以作为增强脚本、程序或应用而被安装到另一消息传递和/或媒体内容托管/服务应用,例如,Mail、Messenger、Search、 等。
数据库320可以是任何类型的数据库或存储器,并且可以与网络上的内容服务器(例如,来自图1的内容服务器106、消息服务器120、广告服务器130或应用服务器108)或者用户的设备(例如,来自图1-2的设备101-104或设备200)相关联。数据库320可以包括例如内容项的数据集、设备数据和相关联的元数据、以及用户数据和相关联的用户元数据。这样的信息可以被独立地和/或作为链接或关联的数据集而存储在数据库320中。应理解,在不脱离本公开的范围的情况下,数据库320中的数据(和元数据)可以与任何类型的内容、用户、设备或网络信息和类型相关联,无论是已知的还是将已知的。
数据库320包括与内容项相关联的数据和元数据的数据集。出于本公开的目的,将关于作为整体的电子消息(包括数字内容)来参考内容项目;然而,不应将其解释为限制本文所讨论的系统和方法的应用。尽管本公开通篇引用了电子消息,但可以由搜索引擎300根据本文讨论的系统和方法来传送和/或访问并处理其他形式的电子文档或传输(例如,短消息服务(SMS)消息、多媒体消息服务(MMS)消息等)。例如,对消息(如消息m)的检测可以基于消息或电子文档或文件中的任何类型的项,并且这样的项可以包括任何类型的已知或将已知形式的数字内容,无论是作为整个文件还是包括在文件中,包括消息、文本、音频、视频、短格式视频、多媒体等。
根据所公开的系统和方法处理并存储在数据库320中的消息以及这些消息的数据和元数据可以是任何类型的消息。这类消息的示例可包括但不限于电子邮件消息、HTML格式SMS/MMS消息、消息、消息和其他社交消息、对文章或网站的评论、在线论坛帖子/条目、文字处理文档、帮助台消息、便携式文档格式(PDF)文档和/或其他类型的文档。消息可以被提供给搜索引擎300,或者可以由可以访问消息的计算机程序或设备访问。在一些实施例中,消息可以被存储在与电子邮件提供商(例如Yahoo!)相关联的存储消息320的数据库中。
数据库320还可以包括与和用户、设备、服务、应用、用户生成的内容、第三方提供的内容等相关的本地和/或网络信息相关联的数据和元数据的数据集。这些信息可以被独立地和/或作为链接或关联的数据集而被存储和索引在数据库320中。如上所述,应理解,数据库320中的数据(和元数据)可以是任何类型的信息和类型,无论是已知的还是将已知的,而不脱离本公开的范围。
根据一些实施例,数据库320可以存储用户的数据,即用户数据。根据一些实施例,所存储的用户数据可以包括但不限于与用户的简档、(一个或多个)用户帐户、用户兴趣、用户行为信息、用户属性、用户偏好或设置、用户人口统计信息、用户位置信息、用户传记信息等、或其某种组合相关联的信息。
根据一些实施例,用户数据还可以包括用于搜索、接收和/或显示消息、呈现和/或显示内容、和/或下载、流式传输和/或访问网络上或网络上方的应用的目的,设备信息包括但不限于设备标识信息、设备能力信息、语音/数据载体信息、互联网协议(IP)地址、所安装的或能够在此类设备上安装或执行的应用、和/或其任何或某种组合。应理解,数据库320中的数据(和元数据)可以是与用户、内容、设备、应用、服务提供商、内容提供商有关的任何类型的信息,无论是已知的还是将已知的,而不脱离本公开的范围。
根据一些实施例,数据库320可以包括与内容提供商相关联的信息,例如但不限于使得用户能够发送、接收、搜索、上载、下载、共享、编辑、或以其他方式有益于用户的消息传递平台、应用、站点或提供商(例如,Search、Mobile application、Mail、 等)。在一些实施例中,数据库320可以包括与来自托管站点的一个或各种媒体的此类信息相关联的数据和元数据。在一些实施例中,这种内容提供商信息可以包括但不限于由用户设备驻留或访问,和/或能够被下载、执行、访问或在用户设备上运行以呈现内容的应用的版本、类型和/或能力。
在一些实施例中,存储在数据库320中的信息可以被表示为针对每个所存储的数据/元数据项的n维向量(或特征向量),其中,与例如所存储的数据和/或元数据相关联的信息可以对应于向量上的(一个或多个)节点。这样,数据库320可以将所存储的信息作为链接的数据和元数据的集合来在数据库320中存储和索引,其中,数据和元数据关系可以被存储为上面讨论的n维向量。这种存储装置可以通过任何已知的或将已知的向量或阵列存储装置来实现,包括但不限于散列树、队列、堆栈、VList、或任何其他类型的已知或将已知的动态存储器分配技术或工艺。虽然对一些实施例的讨论涉及对所存储的信息的向量分析,但如上所述,可以根据任何已知的或将已知的计算分析技术或算法来分析、存储和索引信息,例如但不限于word2vec分析、聚类分析、数据挖掘、贝叶斯网络分析、隐马尔可夫模型、人工神经网络分析、逻辑模型和/或树分析等。
在一些实施例中,数据库320可以是容纳与一个或多个设备、用户、服务和/或内容提供商相关联的信息的单个数据库,并且在一些实施例中,数据库320可以被配置作为提供这样的信息的链接的数据存储的集合,因为该集合中的每个数据存储与特定用户、设备、服务和/或内容提供商相关联和/或对于它们是唯一的。
如上所述,参考图1,网络315可以是任何类型的网络,例如但不限于无线网络、局域网(LAN)、广域网(WAN)、互联网或其组合。网络315促进搜索引擎300和存储资源的数据库320的连接。实际上,如图3所示,搜索引擎300和数据库320可以通过任何已知的或将已知的连接和/或实现这些设备和资源之间的通信的方法来直接连接。
包括根据本文的专用功能所编程的硬件的主处理器、服务器或设备的组合为了方便起见而被称为搜索引擎300,并且包括兴趣标识模块302、相似性功能模块304、检索模块306、以及线程生成模块308。应理解,本文所讨论的(一个或多个)引擎和模块是非穷举的,因为额外的或更少的引擎和/或模块(或子模块)可以适用于所讨论的系统和方法的实施例。下面将讨论每个模块的操作、配置和功能,以及它们在本公开的实施例中的作用。
根据本文讨论的实施例,如从下面关于图4的公开所验证的,搜索引擎300执行和/或实现每个模块(例如,302-308),以便在消息平台/设备的共同执行的搜索和消息传递功能中执行IPC,从而协调同时在消息平台、应用、OS、设备等上运行的不同程序进程中的搜索和邮件活动。在一些实施例中,如上所述,当搜索引擎300用作对于另一消息传递和/或媒体内容托管/服务应用的增强脚本、程序或应用时,IPC可以是程序间通信。
转到图4,过程400详细描述了根据本公开的一些实施例执行的用于在消息传递平台的用户界面(UI)内的可显示线程界面内检索和显示一组相关消息的步骤。
过程400的步骤402-406由搜索引擎300的兴趣标识模块302执;步骤408由相似性函数模块304执行;步骤410由检索模块306执行;并且步骤412-414由线程生成模块308执行。
过程400开始于步骤402,其中,搜索引擎300监测与用户的收件箱内的消息有关的活动,并且在这种监测期间,标识在用户和消息m之间发生的交互。
如上所述,这种交互可以是在用户的收件箱内发生的任何类型的用户和/或系统活动,包括但不限于接收新消息(其中新消息是消息m或对应于消息m(例如,是对消息m的回复))、用户起草消息m、查看消息m、转发消息m、保存消息m、删除消息m、响应具有消息m的消息、和/或相对于消息m所执行的任何其他类型通信操作、改变消息m在用户邮箱的UI内的视图、标记或标志消息m、对消息m进行分类(例如,将其移动到特定文件夹)、在消息m上悬停界面对象(例如,鼠标指针)等、或其某种组合。
因此,步骤402涉及标识什么类型的交互和/或动作相对于用户邮箱内的消息m而发生。
在步骤404中,搜索引擎300基于检测到的与消息m相关的输入来执行消息m是用户感兴趣的消息的确定。根据一些实施例,该确定可以基于预设或预定的操作的列表,其定义了用户通常对感兴趣的消息执行什么类型的交互。例如,步骤402涉及识别消息m被移动到特定文件夹,并且这可以指示消息m是用户感兴趣的。然而,文件夹的类型可以在确定消息是否重要方面起主要作用。例如,如果文件夹是“垃圾邮件”文件夹,则明显地消息m不是感兴趣的;然而,如果文件夹是用户生成的文件夹(例如,不是邮箱提供的文件夹),则搜索引擎300可以将其理解为将消息m标识为用户感兴趣的消息的操作。
在一些实施例中,用于将检测到的输入标识为与感兴趣的消息相关的操作的列表可以由用户、系统、搜索引擎300、管理员等预定义。在一些实施例中,可以根据用户所学习的动作来定义操作的列表。例如,如果在用户的收件箱中检测到的新消息总是经受用户的3个动作中的至少1个动作,则这3个动作(或者它们中的至少1个)可以被确定为与特定用户感兴趣的消息相关,从而用于标识特定用户感兴趣的消息。
在步骤406中,在确定消息m是用户感兴趣的消息之后,分析消息m,并且基于该分析,标识其特征(特征可互换地被称为属性、特性、值、测量等,它们都涉及包含在消息m中并定义消息m的特定数据和元数据)。
根据一些实施例,在步骤406中发生的这种分析可以通过实现和/或执行执行下列项(但不限于这些项)的任何已知或将已知的软件或技术来执行:内容提取、自然语言处理(NLP)、n元(n-gram)分析、向量转换和分析等、或其某种组合。因此,作为步骤404的结果,搜索引擎300解析、标识、然后提取消息m的特征。
根据一些实施例,并且在下面更详细地讨论的,所标识的消息m的消息特征对应于(但不限于)与消息m相关的时间数据(例如,何时接收到消息m和/或何时与其交互,从而在步骤402-404中将其标识为感兴趣的消息)、联系人数据(例如,消息m的发送者和(一个或多个)接收者的标识)、以及提供关于消息m中所包括的内容的指示的内容数据(其可以用于确定针对其可以标识相似消息的上下文的类型)。这些时间、联系人和内容特征用于标识具有相应的时间、联系人和内容特征的相关消息,如关于步骤408-410所讨论的。
在步骤408中,搜索引擎300计算消息m与邮箱内的消息池之间的相似性分数(也被称为并被理解为“相关性分数”),其用于从初始消息池中标识一组相关消息(如在下面讨论的步骤410中)。在一些实施例中,消息池包括邮箱中的每个和所有其他消息;然而,由于一些邮箱具有极大量的消息,因此在一些实施例中,消息池仅包括满足标准的那些消息。标准可以包括但不限于在预定时间帧(例如,在过去一周内)接收到的消息、保存/存储在同一文件夹中的消息、来自同一发送者的消息、发送给同一接收者的消息、接收与消息m相似类型的交互的消息等、或其某种组合。
例如,如果消息m因为它被分类在标记为“工作”的文件夹中而被标识,则在一些实施例中,用作计算与消息m的相似性分数的基础的消息池可以仅是也保存在“工作”文件夹中的那些消息。
步骤408涉及搜索引擎300执行由相似性函数f定义的软件,该相似性函数f将两个消息(m1,m2)作为输入并基于以下三个维度来计算它们的相似性:i)时间、ii)联系人和iii)内容。因此,这里m1指的是消息m,并且m2指的是消息池中的另一消息。如上所述,相似性计算可以基于任何数目的维度而不改变所公开的系统和方法的范围,因为这样的维度直接对应于被比较的数字项的属性或特征的数量和类型;然而,为了本公开的清楚性,本文将仅讨论3个维度(时间、联系人和内容),本领域技术人员将不限制所公开的搜索引擎300的适用性。
根据一些实施例,相似性函数f可以被如下定义:
f(m1,m2)=A(sim_{时间}(m1,m2),sim_{联系人}(m1,m2),sim_{内容}(m1,m2)) (等式1),
其中,sim_{时间}、sim_{联系人}和sim_{内容}分别表示分别基于消息时间、联系人和内容的相似性,并且A是这些相似性测量的聚合函数。
根据一些实施例,在其各自的测量上使用聚合函数A来计算针对每个维度的相似性。例如,考虑维度d,其中,d∈{时间,联系人,内容},两个消息(m1,m2),则对应于维度d的相似性测量sim{d_s1}、sim{d_s2}、…、sim{d_sn}如下表示:
根据非限制性示例,时间相似性测量如下:
sim_{time_diff_x}(m1,m2),其中,x∈{分钟,小时,星期,月}。
在该示例中,时间相似性函数计算消息(m1,m2)的接收时间之间的时间差,并且相对于时间单位(分钟,小时,星期,月)计算这些值。
非限制性联系人相似性测量如下:
sim_{contact_x}(m1,m2),其中,x∈{发送至,来自,抄送,密件抄送}。
该联系人相似性函数计算每个消息上列出的联系人之间的相似性,例如,使用Jaccard相似性。
根据一些实施例,内容相似性测量的非限制性示例如下:
sim_{content_subj}(m1,m2),其中,相对于两个消息的主题行来执行这样的计算。
根据一些实施例,这种测量涉及执行消息主题的文本相似性分析,其可以通过任何类型的已知或将已知的分析技术、软件或算法来计算,包括但不限于使用消息的主题中的文本元素的TF-IDF因子的余弦相似性。
在另一非限制性示例中,内容相似性测量如下:
sim_{content_body}(m1,m2),其中,相对于两个消息中的每个消息的主体内的内容来执行这样的计算。
根据一些实施例,这种测量涉及执行消息主题的文本相似性分析,其可以通过任何类型的已知或将已知的分析技术、软件或算法来计算,包括但不限于使用消息的主体中的文本元素的TF-IDF因子的余弦相似性。
在另一非限制性示例中,内容相似性测量如下:
sim_{content_cat}(m1,m2),其中,相对于每个消息的类别指定来执行这样的计算,该类别指定可以从消息主体、消息头部、来自发送者、接收者、收件箱本身等的内容、或其某种组合来进行标识。
在另一非限制性示例中,内容相似性测量如下:
sim_{content_extract}(m1,m2),其中,计算两个消息的所提取的数据之间的相似性。例如,所提取的数据与来自每个消息的原始文本的具有上下文注释的信息相对应。例如,可以使用注释<airport_arrival>来提取“SFO”。可以比较这些注释,并且可以根据上面关于确定内容相似性测量所讨论的类似机制来计算它们的相似性。
在进一步的非限制性示例中,可以根据下列项来执行附加的内容相似性测量:sim_{content_struct}(m1,m2),其中,计算两个消息的HTML结构之间的相似性,以及sim_{content_url}(m1,m2),其中,计算两个消息的主体内的链接之间的相似性。如上所述,这种计算也可以通过任何已知的或将已知的相似性分析技术来执行。
根据一些实施例,对两个消息之间的内容相似性的确定可以基于上述(和另外提供的)内容特征中的每个内容特征的聚合。例如,对两个消息之间的内容相似性的确定可以如下:
Σ或者A(sim_{content_body}(m1,m2),sim_{content_subj}(m1,m2),sim_{content_cat}(m1,m2),sim_{content_extract}(m1,m2),sim_{content_struct}(m1,m2),sim_{content_url}(m1,m2)).
应理解,上面的相似性测量的列表是非限制性的,并且仅出于提供可以如何利用时间、联系人和内容特征以便确定两个消息之间的相似性的澄清示例的目的而被阐述。
因此,根据一些实施例,步骤408涉及计算消息m相对应消息池中的每个消息的相似性分数。该相似性分数基于上面讨论的等式1的结果。
在一些实施例中,搜索引擎300可以周期性地针对邮箱中的每个消息执行相似性分数计算。这由于各种原因对系统是有益的。一个益处是能够具有对于当前在邮箱中的消息的实时相似性分数,因为可以连续地计算、动态地更新并保留分数,使得类似消息的动态显示可以根据它们被编译的时间而被提供给用户(参见下面讨论的图5A)。另一益处是当消息被标识为是感兴趣的时(即步骤404),过程400可以跳过步骤406-408并检索针对每个消息的先前执行的相似性分数数据,并直接进行到步骤410。可以与过程400的步骤并行地来离线地或在线地执行这些实施例。在一些实施例中,步骤410的相似性分数计算可以按需执行。
在一些实施例中,这种并行相似性分数分析的执行可以基于所标识的触发。这种触发可以是例如接收到新消息或预定时间段的期满。因此,例如,在接收到新消息时,搜索引擎300针对邮箱中(或消息池内)的每个消息执行等式1,并且将所确定的每个消息的相似性数据存储在数据库320中。当消息m然后被标识时,可以检索消息m相对于每个其他消息的相似性信息。
在一些实施例中,步骤408的这种并行分析可以加速搜索和检索过程。也就是说,代替必须实时地执行计算(例如,在识别消息m时),搜索引擎300可以并行地或在步骤402之前执行该计算,由此在标识消息m时,相似性数据是已经被计算并准备好在步骤410中使用,如下所述。
继续过程400,在标识消息m以及消息池中的每个消息对于消息m的相似性分数(基于每个消息(包括消息m)的时间、联系人和内容特征)之后,过程400进行到步骤410,其中,标识消息m的一组相关消息。在一些实施例中,选择来自池的具有满足阈值的相似性分数的每个消息。阈值表示与消息m的相似性级别,其中,为了满足阈值,作为时间、联系人和内容分数的聚合(来自等式1)的消息的总分数至少满足阈值。对于步骤412,不选择具有不满足阈值的相似性分数的那些消息,并且在一些实施例中,丢弃这些消息。
在步骤412中,生成线程界面,其中,界面包括分别显示在步骤410中选择的每个消息的交互对象。如本领域技术人员所理解的,所生成的线程是被添加到可视地分组所选消息的邮箱的UI的界面特征。传统系统仅在同一对话内的消息上提供线程;然而,在步骤412中生成的线程不受消息是否来自相同的对话和组的约束,并且基于它们对于消息m的总时间、联系人和内容相似性来可视地显示这些消息。如此,所生成的线程包括从步骤410中选择的消息。在步骤414中,使得所生成的线程被显示在与消息m的显示相关的邮箱UI内。
根据一些实施例,可以通过执行机器学习(ML)技术来执行如上面关于过程400所讨论的等式1的执行,例如,线性回归分析、决策树分析、随机森林分析、和深度神经网络(DNN)、隐马尔可夫模型(HMM)、支持向量机(SVM)、贝叶斯方法等。例如,可以利用指示“肯定(positive)”或“否定(negative)”对的消息对的训练数据集,其中,“肯定”对表示相关消息(例如,用户在预定时间帧内(例如,在15分钟时间帧内)选择的消息对、用作预定次数的查询结果的消息对),并且“否定”对表示不相关消息(例如,从在预定次数(例如,20次)发生的搜索中未能在任何其他对中标识的消息)。当消息使用上面提到的ML功能进行分析时,它们与肯定对和否定对进行比较,并且如果它们相似,则搜索引擎300基于相似的训练数据来相应地指定它们。在一些实施例中,根据“肯定”和“否定”消息对的特征来训练、设置和/或调整上面讨论的阈值。
图5A-5C提供了上面关于图3-4和过程400所公开的搜索引擎300的能力和功能的非限制性示例。图5A描绘了用户的邮箱(或收件箱)用户界面(UI):项500(其可视地显示收件箱的文件夹部分502(其列出了用户可以设置、交互等的文件夹的交互列表))、消息列表504、滚动条508和界面对象508a-508c。
消息列表504是收件箱500内的消息传递活动的列表。在列表504内,出于该示例的目的,消息506是消息m。如上所述,消息506可以基于提供用户对该特定消息感兴趣的指示(例如,简单地将用户的鼠标悬停在消息上可以是用户对该消息感兴趣的指示)的任何类型的用户交互而被标识为用户感兴趣的。
滚动条508从消息列表504中的活动绘制其时间线,使得当接收到新消息时,滚动条508被更新以反映最近接收到的新消息,而不是已经被填充在收件箱500中的旧消息。滚动条508还描绘了界面项508a-508c。项508a-508c向收件箱500提供各种功能。每个项提供关于何时针对消息506执行最新相似性分数计算的可视指示。也就是说,将滚动条508视为时间线,其中,滚动条508的顶部与接收到最新消息的时间一致,项508a表示在接收到最新消息之后但比项508b的评分更近的情况下执行的消息506的评分,并且对于项508c也是如此。项508a-508c也是交互式的,使得在接收到选择时,可以在UI 500内提供被确定为与消息506相关的消息(如从上面讨论的过程400所确定的)的显示来作为项506a-如下面讨论的图5所示。被确定为与消息506相关的消息对于每个项508a-508c可以不同(因为它们在具有不同消息池的不同时间被确定);因此,可以通过在每个项508a-508c之间进行选择来切换不同相关消息集的视图。
在图5B中,UI 500描绘了被选择(或在步骤402-404中标识)的消息506,其中,显示了相关消息(从步骤408-414确定)的生成线程(项506a)。在一些实施例中,线程界面506a可以被显示为到消息506的连接界面;在一些实施例中,界面506a可以被显示在单独的窗口中;并且在一些实施例中,界面506a可以覆盖UI 500。
通过非限制性示例的方式,如图5B所示,消息506被识别为收件箱500的用户感兴趣(例如,基于用户选择消息,如项506中的“黑屏”选择框所指示的),并且线程界面506a内的该组消息被标识为与消息506相关。例如,由于消息506涉及来自“car.com”的关于“本田”的消息,因此线程506a中的消息也对应于“本田”。例如,一条消息来自用户的朋友“JaneDoe”,并且它涉及对用户询问用户是否仍想购买她的汽车的回复消息。另一示例消息来自“Autotrader.com”,提供本月针对本田的优惠。并且,另一示例消息是来自用户的母亲的电子邮件,询问她是否购买了本田。
与其他类型的线程消息一样,项506a中所包括的每个消息是完全交互的,其中,用户可以直接从UI 500和元素506a选择并发送回复消息(或者甚至向那些发送者编写新消息)。
图5C提供了一个示例实施例,其中,用户正在从消息编写窗口550编写消息552,并且被提供界面554,其描绘了相关消息的生成线程554。在一些实施例中,线程554中的消息可以基于所选择的消息(例如,选择来自图5B的消息506并将其用作编写回复消息的基础,如图5C所示)。在一些实施例中,当用户正在编写消息或者已经完成消息并且提交发送指令时(或者在发送指令之前),可以执行过程400,使得生成线程554以便用户可以查看与他/她所编写的消息有关的消息。在一些实施例中,代替线程554出现在所编写的消息中(如图5C中所示),可以以与图5C中类似的方式但在所选消息(例如,消息506)的扩展版本内查看线程554,其中,线程554以类似方式被显示在扩展消息版本内。在一些实施例中,线程界面元素554可以被显示在消息和/或消息UI的任何部分中,包括消息上方、消息下方、消息内、右侧或左侧轨道或侧栏中、工具栏中等。
因此,如图3-5C所示并且关于这些附图所讨论的,所公开的系统和方法提供了一种向用户呈现一组相关消息的新颖的消息搜索特征。关于其中当前表现出兴趣的消息m来标识该组。用户对消息m的兴趣可以由使得消息在常规时间视图中被突出显示/标记的任何本机操作来触发。基于三个维度来标识相关消息:i)时间、ii)联系人和iii)内容。根据函数f来计算该组相关消息,该函数f获得一对消息(m1,m2)作为输入并计算它们的相似性(等式1,如上所述)。在一些实施例中,函数可以通过学习过程(MLR)来离线地计算,并且基于对应于上述属性的相似性测量。
例如,给定消息m,该组相关消息包括根据f最接近m的消息。由本文公开的搜索框架提供的相关消息特征向用户提供了一种新颖的方式以提供密切相关的一组消息,而无需发起搜索查询和/或切换到消息应用、平台或服务内的不同状态(例如,从消息视图切换到消息搜索)。所公开的搜索特征使得用户能够更高效地扫描他的邮箱,并被立即提供感兴趣的消息。此外,它将线程的概念从属于同一对应关系的消息(如在传统系统中)扩展到跨在邮箱内随时间接收/发送的所有消息具有类似上下文的消息。
图6是用于基于与消息及其相关消息相关联的信息来对与广告相关联的或包括广告的相关数字媒体内容(例如,数字广告内容)进行服务的工作流程示例600,如上面关于图3-5C所讨论的。被称为“消息信息”的这种信息仅供参考,可以包括但不限于与感兴趣的消息(即消息m,如上所述)相关联的信息、其相关消息、在上述相似性分析中使用的属性、内容和特征等、和/或其某种组合。
如上所述,对“广告”的引用应被理解为包括但不限于提供由另一用户、服务、第三方、实体等所提供的信息的数字媒体内容。这样的数字广告内容可以包括可由计算设备呈现的任何类型的已知或将已知的媒体,包括但不限于视频、文本、音频、图像和/或任何其他类型的已知或将已知的多媒体。在一些实施例中,数字广告内容可以被格式化为提供深度链接特征和/或能力的超链接多媒体内容。因此,虽然内容被称为广告,但它仍是可由计算设备呈现的数字媒体项,并且这种数字媒体项包括中继由网络关联第三方提供的促销内容的数字内容。
在步骤602中,标识消息信息。如上所述,消息信息可以基于来自上面关于图3-5C所概述的过程的任何信息。出于本公开的目的,过程600将参考单个消息及相关消息集合来作为服务(一个或多个)数字广告的基础;然而,不应该将其解释为限制性的,因为在不脱离本公开的范围的情况下,任何数目的消息以及所使用的程序和/或其中包括的内容项可以形成这样的基础。
在步骤604中,基于所标识的消息信息来确定上下文。该上下文形成了用于服务与消息信息相关的广告的基础。在一些实施例中,上下文可以根据消息m或相关消息集合的内容(例如,上下文),如上面关于图4所讨论的。例如,消息m及其相关消息可以各自对应于狩猎的主题-例如,消息m是来自狩猎季节将要开始的状态的通知,并且相关消息集合中的消息包括但不限于来自讨论狩猎旅程的朋友的消息以及来自狩猎装备提供商的指示装备的最新库存已经到达的其他消息;因此,在步骤604中标识的上下文可以与“狩猎”或其他“季节性户外活动”相关,并且可以被利用以便标识与这些活动相关的数字广告内容,如本文中关于过程600的步骤所讨论的。在一些实施例中,来自步骤604的对上下文的标识可以在上面关于过程400所详细描述的分析之前、期间和/或之后发生,或者它可以是完全独立的过程、或者其某种组合。
在步骤606中,与包括广告服务器130和广告数据库的广告平台通信(或共享)所确定的上下文。在接收到上下文时,广告服务器130执行(例如,使得根据从执行搜索引擎300的设备接收到的指令来执行)对相关联的广告数据库内的相关广告的搜索。对广告的搜索至少基于所标识的上下文。
在步骤608中,广告服务器130针对与所标识的上下文匹配的(一个或多个)数字广告来搜索广告数据库。在步骤610中,基于步骤608的结果来选择(或检索)广告。在一些实施例中,可以修改所选择的广告以符合在其上将显示广告的页面、界面、消息、平台、应用或方法和/或针对其将显示广告的应用和/或设备的属性或能力。在一些实施例中,经由用户用来查看、编写、发送、接收和/或呈现消息或媒体的应用来共享或传送所选择的广告,步骤612。在一些实施例中,将所选广告直接发送到每个用户(每个消息的发送者和接收者)的计算设备。在一些实施例中,所选择的广告被显示在界面的一部分内或者在与用于发送/接收消息的消息传递接口相关联的重叠或弹出界面内。
如图7所示,(一个或多个)计算设备、计算系统、计算平台等的内部架构700包括一个或多个处理单元、处理器或处理核(本文也称为CPU)712,其与至少一个计算机总线702相接口。还与计算机总线702相接口的是一个或多个计算机可读介质706、网络接口714、存储器704(例如,随机存取存储器(RAM)、运行时瞬态存储器、只读存储器(ROM))、媒体磁盘接口708和/或媒体磁盘驱动器接口720(作为驱动器的接口,该驱动器可以读取和/或写入包括诸如软盘、CD-ROM、DVD、介质之类的可移除介质的介质)、显示接口710(作为用于监视器或其他显示设备的接口)、键盘接口716(作为用于键盘的接口)、定位设备接口718(作为鼠标或其他定位设备的接口)、以及未单独示出的各种其他接口722,例如,并行和串行端口接口以及通用串行总线(USB)接口。
存储器704与计算机总线702相接口,以便在执行软件程序期间向CPU 712提供存储在存储器704中的信息,软件程序例如,操作系统、应用程序、设备驱动程序和包括程序代码的软件模块、和/或计算机可执行处理步骤,包括本文描述的功能,例如,本文描述的一个或多个处理流程。CPU 712首先从存储装置加载计算机可执行处理步骤,例如,存储器704、一个或多个计算机可读存储介质706、可移除介质驱动器和/或其他存储设备。然后,CPU712可以执行所存储的处理步骤以便执行所加载的计算机可执行处理步骤。在计算机可执行处理步骤的执行期间,CPU 712可以访问所存储的数据,例如,由存储设备存储的数据。
永久存储装置(例如,一个或多个介质706)可以用于存储操作系统和一个或多个应用程序。永久存储装置还可以用于存储设备驱动器,例如下列项中的一项或多项:数码相机驱动器、监视器驱动器、打印机驱动器、扫描仪驱动器或其他设备驱动器、网页、内容文件、播放列表和其他文件。永久存储装置可以进一步包括用于实现本公开的一个或多个实施例的程序模块和数据文件,例如,(一个或多个)列表选择模块、(一个或多个)目标信息收集模块、以及(一个或多个)列表通知模块、本文详细讨论的在本公开的实现方式中的功能和使用。
网络链路728通常使用传输介质通过一个或多个网络来向使用或处理信息的其他设备提供信息通信。例如,网络链路728可以提供通过本地网络724到主计算机726或由网络或互联网服务提供商(ISP)730操作的设备的连接。ISP设备进而通过现在通常称为互联网732的网络的公共全球分组交换通信网络来提供数据通信服务。
连接到互联网732的被称为服务器主机734的计算机托管响应于通过互联网732接收到的信息而提供服务的过程。例如,服务器主机734托管提供表示图像和/或视频数据的信息以在显示器710处进行呈现的过程。预期系统700的组件可以以各种配置被部署在其他计算机系统(例如,主机和服务器)中。
本公开的至少一些实施例涉及使用用于实现本文描述的一些或所有技术的计算机系统700。根据一个实施例,那些技术由计算机系统700响应于执行包含在存储器704中的一个或多个处理器指令的一个或多个序列的处理单元712而执行。这种指令(也称为计算机指令、软件和程序代码)可以从诸如存储设备或网络链路之类的另一计算机可读介质706读入存储器704。包含在存储器704中的指令的序列的执行使得处理单元712执行本文描述的一个或多个方法步骤。在替代实施例中,代替软件或与软件组合可以使用诸如ASIC之类的硬件。因此,除非本文另有明确说明,否则本公开的实施例不限于硬件和软件的任何特定组合。
通过通信接口在网络链路和其他网络上发送的信号将信息运载到计算机系统700并从计算机系统700运载信息。计算机系统700可以通过网络等、通过网络链路和通信接口来发送和接收包括程序代码的信息。在使用互联网的示例中,服务器主机通过互联网、ISP设备、本地网络和通信接口来发送由从计算机发送的消息所请求的特定应用的程序代码。所接收的代码在其被接收时可以由处理器702执行、或者可以被存储在存储器704中或存储设备或其他非易失性存储装置中以供稍后执行、或两者。
出于本公开的目的,模块是(在有或没有人类交互或增强的情况下)执行或促进本文描述的过程、特征和/或功能的软件、硬件或固件(或其组合)系统、过程或功能、或其组件。模块可以包括子模块。模块的软件组件可以被存储在计算机可读介质上以供处理器执行。模块可以被集成到一个或多个服务器,或者由一个或多个服务器加载和执行。可以将一个或多个模块分组为引擎或应用。
出于本公开的目的,术语“用户”、“订户”、“消费者”或“客户”应当被理解为指代如本文所述的一个或多个应用的用户和/或由数据提供商提供的数据的消费者。通过示例而非限制的方式,术语“用户”或“订户”可以指代在浏览器会话中通过互联网接收由数据或服务提供商提供的数据的人,或者可以指代接收数据并存储或处理数据的自动化软件应用。
本领域技术人员将认识到,本公开的方法和系统可以以许多方式实现,并且因此不受前述示例性实施例和示例的限制。换句话说,由单个或多个组件、在硬件和软件或固件的各种组合中、以及各个功能执行的功能元件可以在客户端等级或服务器等级或两者分布在软件应用中。在这方面,任何数目的本文描述的不同实施例的特征可以被组合成单个或多个实施例,并且具有少于或多于本文描述的所有特征的替代实施例是可能的。
功能也可以以现在已知的或变为已知的方式全部地或部分地分布在多个组件中。因此,无数的软件/硬件/固件组合可以实现本文描述的功能、特征、接口和偏好。此外,本公开的范围涵盖用于执行所描述的特征和功能和接口的传统的已知方式,以及可以对本文描述的硬件或软件或固件组件做出的那些变化和修改,如现在和将来的本领域技术人员将理解的。
此外,通过示例的方式提供了在本公开中被呈现和描述为流程图的方法的实施例,以便提供对本技术的更完整的理解。所公开的方法不限于本文呈现的操作和逻辑流程。设想了替代实施例,其中,改变了各种操作的顺序,并且其中,被描述为作为较大操作的一部分的子操作被独立执行。
尽管已经出于本公开的目的描述了各种实施例,但是不应认为这些实施例将本公开的教导限制于那些实施例。可以对上述元件和操作进行各种改变和修改,以获得保持在本公开中描述的系统和过程的范围内的结果。