具体实施方式
公开了一种用于对用户的浏览和/或浏览行为进行建模的方法、装置和软件。在下面的描述中,出于解释的目的,阐述了许多具体细节,以便提供对本发明的实施例的透彻理解。然而,对本领域技术人员显而易见的是,可以在没有这些具体细节的情况下或在等同布置的情况下来实施本发明的实施例。在其它实例中,以框图的形式示出了公知的结构和设备,以便避免不必要地使本发明的实施例模糊。
图1是根据一个实施例的能够对用户的浏览和/或浏览行为进行建模的系统的示图。当前正在各种用户设备(UE)101上使用浏览器应用(例如,Web浏览器),其中一些用户设备可能具有有限的屏幕分辨率和空间。通常,Web页面被设计用于具有相对大显示器的桌上型和膝上型计算机。如此,Web页面布局常常是复杂的,其具有页眉、页脚、菜单、导航面板、广告以及多个内容栏。这些Web页面所期望的显示器分辨率经常是1024×768或者更高,并且是在7英寸(用于例如笔记本)、12英寸(用于例如膝上型计算机)、17英寸(用于例如桌上型计算机)或者更大的最优屏幕大小的情况下。移动设备通常因为形式因素的考虑和功率约束而运行在受限显示器尺寸情况下的较低分辨率。因而,要求这些设备的用户有时过度地扫视(pan)或滚动通过屏幕来定位用户希望查看的区域。例如,当移动设备不具有触摸屏或其它用户友好的接口时,该导航可能是困难和麻烦的;这是具有有限功能性(例如,较低端的模型)的移动设备的情况。还观察到,通常,Web浏览器未被个性化来帮助用户导航到期望的区域。例如,如果两个用户从同一模型UE 101访问同一链接,则每个用户将看到以相同方式呈递的Web页面。此外,注意到,当访问Web站点(例如,为了找到特定信息或完成特定任务)时,利用具有受限屏幕空间的设备的用户经常具有更清楚的关于忍受导航控制的乏味性的印象。访问某些Web站点的原因可以因人不同而变化(例如,一个用户可以在访问新闻站点时阅读文本,而另一个用户查看照片,一个用户可以例行地登录到银行Web站点来检查用户的余额,而另一个用户可以在没有登录的情况下检查抵押利率,等等)。进一步认识到,用户在到达Web站点内感兴趣的区域或部分之前,经常重复对相同或类似Web站点的同一系列的导航控制(例如,滚动和扫视)。
因此,图1的系统100引入了对用户的浏览和/或浏览行为进行建模的能力,从而辅助用户有效地进行浏览。有利地,通过最小化对导航控制的使用而同时增强用户体验来将效率转变成减少的功率消耗。在一个实施例中,系统100收集利用了UE 101上的浏览器应用的用户的浏览行为信息。具体地,所述收集可以由UE 101或浏览器平台103来实施。根据一个实施例,行为信息可以包括:在UE 101上显示的区域、用户进入(即,在特定部分上移动导航控制)和离开该区域时的时间戳,和/或关于用户参与的内容的其它信息。然后,UE 101或浏览器平台103可以通过处理所收集的信息来创建对于该用户来说个体化的模型。该模型可用于帮助辅助用户导航单个Web页面或一系列Web页面。
在图1的情形下,系统100涉及UE 101a-101n,UE 101a-101n经由通信网络105连接到浏览器平台103。UE 101可以利用浏览器应用107a来从内容服务器109(例如,Web服务器)获得内容。在一个实施例中,UE101通过通信网络105连接到内容平台109。UE 101可以包括观察模块111a-111n、建模模块113a或辅助模块115a-n。在一个实施例中,UE 101经由浏览器平台103连接到内容平台109,浏览器平台103采用观察模块111b、建模模块113b和辅助模块115b来帮助用户浏览。
在一个实施例中,UE 101n经由观察模块111a-n来收集关于UE 101浏览的信息。在该情形下,观察量111n被发送到浏览器平台103的观察模块111b。出于说明的目的,相对于在全球因特网上访问万维网的内容来解释浏览器应用107;然而,可以设想到,内容可驻留在任何数据网络(例如,私有网络、内联网等)上。然后,浏览器平台103记录观察量或者用户浏览行为。在另一个实施例中,UE 101n经由观察模块111a来收集关于用户的浏览行为的信息。观察模块111观察和记录用户所访问的Web页面以及用户如何导航Web页面。在一个实施例中,观察模块111记录用户正在查看哪部分Web页面,以及关于用户何时开始和完成对该Web页面的特定区域的查看的计时信息。此外,例如,观察模块111还可以记录在单个Web站点内各种Web页面上的这样的信息。在一个实施例中,所显示的Web页面的该部分是通过浏览器应用(或者应用的插件)而获知的。
在另一实施例中,Web页面与文档对象模型(DOM)页面结构(其是在呈递Web页面的过程中生成的)相关联。在客户机侧浏览器中,UE 101已知DOM。在服务器侧浏览器(例如以下这样的浏览器,即在该浏览器中,呈递是在浏览器平台103上完成的并且然后以压缩格式(例如,专有格式)被传输到UE 101)中,UE 101与浏览器平台103通信并且传送正在UE 101显示器上呈现的内容。然后,浏览器平台103可以将该信息转换回DOM格式。替代地,可以遍及观测、建模和辅助过程使用压缩格式来替代DOM格式。DOM格式是元素(例如,头部、主体、标题、根html等)、属性(例如,href)以及文档(例如,html文档)文本的树结构。
在一个实施例中,观察模块111确定在浏览器窗口上显示的与页面结构相关联的页面区域。在一个实施例中,观察模块111确定与在浏览器窗口上显示的内容相关联的DOM的子树。在该实施例中,观察模块111估计(approximate)浏览器窗口(如同其在被用户使用一样)到Web页面的DOM中的子树的映射。在一个实施例中,选择至少覆盖了浏览器窗口中特定百分比(例如,50%)的区域的在DOM中的最小子树用于映射。在另一实施例中,选择覆盖了浏览器窗口中整个区域的在DOM中的最小子树用于映射。在又一实施例中,选择完全处在浏览器窗口内的在DOM中的最大子树用于映射。如果在DOM中没有子树满足该规则,则可以选择下一个最接近的子树,或者可以应用不同的规则。可以保存该Web页面的DOM结构,从而使得可以在稍后的时间返回对其进行查阅。在一个实施例中,在Web页面的DOM中的元素具有可用于查阅子树的唯一标识符。在另一实施例中,可以通过索引、数组或指针来查阅DOM子树。
根据一个实施例,观察模块111确定用户正在查看Web页面的开始时间和完成时间或持续时间。值得注意的是,浏览器可以用时间标记出开始和停止时间。可以以国际标准组织(ISO)8601或任何其它适当的格式来记录时间戳。在一个实施例中,为了适应从Web页面的一个查看区域到另一个查看区域的转移,当Web页面已经处于稳定状态达到特定时间量(例如,3秒)时才记录起始时间戳。因而,当Web页面的状态稳定了预定时间段时,可以记录起始时间戳。可以基于用户观察量来按经验地调谐预定时间段。伴随时间戳,还可以记录用户正在察看的DOM子树的标识符。在当用户从DOM子树浏览离开时的状态下可以记录结束时间戳。当用户滚动或扫视页面、点击链接或实施另一操作从而使得浏览器窗口中的内容(例如,DOM的子树或DOM本身)已经改变时,可发生状态改变。替代地,观察模块111收集附加信息(例如,浏览器的缩放级别、浏览器所使用的字体大小,等等)。按照一个实施例,另一对象被用于标识Web页面的一部分而不是DOM树。
如上所述,UE 101a或浏览器平台103可以基于由观察模块111收集的数据来对UE 101a的行为进行建模。建模模块113生成该模型来预测UE 101的浏览器应用107的未来行为。可以在用于客户机侧浏览器的UE101上以及在用于服务器侧浏览器的浏览器平台103上执行用户行为建模。可以在可获得所观察和所记录的状态的任何地方发生该建模。
建模模块113可以利用任何数目的建模方法来创建模型以便预测用户的行为。在一个实施例中,使用马尔可夫链来确定用户的行为。马尔可夫链具有三个部分:状态集合、状态之间的转移概率,以及状态的初始概率分布。观察模块111(例如,DOM子树)捕获这样的状态信息。建模模块113可以移除看起来不太频繁的状态以便减少模型的复杂性。一旦定义了状态,则对于从一个状态到另一个状态的转移确定出转移概率。可以使用与状态相关联的时间戳来计算转移概率(例如,如果在一状态中花费的平均时间是t1,其中t1大于或等于1,则留在该状态的概率可以是(t1-1)/t1,如果第一状态总共出现了x次,其中有y次其转移到第二状态,那么从第一状态转移到第二状态的转移概率是y/(x*t1))。可以通过以下方式来计算初始分布概率:确定出一状态充当(一个或多个)页面的进入点的次数,并且然后对概率进行归一化以便得到为1的总和。当新的观察量变得可用时,可以更新马尔可夫链模型。可以实时地、定期地、按需地或者当进行了门限数目的观察时发生更新。
在一个实施例中,建模模块113能够标识出结构上类似的Web页面以便共享单个模型。建模模块113可以将用户的行为预测为:用户访问新的Web页面而不是返回旧的或先前的页面。在一个实施例中,通过确定当前Web页面是否具有与先前查看的Web页面类似的通用资源定位符(URL),建模模块113捕获了查看新Web页面的用户的行为。经常以分层方式来组织URL,因而两个URL共享的前缀(例如,[rootwebsite]/date/news/world/index.html和[rootwebsite]/date/news/finance/index.html)越长,则它们生成自类似的模板的可能性越大。可以设置规则来定义和确定两个URL类似的程度。在另一实施例中,通过确定Web页面是否具有与先前建模的Web页面类似的DOM结构,建模模块113确定出查看新Web页面的用户的行为。为了确定两个Web页面在结构上类似,比较每个Web页面的DOM。在一个实施例中,树编辑距离(Tree Edit Distance)方法被用于比较DOM。在一个实施例中,如果两个DOM之间的距离不在所定义的门限之内,则两个Web页面可具有不同的模型。另外,可以比较DOM来确定Web页面是否已经改变了其DOM模板。如果DOM明显已经改变,则可以丢弃旧的模型并且可以确定新的模型。在另一实施例中,URL和DOM结构比较的组合被用作两个步骤过程。在该实施例中,通过URL类似性来过滤新Web页面的URL,并且然后比较具有类似的根URL的新Web页面与旧Web页面之间的DOM结构。
根据一个实施例,辅助模块115基于用户的浏览行为来向用户提供浏览和导航辅助。当用户访问Web页面时利用该方法,并且(在移动设备上的客户机侧浏览器中,或者在服务器上的服务器侧浏览器中)找到匹配模型。在一个实施例中,提供了对于用户很可能访问的Web页面的各个部分的快捷方式。在一个实施例中,根据用户过去对类似Web页面的浏览行为来预测所述各个部分。在另一实施例中,将用户自动带到Web页面的预测部分。
如图1所示,系统100包括UE 101,UE 101经由通信网络105连接到浏览器平台103和内容平台109。举例来说,系统100的通信网络105包括诸如数据网络(未示出)、无线网络(未示出)、电话网络(未示出)或其任何组合的一个或多个网络。可以设想到,数据网络可以是任何局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网络(例如,因特网)或任何其它合适的分组交换网络,诸如商业上拥有的专有分组交换网络,例如,专有线缆或光纤网络。另外,无线网络可以是例如蜂窝网络,并且可以采用各种技术,包括增强型全球演进数据率(EDGE)、通用分组无线电服务(GPRS)、全球移动通信系统(GSM)、因特网协议多媒体子系统(IMS)、通用移动电信系统(UMTS)等以及任何其它合适的无线介质,例如,微波接入(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、卫星、移动ad-hoc(特定的)网络(MANET)等
UE 101是任何类型的移动终端、固定终端或便携式终端,包括移动手机、站台、单元、设备、多媒体板、因特网节点、通信器、桌上型计算机、膝上型计算机、个人数字助理(PDA)、音频/视频播放器、数字相机/录像机、定位设备、电子书设备、电视或其任何组合。还可以设想到,UE 101可以支持任何类型的用户接口(诸如“可佩带的”电路等)。
举例来说,UE 101、浏览器平台103和内容平台109彼此通信,并且与使用公知、新的或仍在开发中的协议的通信网络105的其它组件进行通信。在该上下文中,协议包括定义了在通信网络105内的网络节点如何基于在通信链路上发送的信息来彼此交互的规则集合。协议在每个节点内不同的操作层处有效,从生成和接收各种类型的物理信号到选择用于传输那些信号的链路、到由那些信号所指示的信息的格式、到标识出在计算机系统上执行的哪个软件应用发送或接收该信息。在开放系统互联(OSI)参考模型中描述了用于在网络上交换信息的在概念上不同的协议层。
通常通过交换离散数据分组来实现在网络节点之间的通信。每个分组通常包括:(1)与特定协议相关联的头部信息;以及(2)在头部信息后面并且含有可独立于该特定协议来进行处理的信息的有效载荷信息。在一些协议中,分组包括:(3)在有效载荷后面并且指示有效载荷信息的结束的尾部信息。头部包括诸如分组的源、其目的地、有效载荷的长度以及协议所使用的其它属性的信息。经常,在用于特定协议的有效载荷中的数据包括用于与OSI参考模型的一个不同的更高层相关联的不同协议的头部和有效载荷。用于特定协议的头部通常指示了在其有效载荷中所含的下一个协议的类型。较高层协议按说被封装在较低层协议中。在遍历多个异构网络(诸如因特网)的分组中包括的头部通常包括:物理(层1)头部、数据链路(层2)头部、网络间(层3)头部和传输(层3)头部,以及如由OSI参考模型定义的各种应用头部(层5、层6和层7)。
图2是根据一个实施例的用户设备101的组件的示图。举例来说,UE101包括用于提供Web页面行为数据收集、建模和辅助的一个或多个组件。可以设想,这些组件的功能可被组合在一个或多个组件中,或者由具有等效功能性的其它组件来实现。在该实施例中,UE 101包括功率模块201、浏览器接口模块203、运行时间模块205、存储器模块207、用户接口209、观察模块111a、建模模块113a和辅助模块115a。
功率模块201向UE 101提供动力。功率模块201可以包括任何类型的电源(例如,电池、插件等)。另外,功率模块可以向UE 101的组件(包括处理器、存储器和发射机)提供动力。
在一个实施例中,UE 101包括浏览器接口模块203。浏览器接口模块203由运行时间模块205用来与浏览器平台103或内容平台109进行通信。在一些实施例中,浏览器平台103用于呈递正由UE 101上的浏览器所浏览的Web内容。在其它实施例中,UE 101经由与具有浏览内容数据的内容平台109的连接来呈递Web内容。
在一个实施例中,UE 101包括用户接口209。用户接口209可以包括各种通信方法。例如,用户接口209可以具有输出端,包括视觉组件(例如,屏幕)、音频组件、物理组件(例如,振动)和其它通信方法。用户输入端可以包括触摸屏接口、滚动和点击接口、按钮接口等。一些较低端的UE可以仅具有按钮接口,而中端到较高端的UE可以具有触摸屏接口或多个输入的组合。用户可以经由用户接口209输入对于上传或接收对象信息的请求。在一个实施例中,用户接口209显示Web浏览器。在该实施例中,运行时间模块205从用户输入接收请求,并且将该请求存储在存储器模块207中。在一个实施例中,该请求针对的是浏览Web页面。观察模块111收集关于UE 101的浏览行为的信息,并且将该信息存储在存储器模块207中。然后,建模模块113基于该信息来生成模型。然后,用户接口209利用辅助模块115向用户显示快捷方式。
图3是根据一个实施例的用于对用户的浏览和/或浏览行为进行建模的过程的流程图。在一个实施例中,UE 101或浏览器平台103实施过程300并且在例如如图6所示的包括处理器和存储器的芯片集中实现。在一个实施例中,UE 101的用户开始使用UE 101来导航Web页面。在步骤301中,UE 101收集与导航行为相对应的数据,所述导航行为涉及对浏览器应用107的页面进行导航。该数据可以包括与正在显示的页面的布局相对应的页面结构数据(例如,DOM树)。在一个实施例中,页面结构可以涉及超文本标记语言(HTML)或可扩展超文本标记语言(XHTML)Web页面。该数据还可以包括页面查看区域数据,所述页面查看区域数据将用户接口上所显示的浏览器的区域与页面结构数据进行相关。在一个实施例中,这是通过以下方式来实现的:基于特定规则,将UE 101的查看区域与DOM子树进行相关。该数据还可以包括计时数据,所述计时数据与在导航页面期间何时显示该页面内的区域相对应。在一个实施例中,计时数据还可以包括:在导航页面期间显示该页面的该区域的时间长度的持续时间。在另一实施例中,该数据包括:浏览器的缩放信息或者浏览器的查看区域的字体大小。
在步骤303中,UE 101启动将数据存储在UE 101的存储器中。在另一实施例中,浏览器平台103启动将数据存储在浏览器平台103的存储器中。存储器可以是易失性的(例如,随机访问存储器)和非易失性的(例如,闪速存储器、硬驱动器等)。
在步骤305,基于所收集的数据来生成预测模型。在一个实施例中,预测模型利用了马尔可夫链。可以设想到可使用其它预测模型。所述预测可以基于:根据与正在导航的区域的查看时间相关联的计时数据所计算出的概率。在一些实施例中,连续地、定期地或者当收集了预定门限量的数据时更新该模型。在一个实施例中,预定门限量的数据可以是当收集了特定容量的信息时。在另一实施例中,预定门限量的数据可以基于完整的查看会话或者对树对象完成的查看。
在步骤307,UE 101接收对于预测另一页面或该页面的一区域的请求。然后,UE 101确定所述另一页面是否可以使用所创建的预测模型。如果另一页面的页面结构类似于用于创建该预测模型的一个或多个页面的页面结构,则预测模型可以用于所述另一页面。在一个实施例中,可以基于URL前缀类似性来做出判定,以便确定要使用哪个预测模型。两个Web页面共享的前缀越长,则使用类似模板来创建所述Web页面的可能性越大。在另一实施例中,如果Web页面具有类似的树结构,则这两个Web页面在结构上类似。在一个实施例中,可以通过使用树编辑距离来比较两个Web页面的树结构。如果两个页面类似得达到了特定的类似度门限,则可以使用相同的模型来进行预测。一旦选择了用于预测的模型,则在步骤309,执行该模型以便基于用户的历史导航使用来预测该用户想要查看的区域。
在步骤311,UE 101或浏览器平台103启动对预测区域的呈现。在一个实施例中,浏览器平台103基于预测模型来创建呈现,并且启动在网络上将该呈现传送给UE 101。在另一实施例中,在UE 101上创建呈现,并且UE 101启动向用户的呈现。在一个实施例中,当用户第一次转向该页面时,向用户显示该Web页面的预测区域。在另一实施例中,向用户显示快捷方式的集合,其显示了要从中进行选择的预测区域。如果用户确定错误的预测模型被用于创建呈现,则用户可以输入对基于不同的数据和/或预测方法来重新计算预测模型的请求。
利用以上方法,用户可以使用具有受限查看区域或笨拙、低效的浏览导航控制的浏览器来更容易地对内容进行导航。以这种方式,设备收集关于用户的导航习惯的数据以便预测该用户想要看什么。然后,设备启动对预测区域的呈现。这可以通过减少得到期望内容所花费的时间量来节省设备的电池寿命。所减少的导航花费时间转变成例如由移动设备的导航控制、屏幕和/或无线电电路所消耗的较少的电力。
图4A和图4C-4E是根据各种实施例的在图3的过程中所利用的用户接口的示图。图4A显示了Web页面400的示例性用户接口查看区域401、403、405和407,诸如UI 101的屏幕区域。举例来说,Web页面表示财经新闻站点。在该实施例中,用户开始在市场总结区域401处查看Web页面,移动到新闻区域403,当稳定在股票市场图表区域405处之前扫视通过过渡区域409,并且然后在给出关于用户近来所查找的股票的信息的用户总结区域407处结束该查看。观察模块111检测这些移动(例如,光标控制信息等)并且收集每个查看区域401、403、405、407的计时信息(例如,开始时间、停止信息、持续时间等)。在一个实施例中,如果用户在过渡区域409内没有保持超过预定的持续时间(即,用户留在该过渡区域处没有达到足够的时间段),则可以不为该过渡区域409保存计时信息。
图4B示出了根据一个实施例的用于对用户的浏览行为进行建模的状态图420。状态图420可用于生成马尔可夫链模型,以便预测用户想要查看的Web页面的区域。如前所述,可以使用其它状态预测模型。在该例中,状态是图4A的查看区域401、403、405、407。退出状态421也被定义以便表示当用户离开生成该模型的页面时的情况。一旦定义了状态,则可以根据计时数据来计算转移概率(例如,p11、p12)和初始状态概率(例如,q1)。在一个实施例中,如果在一个状态(例如,状态401)中花费的平均时间是t1,其中t1大于或等于1,那么p11(状态没有改变的概率)等于(t1-1)/t1。在另一实施例中,如果状态401总共出现了x次,其中有y次转移到状态403,那么转移概率p12是y/(x*t1)。可以通过确定出状态充当页面的进入点的次数来计算初始分布概率(例如,q1);该次数然后被归一化。在一个实施例中,当新的观察量变得可用时,更新该模型。替代地,可以实时地、定期地或者当收集了足够数目的新观察量时更新该模型。
图4C是根据一个实施例的在图3的过程中利用的用户接口的示图。
在该实施例中,用户接口440显示与所生成的行为模型有关的Web页面441。在一个实施例中,Web页面441共享与用于创建该模型的一个Web页面或一组Web页面类似的Web页面结构。用户接口440在Web页面441之上将具有覆层快捷方式(overlay shortcuts)的Web页面441的缩影视图显示为矩形框。图4D是在用户接口460上呈现了快捷方式而没有Web页面441的缩影视图的用户接口460的示图。通过按压(或以其它方式选择)与框443、445、447、461、463、465相关联的数字键,用户能够放大这些框之一或者在框之间切换。这种导航技术对没有提供方便的导航能力的用户接口可能是有益的。注意到,其它功能也是可用的,例如,引导返回快捷方式显示的功能,或者离开快捷方式页面并返回到无帮助浏览的功能。在一种情形下,Web页面441并不具有模型Web页面的所有特征。如此,Web页面441并不示出关于该查看区域或状态(例如,图表)的快捷方式。图4E是根据一个实施例的显示了所选择的快捷方式的用户接口480的示图。在该例中,用户可以通过选择数字键来选择其它快捷方式,通过选择下一个或前一个按钮来浏览快捷方式,或者以正常浏览方式来扫视通过屏幕。
根据以上方法,用户可以在设备的辅助下来浏览Web页面。以这种方式,用户的导航习惯被用于预测用户想要看什么。然后,设备启动对要查看的预测区域的呈现。这可以通过限制用户费力查看用户并不想查看的Web页面部分的时间量来节省移动设备上的电池寿命。
在此描述的用于提供浏览行为数据收集、浏览行为建模和浏览辅助的过程可以经由软件、硬件(例如,通用处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)、固件或其组合来有利地实现。下面详述了用于实现所描述的功能的这样的示例性硬件。
图5图示了可在其上实现本发明实施例的计算机系统500。计算机系统500被编程(例如,经由计算机程序代码或指令)以便提供如在此描述的浏览行为数据收集、浏览行为建模和浏览辅助,并且其包括通信机制,诸如用于在计算机系统500的其它内部和外部组件之间传递信息的总线510。信息(也称为数据)被表示为可测量现象的物理表示,通常是电压,但在其它实施例中包括诸如磁、电磁、压力、化学、生物、分子、原子、亚原子和量子交互的现象。例如,北磁场和南磁场或者零电压和非零电压,表示二进制数位(比特)的两个状态(0、1)。其它现象可以表示更高基底的数位。在测量之前叠加多个同时的量子状态表示量子比特(qubit)。一个或多个数位的序列构成了用于表示字符的代码或数目的数字数据。在一些实施例中,通过在特定范围内的可测量值的近连续体来表示称为模拟数据的信息。
总线510包括信息的一个或多个平行导体,从而使得在耦合到总线510的设备之间快速地传输信息。用于处理信息的一个或多个处理器502被耦合到总线510。
处理器502按照与提供浏览行为数据收集、浏览行为建模和浏览辅助有关的计算机程序代码所指定的那样对信息执行操作集合。计算机程序代码是为处理器和/或计算机系统的操作提供指令用于实现指定功能的指令或语句的集合。例如可以用被编译成处理器的原生指令集的计算机编程语言来编写代码。也可以直接使用原生指令集(例如,机器语言)来编写代码。操作的集合包括从总线510带来信息以及将信息放置在总线510上。操作的集合通常也包括:诸如通过相加或相乘或逻辑运算(比如“OR(或)”、“异或(XOR)”和“AND(与)”)来比较两个或更多信息单元、对信息单元进行移位,以及组合两个或更多信息单元。通过被称为指令的信息(诸如一个或多个数位的操作代码)来将可由处理器执行的操作集合中的每个操作表示给处理器。要由处理器502执行的操作序列(诸如操作代码序列)构成了处理器指令,也被称为计算机系统指令,或者简称为计算机指令。除了其它之外,处理器可以单独或组合地被实现为机械、电子、磁、光、化学或量子组件。
计算机系统500还包括耦合到总线510的存储器504。诸如随机访问存储器(RAM)或其它动态存储设备的存储器504存储了信息,包括用于提供浏览行为数据收集、浏览行为建模和浏览辅助的处理器指令。动态存储器允许计算机系统500改变存储在其中的信息。RAM允许独立于在相邻地址处的信息来存储和检索在被称为存储器地址的位置处存储的信息单元。存储器504也由处理器502用来存储在处理器指令的执行期间的临时值。计算机系统500还包括只读存储器(ROM)506或耦合到总线510的用于存储不被计算机系统500改变的静态信息(包括指令)的其它静态存储设备。某个存储器包括易失性储存器,当掉电时,易失性储存器就失去存储在其上的信息。还耦合到总线510的是用于存储包括指令在内的信息的非易失性(持久)存储设备508,诸如磁盘、光盘或闪卡,所述信息即使当计算机系统500断开或以其它方式掉电时也会留存。
将信息(包括用于提供浏览行为数据收集、浏览行为建模和浏览辅助的指令)从外部输入设备512(诸如含有由人类用户操作的字母数字键的键盘,或者传感器)提供给总线510用于由处理器来使用。传感器检测其附近的状况,并且将那些检测量转换成可与用于表示计算机系统500中的信息的可测量现象相容的物理表达。耦合到总线510的主要用于与人类交互的其它外部设备包括:显示设备514,诸如阴极射线管(CRT)或液晶显示器(LCD),或者用于呈现文本或图像的等离子屏幕或打印机;以及指点设备516,诸如鼠标或轨迹球或光标方向键,或者运动传感器,用于控制在显示器514上呈现的小光标图像的位置以及发布与在显示器514上呈现的图形元素相关联的命令。在一些实施例中,例如,在计算机系统500自动实现所有功能而没有人类输入的实施例中,省略了外部输入设备512、显示设备514和指点设备516中的一个或多个设备。
在所说明的实施例中,诸如专用集成电路(ASIC)520这样的专用硬件被耦合到总线510。该专用硬件被配置以便出于特殊目的而足够快地实施处理器502不实施的操作。专用IC的例子包括:用于为显示器514生成图像的图形加速器卡、用于加密和解密在网络上发送的消息的密码板、语音识别,以及对于特殊外部设备的接口,诸如重复地实施以硬件来更有效地实现的一些复杂操作序列的机器臂和机械扫描设备。
计算机系统500还包括耦合到总线510的通信接口570的一个或多个实例。通信接口570提供了耦合到与其自己的处理器一起操作的各种外部设备(诸如打印机、扫描仪和外部盘)的单向或双向通信。通常,耦合针对的是连接到本地网络580的网络链路578,具有其自己的处理器的各种外部设备连接到该本地网络580。例如,通信接口570可以是个人计算机上的并行端口或串行端口或通用串行总线(USB)。在一些实施例中,通信接口570是综合服务数字网络(ISDN)卡或数字订户线路(DSL)卡,或者提供了与对应类型的电话线路的信息通信连接的电话调制解调器。在一些实施例中,通信接口570是将总线510上的信号转变成用于在同轴线缆上的通信连接的信号或转变成用于在光纤线缆上的通信连接的光信号的线缆调制解调器。作为另一个例子,通信接口570可以是局域网(LAN)卡,用于将数据通信连接提供给诸如以太网这样的可兼容LAN。还可以实现无线链路。对于无线链路来说,通信接口570发送或接收或者既发送又接收电、声或电磁信号,包括携带了信息流(诸如数字数据)的红外和光信号。例如,在无线手持设备(诸如像蜂窝电话这样的移动电话)中,通信接口570包括被称为无线电收发器的无线电频带电磁发射机和接收机。在某些实施例中,通信接口570使得能够连接到通信网络105,用于向UE101提供浏览行为数据收集、浏览行为建模和浏览辅助。
在此使用术语“计算机可读介质”来指代参与向处理器502提供信息(包括用于执行的指令)的任何介质。这样的介质可以采用很多形式,包括但不限于:非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,诸如存储设备508。易失性介质包括例如动态存储器504。传输介质包括例如同轴线缆、铜线、光纤线缆,以及在没有导线或线缆的情况下穿过空间的载波,诸如声波和电磁波,包括无线电波、光波和红外波。信号包括通过传输介质传送的在幅度、频率、相位、极化或其它物理属性上的人工瞬时变化。计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、CDRW、DVD、任何其它光介质、穿孔卡、纸带、光标记片、具有孔图案或其它光可识别标记的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或磁带盒、载波,或者计算机可以从其进行读取的任何其它介质。在此使用术语“计算机可读存储介质”来指代除了传输介质之外的任何计算机可读介质。
在一个或多个有形介质中编码的逻辑包括:在计算机可读存储介质上的处理器指令和专用硬件(诸如ASIC 520)中的一个或这二者。
网络链路578通常使用传输介质通过一个或多个网络向使用或处理信息的其它设备提供信息通信。例如,网络链路578可以通过局域网580向主机计算机582或由因特网服务提供商(ISP)操作的设备584提供连接。ISP设备584进而通过现在常被称为因特网590的网络中的公共全球分组交换通信网络来提供数据通信服务。连接到因特网的被称为服务器主机592的计算机托管了响应于在因特网上接收到的信息而提供服务的过程。例如,服务器主机592托管了提供表示用于在显示器514处呈现的视频数据的信息的过程。
本发明的至少一些实施例涉及用于实现在此描述的一些或所有技术的对计算机系统500的使用。根据本发明的一个实施例,响应于处理器502执行在存储器504中所含的一个或多个处理器指令的一个或多个序列,由计算机系统500来实施那些技术。这样的指令(也被称为计算机指令、软件和程序代码)可以从另一计算机可读介质(诸如存储设备508或网络链路578)读入到存储器504中。对存储器504中所含的指令序列的执行使得处理器502实施在此描述的一个或多个方法步骤。在替代实施例中,可以取代软件或与其相组合地使用诸如ASIC 520这样的硬件来实现本发明。因而,本发明的实施例不限于硬件和软件的任何具体组合,除非在此另外明确声明。
通过通信接口570在网络链路578和其它网络上传送的信号携带了去往和来自计算机系统500的信息。计算机系统500可以尤其通过网络580、590、通过网络链路578和通信接口570来发送和接收信息(包括程序代码)。在使用因特网590的例子中,通过因特网590、ISP设备584、本地网络580和通信接口570,服务器主机592传送由从计算机500发送的消息所请求的用于特定应用的程序代码。所接收到的代码可以在其被接收到时由处理器502来执行,或者可以被存储在存储器504中或存储设备508或其它非易失性储存器中以便稍后执行,或者两种情况兼备。以这种方式,计算机系统500可以获得按照载波上的信号形式的应用程序代码。
在将数据或指令的一个或多个序列或这二者携带到处理器502用于执行,这可以涉及各种形式的计算机可读介质。例如,可以初始地在诸如主机582的远程计算机的磁盘上携带指令和数据。远程计算机将指令和数据加载到其动态存储器中,并且使用调制解调器在电话线路上发送指令和数据。计算机系统500本地的调制解调器在电话线路上接收指令和数据,并且使用红外发射机将指令和数据转换成充当网络链路578的红外载波上的信号。充当通信接口570的红外检测器接收在红外信号中携带的指令和数据,并且将表示该指令和数据的信息放置到总线510上。总线510将该信息携带到存储器504,处理器502使用与指令一起发送的数据中的一些数据来从存储器504中检索指令并执行指令。可选地,在存储器504中接收到的指令和数据可以在处理器502执行之前或之后被存储在存储设备508上。
图6图示了可在其上实现本发明实施例的芯片集600。芯片集600被编程以便提供如在此描述的浏览行为数据收集、浏览行为建模和浏览辅助,并且其包括例如相对于图5所描述的合并在一个或多个物理封装(例如,芯片)中的处理器和存储器组件。举例来说,物理封装包括在结构配件(例如,基板)上的一个或多个材料、组件和/或导线的布置,以便提供诸如物理强度、大小的保持和/或电子交互的限制的一个或多个特性。可以设想,在某些实施例中,芯片集可以被实现在单个芯片中。
在一个实施例中,芯片集600包括诸如总线601的通信机制,用于在芯片集600的组件之间传递信息。处理器603具有与总线601的连接,以便执行指令和处理在例如存储器605中存储的信息。处理器603可以包括一个或多个处理核心,并且每个核心被配置成独立地实施。多核处理器使得能够在单个物理封装中进行多处理。多核处理器的例子包括两个、四个、八个或更多数目的处理核心。替代地或附加地,处理器603可以包括经由总线601协力配置的一个或多个微处理器,以便使得能够独立地执行指令、流水线处理和多线程。处理器603也可以附有用于实现某些处理功能和任务的一个或多个专用组件,诸如一个或多个数字信号处理器(DSP)607或者一个或多个专用集成电路(ASIC)609。DSP 607通常被配置成独立于处理器603来实时地处理真实信号(例如,声音)。类似地,ASIC 609可以被配置成实现通用处理器不容易实现的专用功能。用于帮助实现在此所描述的发明功能的其它专用组件包括一个或多个现场可编程门阵列(FPGA)(未示出)、一个或多个控制器(未示出),或者一个或多个其它专用计算机芯片。
处理器603和所附组件经由总线601连接到存储器605。存储器605包括动态存储器(例如,RAM、磁盘、可写光盘等)和静态存储器(例如,ROM、CD-ROM等)这两者,用于存储当被执行时用于实现针对浏览行为数据收集、浏览行为建模和浏览辅助而在此描述的发明步骤的可执行指令。存储器605还存储与本发明步骤的执行相关联的数据或通过本发明步骤的执行所生成的数据。
图7是根据一个实施例的能够在图1的系统中操作的移动台(例如,手机)的示例性组件的示图。通常,经常就前端和后端特性而言来定义无线电接收机。接收机的前端包括所有的射频(RF)电路,而后端包括所有的基带处理电路。如在本申请中所使用的,术语“电路”指的是以下两者:(1)仅硬件实现(诸如仅在模拟和/或数字电路中的实现);以及(2)电路和软件(和/或固件)的组合(诸如一起工作从而使得诸如移动电话或服务器这样的装置实现各种功能的处理器的组合,包括数字信号处理器、软件和存储器)。“电路”的该定义应用到在本申请中(包括在任何权利要求中)对该术语的所有使用。作为进一步的例子,如在本申请中所使用的,术语“电路”还将覆盖仅一个处理器(或多个处理器)及其所附软件和/或固件的实现。术语“电路”还将覆盖例如在移动电话中的基带集成电路或应用处理器集成电路,或者在蜂窝网络设备或其它网络设备中的类似集成电路。
电话的相关内部组件包括主控制单元(MCU)703、数字信号处理器(DSP)705,以及接收机/发射机单元(包括扩音器增益控制单元和扬声器增益控制单元)。主显示单元707向用户提供显示器以便支持提供了自动联系人匹配的各种应用和移动台功能。音频功能电路709包括扩音器711和放大了从扩音器711输出的语音信号的扩音器放大器。从扩音器711输出的经放大的语音信号被馈送到编码器/解码器(CODEC)713。
无线电部件715放大功率并转换频率,以便经由天线717与在移动通信系统中包括的基站进行通信。如本领域已知的,利用来自耦合到双工器721或循环器或天线开关的PA 719的输出,功率放大器(PA)719和发射机/调制电路可在操作上对MCU 703做出响应。PA 719还耦合到电池接口和功率控制单元720。
在使用中,移动台701的用户对扩音器711讲话,并且他或她的声音连同任何所检测到的背景噪声被转换成模拟电压。然后,该模拟电压通过模数转换器(ADC)723被转换成数字信号。控制单元703将该数字信号路由到DSP 705中用于在其中进行处理,诸如语音编码、信道编码、加密和交织。在一个实施例中,使用蜂窝传输协议(诸如全球演进(EDGE)、通用分组无线电服务(GPRS)、全球移动通信系统(GSM)、因特网协议多媒体子系统(IMS)、通用移动电信系统(UMTS)等)以及任何其它合适的无线介质(例如微波接入(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、卫星等),由未单独示出的单元来编码经处理的语音信号。
然后,已编码的信号被路由到均衡器725,用于补偿在通过空中传输期间发生的诸如相位和幅度失真这样的任何频率相关的损伤。在均衡了比特流之后,调制器727将该信号与在RF接口729中生成的RF信号进行组合。调制器727通过频率或相位调制来生成正弦波。为了使信号准备好传输,上变频器731将从调制器727输出的正弦波与由合成器733生成的另一正弦波进行组合以便实现所期望频率的传输。然后,该信号通过PA719被发送以便将该信号增加到适当的功率级别。在实际系统中,PA 719充当可变增益放大器,其增益由DSP 705根据从网络基站接收到的信号来进行控制。然后,所述信号在双工器721内被过滤,并且可选地被发送到天线耦合器735以便匹配阻抗用于提供最大功率传输。最后,所述信号经由天线717被传送到本地基站。可以提供自动增益控制(AGC)来控制接收机的最后阶段的增益。所述信号可以从那里转发到远程电话,其可以是另一蜂窝电话、其它移动电话或连接到公共交换电话网络(PSTN)或其它电话网络的陆上线路。
传送到移动台701的语音信号经由天线717被接收并且立即由低噪声放大器(LNA)737来放大。下变频器739降低载波频率,而解调器741去除RF,仅留下数字比特流。然后,所述信号经过均衡器725并且由DSP705进行处理。数模转换器(DAC)743转换所述信号并且将所得到的输出通过扬声器745传送给用户,所有这些都在主控制单元(MCU)703的控制之下,MCU 703可被实现为中央处理单元(CPU)(未示出)。
MCU 703从键盘747接收各种信号,包括输入信号。与其它用户输入组件(例如,扩音器711)相组合的键盘747和/或MCU 703包括用于管理用户输入的用户接口电路。MCU 703运行用户接口软件以便促进用户控制移动台701的至少一些功能,从而提供浏览行为数据收集、浏览行为建模和浏览辅助。MCU 703还分别将显示命令和切换命令递送到显示器707和语音输出切换控制器。此外,MCU 703与DSP 705交换信息并且可以接入可选地而被合并的SIM卡749和存储器751。另外,MCU 703执行所述站台要求的各种控制功能。DSP 705可以根据实现方式来对语音信号实施各种常规数字处理功能中的任何功能。另外,DSP 705根据由扩音器711所检测到的信号来确定本地环境的背景噪声级别,并且将扩音器711的增益设置成被选择用于补偿移动台701的用户的自然倾向的级别。
CODEC 713包括ADC 723和DAC 743。存储器751存储各种数据(包括来电音数据),并且能够存储其它数据(包括经由例如全球因特网而接收到的音乐数据)。软件模块可以驻留在RAM存储器、闪速存储器、寄存器或本领域已知的任何其它形式的可写存储介质中。存储器设备751可以是但不限于:单个存储器、CD、DVD、ROM、RAM、EEPROM、光储存器,或者能够存储数字数据的任何其它非易失性存储介质。
可选地而被合并的SIM卡749携带了例如重要信息,诸如蜂窝电话号码、供应服务的载波、预订细节和安全信息。SIM卡749主要用于标识无线电网络上的移动台701。卡749还含有用于存储个人电话号码记录薄、文本消息和特定于用户的移动台设置的存储器。
尽管已经结合多个实施例和实现方式描述了本发明,但是本发明不受限于此,而是覆盖了落入所附权利要求的范围内的各种明显的修改和等同布置。虽然在权利要求当中以特定组合表达了本发明的特征,但是可以设想到可按照任何组合和顺序来布置这些特征。