使用神经网络的验证模型的制作方法

文档序号:20787843发布日期:2020-05-19 21:53阅读:199来源:国知局
使用神经网络的验证模型的制作方法

相关申请的交叉引用

本申请要求于2018年7月24日提交的美国专利申请序列号16/043,752的优先权的权益,其要求于2017年8月4日提交的美国临时专利申请序列号62/541,132的优先权的权益,这些专利申请都通过引用整体并入本文。



背景技术:

收入验证是在给定诸如人的姓名、位置、职称和雇主之类的基本身份信息的情况下证实该人的申报收入的问题。其被广泛用于抵押贷款、租赁申请和其他金融风险模型的上下文中。然而,当前围绕验证的过程涉及大量的人力和文档收集,这既耗时又昂贵。

附图说明

附图中的各个附图仅图示了本公开的示例实施例,并且不应被认为是对其范围的限制。

图1是图示了根据一些示例实施例的联网系统的框图。

图2是图示了根据一些示例实施例的一个示例收入验证系统的框图。

图3是图示了根据一些示例实施例的另一示例收入验证系统的框图。

图4是图示了根据一些示例实施例的又一示例收入验证系统的框图。

图5是图示了根据一些示例实施例的用于生成收入预测的方法的各方面的流程图。

图6是图示了根据一些示例实施例的可以被安装在机器上的软件架构的示例的框图。

图7图示了根据示例实施例的以计算机系统的形式的机器的图解表示,在该机器中,指令集可以被执行以使机器执行本文所讨论的方法中的任何一个或多个方法。

具体实施方式

本文描述的示例系统和方法涉及利用深度神经网络的收入验证。如上面以示例方式所解释的那样,收入验证包括在诸如姓名、位置、职称和雇主之类的基本身份信息的情况下证实人的申报收入的挑战。其被广泛用于抵押贷款、租赁申请和其他金融风险模型的上下文中。然而,当前围绕验证的过程涉及大量的人力和文档收集,这既耗时又昂贵。

此外,收集和传播收入信息的在线资源已经越来越多(例如,payscale、glassdoor等)。该推动的主要原因在于私有和公共机构都需要支付透明度和问责制。在一些情况下,诸如政府来源,薪水和奖金数据的估计是可用的。其他来源从愿意报告这种信息的个体收集薪酬细节,并仅公开针对个体收入组成部分的匿名范围。示例实施例包括利用这样的资源来改进收入验证的系统。

示例实施例描述了一种新颖的模型,该模型用于在贷款申请中通常可用的非常有限的身份信息的情况下验证个体的收入。该模型是深度神经网络和手工设计特征的组合。手工设计特征是基于将输入信息与从各种可公开获得的在线资源(例如h-1b文件、政府雇员薪水等)自动提取的收入记录进行匹配。实验是在两个数据集上进行的,一个数据集是从h-1b记录模拟的,而另一数据集来自从世界上最大的p2p贷款平台获得的对等(p2p)贷款申请的真实数据集。实验结果表明,相对于若干强基线,错误显著降低了3-6%。还执行了消融研究,以证明组合的模型可以被用来实现此任务的最新性能。

本文描述的实施例所解决的一个技术问题是收入验证的问题。例如,给定一个人的基本身份(例如,姓名、出生日期)、当前的就业信息(职称、公司、位置)和申报收入,示例实施例可以在某阈值内准确地证实该给定个体的收入。在一个实施例中,收入被定义为一年中诸如底薪和奖金的收益之和。在一个实施例中,不包括租金、股票奖励、利息支付、股息支付和其他形式的收入。然而,应当理解,其他形式的收入可以被包括在其他实施例中。此外,使用贷款申请的示例来描述示例实施例。应当理解,示例实施例可以在其他用例场景中被用于收入验证。

收入验证的最重要的用例之一是在贷款申请期间区分信誉良好的用户和欺诈性的用户。若干近来的发薪日贷款和对等贷款公司提供即时的预批准贷款,其由可以准确评估申请所涉及的风险的幕后模型提供支持。个体的被证实的收入是这些风险模型的重要特征。银行和贷款机构需要以成本有效和时间高效的方式进行这些检查。

收入验证系统的主要组成部分是来自给定输入身份的收入预测。示例实施例利用互联网(例如web)上公共可用的数据源的能力来解决预测问题。术语“互联网”、“web”和“公共web”在本文中可互换使用。使用公共资源和公共web面临许多技术挑战。

一个挑战是如何从web文档和数据库记录的结构化的和非结构化的源中搜索、提取和匹配数据。示例实施例构建查询以获取web文档和数据库记录的候选集,从结构化的和非结构化的源中提取数据,并且过滤这些源,仅剩与输入身份最匹配的那些源。

另一挑战是由用户在web上输入的部分信息。一个示例是公司的缩写和备选名称。例如,“美国邮政服务”可以被表示为“usps”、“u.s.p.s.”等。示例实施例提供了标识这些都是相同实体的方法。

另一技术挑战是web上的错误数据,因为并非web上的所有资源都是准确的。例如,一些web资源歪曲了薪水信息或已过时。

示例实施例描述了解决一些或所有这些问题的稳健系统。首先,在线搜索解决方案使用算法来利用重型搜索引擎披露各个域上的薪水内容。例如,所披露的内容包括若干域,诸如https://transparentcalifornia.com/、https://www.fedsdatacenter.com/usps-pay-rates/等。示例实施例还包括大量这些域的离线爬取和内部数据库的直接搜索。这些域中的每个域都带来了不同的提取挑战。例如,在一些情况下,需要从非结构化文本中提取内容,而在其他情况下,本文所述的系统可以直接使用定制的包装器。

其次,为了解决部分信息的问题(无论是在输入中还是在web上),示例实施例“扩展”了身份的范围。例如,示例实施例可以从公司推断出行业,并且可以从职称和可能存在的出生日期推断出经验等级,并且然后将搜索广义化到给定的职位和行业。

最后,为了解决web上可能不正确的信息的问题,示例实施例包括构建一种模型,该模型聚集跨若干域的薪水范围,并且然后通过考虑(a)发生频率、(b)来源可信度、和(c)输入与每个来源之间的身份匹配强度来计算一个统一的范围。

本文描述的实施例可以被用于各种各样的应用中。在一个示例中,示例实施例可以在在线市场中被使用。图1是图示了根据一些示例实施例的联网系统100的框图。系统100包括一个或多个客户端设备,诸如客户端设备110。客户端设备110可以包括但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(pda)、智能电话、平板电脑、超级本、上网本、笔记本电脑、多处理器系统、基于微处理器的或可编程的消费电子系统、游戏机、机顶盒、车辆中的计算机、或用户可以利用来访问联网系统100的任何其他通信设备。在一些实施例中,客户端设备110包括显示模块(未示出)以显示信息(例如,以用户界面的形式)。在进一步的实施例中,客户端设备110包括触摸屏、加速度计、陀螺仪、相机、麦克风、全球定位系统(gps)设备等中的一个或多个。客户端设备110可以是被用来请求和接收预订信息、住宿信息、贷款信息、收入验证等的用户设备。

一个或多个用户106可以是与客户端设备110进行交互的人、机器或其他装置。在示例实施例中,用户106可以不是系统100的一部分,但是可以经由客户端设备110或其他装置与系统100进行交互。例如,用户106可以向客户端设备110提供输入(例如,语音、触摸屏输入、字母数字输入等),并且该输入可以经由网络104被传送给系统100中的其他实体(例如,第三方服务器130、服务器系统102等)。在这种情况下,响应于从用户106接收到输入,系统100中的其他实体可以经由网络104将信息传送给客户端设备110以将其呈现给用户106。以这种方式,用户106可以使用客户端设备110与系统100中的各个实体进行交互。

系统100进一步包括网络104。网络104的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网的一部分、公共交换电话网(pstn)的一部分、蜂窝电话网络、无线网络、wifi网络、wimax网络、另一种类型的网络、或两个或更多这种网络的组合。

客户端设备110经由web客户端112(例如浏览器,诸如由华盛顿州雷蒙德市的微软公司开发的internet浏览器)来访问系统100中的其他实体提供的各种数据和应用。客户端设备110包括一个或多个客户端应用114(也被称为“app”),诸如但不限于web浏览器、消息收发应用、电子邮件(email)应用、电子商务站点应用、地图或位置应用、预订应用、贷款或财务应用等。

在一些实施例中,一个或多个客户端应用114被包括在给定的客户端设备110中,并且被配置为本地提供用户界面和至少一些功能性,其中客户端应用114被配置为按照需要与系统100中的其他实体(例如,第三方服务器130、服务器系统102等)通信,以用于本地不可用的数据和/或处理能力(例如,以访问预订信息或列表信息、以请求数据、以认证用户106、以验证付款方法、以验证收入等)。相反,一个或多个客户端应用114可以不被包括在客户端设备110中,然后客户端设备110可以使用其web浏览器来访问驻留在系统100中的其他实体(例如,第三方服务器130、服务器系统102等)上的一个或多个应用。

系统100还包括一个或多个第三方服务器130。一个或多个第三方服务器130包括一个或多个第三方应用132。经由通过应用编程接口(api)网关服务器120提供的程序化接口,在(多个)第三方服务器130上执行的一个或多个第三方应用132经由api网关服务器120与服务器系统102进行交互。例如,一个或多个第三方应用132经由api网关服务器120请求并利用来自服务器系统102的信息,以支持由第三方托管的网站或由第三方托管的应用上的一个或多个特征或功能。例如,第三方网站或应用132提供由服务器系统102中的相关功能性和数据所支持的各种功能性。

服务器系统102经由网络104(例如,互联网或广域网(wan))向一个或多个第三方服务器130和/或一个或多个客户端设备110提供服务器侧功能性。根据一些示例实施例,服务器系统102可以是云计算环境。在一个示例实施例中,服务器系统102以及与服务器系统102相关联的任何服务器可以与基于云的应用相关联。

服务器系统102包括与一个或多个数据库126或其他形式的数据存储库通信地耦合的应用编程接口(api)网关服务器120、web服务器122和收入验证系统128。

一个或多个数据库126可以是一个或多个存储设备,其存储与收入验证系统128和其他系统或数据有关的数据。一个或多个数据库126可以进一步存储与第三方服务器130、第三方应用132、客户端设备110、客户端应用114、用户106等有关的信息。一个或多个数据库126可以使用任何合适的数据库管理系统来实现,诸如mysql、postgresql、microsoftsqlserver、oracle、sap、ibmdb2等。在一些实施例中,一个或多个数据库126可以包括基于云的存储装置。

收入验证系统128提供用于收入验证的功能性。图2是图示了根据一些示例实施例的收入验证系统128的一个示例的框图。

在此示例中,收入验证系统128从客户端设备110接收用户输入数据。在其他示例中,收入验证系统128可以经由第三方服务器130或另一计算系统(例如,批量地或单独地)接收用户输入数据。用户数据包括诸如以下的信息:用户姓名、用户职位(例如,数据科学家、教师、工程师)、用户薪水、用户出生日期、雇主名称、雇主地址、用户地址、其他地理信息,诸如此类。例如,用户数据可以包括:

上表中的示例输入数据是可以被输入到系统中的用户数据的一个示例。在其他示例中,用户数据可以包括更少的数据或附加的数据。上述输入的行包括个人可标识的信息(例如,姓名、地址、出生日期)、就业信息(例如,雇主、职位)和个体的申报收入(例如,申报收入)。如上所解释的,示例实施例的目的是验证申报收入是准确的。输入信息存在一些问题。例如,一些信息可能是缺失或不完整的。例如,表中第二行的地址不完整。因此,在一些实施例中,如下面进一步详细描述的,输入数据被规范化。

此外,就业和收入信息可能是有噪声的或不准确的。在一些示例实施例中,假设就业信息是正确的。在实践中,已经观察到非常小的百分比(例如,大约1%)的人提供了不正确的就业细节,但是接近25%的人申报了明显高于其实际可验证收入的收入。

在一个示例实施例中,收入验证系统128不使用诸如社会保障号、电子邮件、电话号码或经验等级之类的敏感信息来验证收入。这种方法被广泛应用,因为其可以被应用在用户不愿透露这种私人信息的场景中。

收入验证系统128从用户数据中确定用户职位,并且职位向量生成器202基于用户数据生成职位嵌入向量。例如,用户职位被输入到经训练的职位向量生成器202中,并且经训练的职位向量生成器从用户职位生成职位嵌入向量。

在一个示例中,使用从包含雇主、职位、位置和收入的大型公共数据集获得的有区别的职位(例如,500,000个有区别的职位)来训练职位嵌入向量,该雇主、职位、位置和收入中的每个都可能是有噪声的/不准确的。在一个示例中,用以生成单词嵌入的方法(例如,word2vec)被用来学习用于该职位中的每个单词的300维向量。给定单词向量,使用递归神经网络(例如,长短期记忆(lstm))为该职位生成向量。然后,调整单词向量和lstm的参数以在大数据集上预测收入。

收入验证系统128从用户数据中确定雇主名称和雇主信息,并且雇主向量生成器204生成雇主嵌入向量。例如,雇主名称和信息被输入到经训练的雇主向量生成器204中,并且经训练的雇主向量生成器从用户职位生成雇主嵌入向量。

在一个示例中,雇主向量是使用从包含雇主、职位、位置和收入的大型公共数据集中获得的有区别的雇主(例如100,000个有区别的雇主)生成的,该雇主、职位、位置和收入中的每个都可能是有噪声的/不准确的。在一个示例中,用以生成单词嵌入的方法(例如,word2vec)被用来学习用于雇主中每个单词的300维向量。给定单词向量,使用递归神经网络(例如,长短期记忆(lstm))为该职位生成向量。然后调整单词向量和lstm的参数以在大数据集上预测收入。

收入验证系统128从用户数据中确定州名称,并且州向量生成器206生成州向量。例如,州名称被输入到经训练的州向量生成器206中,并且经训练的州向量生成器从用户职位生成州嵌入向量。

在一个示例中,州向量是独热向量。例如,收入验证系统128可以具有与美国的州的数目相对应的50个维度,并且在维度中1用于存在的州,0用于所有其他维度。

收入验证系统128将生成的职位向量、雇主向量和州向量输入到经训练的机器学习模型208中以用于对用户的收入预测。在一个示例中,机器学习模型208是前馈神经网络,但是应当理解,在其他示例中,可以使用其他机器学习模型(例如,逻辑回归、支持向量机、随机森林、梯度提升树等)。

在一个示例中,使用公共可用的薪水数据创建用于机器学习模型208的数据集。公共可用的薪水数据的一个示例包括h-1b薪水数据库,其包括来自美国劳工部的数据,诸如针对美国的许多工作的雇主、职称、薪水、位置等。其他数据也可以被用于机器学习模型208的数据集,诸如来自对等借贷公司的薪水数据、来自传统的贷款公司的薪水信息,诸如此类。

在一个示例中,收入验证系统128使用来自公共可用的来源或其他来源的薪水数据来构建用于训练和测试机器学习模型208的数据集。例如,收入验证系统128可以获取csv文件或excel文件,或者以其他方式接收和存储数据。收入验证系统128将数据存储在一个或多个数据库(例如,(多个)数据库126)中。

在一个示例中,通过使用mikolov的skip-gram模型在职称和雇主方面训练机器学习模型208来创建单词嵌入。使用公共可用的职位和申报收入数据(例如,如上所解释的被存储在(多个)数据库126中的h-1b数据)进一步训练职称。在一个示例中,使用长短期记忆(lstm)模块来完成调整。职称和雇主单词嵌入与用户状态的独热编码的向量级联在一起。

在一个示例中,每个嵌入维度为300,而州编码的维度为50。在一个示例中,该650维的向量形成前馈神经网络的输入。在一个示例中,前馈神经网络由大小为200的1个隐藏层组成。损耗度量为平均绝对误差。机器学习模型208不使用web上可用的广泛来源(如下面解释的,如图3中的机器学习模型326所使用的)。

机器学习模型208输出结果收入预测210。例如,从来自特定用户的用户数据(例如,用户姓名、用户职位和雇主信息)并基于来自经验证的来源的数据(例如,公共或私有可用的薪水数据),机器学习模型208可以输出针对用户的收入预测210。收入预测210是指示薪水的正数(例如40,000或150,000),因为机器学习模型208被训练为基于大数据集来预测收入。然后,收入预测210可以被用来验证用户输入收入。在一个示例中,可以从收入预测210中创建上限阈值(例如,预测收入*1.15)。如果申报收入低于上限阈值,则可以认为该用户的收入通过验证。

如在下面所解释的,该收入预测210可以被直接馈送到图4的机器学习模型402中。机器学习模型402将两个收入预测(例如210和328)进行组合来计算最终收入预测,最终收入预测可以与用户输入的申报收入进行比较。

在一个示例中,计算final_predicted_income(例如,收入预测210、328或404)与stated_income(例如,用户输入薪水)的比率。如果由用户输入的薪水(例如,stated_income)高于预定阈值(例如,0.9),则可以确定该输入是准确的。预定阈值可以取决于请求方需要验证有多准确而变化。例如,与少量资金的贷方相比,或者与将收入验证用于只需要了解用户收入是否在一般收入范围内的其他用例的另外的实体相比,大量资金的贷方可以在验证收入时具有更高阈值。

在另一示例中,可以使用收入预测来确定验证范围。例如,低置信度范围包括低于预定值(例如,比率0.6)的收入预测并指示用户输入的薪水可能不准确,中等置信度范围包括预定值范围(例如,比率0.6与0.9)之间的输入预测并指示用户输入的薪水可能在薪水的价差内,并且高置信度范围可以包括0.9或更高比率的收入预测,这指示用户输入的薪水相当准确。通过这种方式,请求方可以确定收入是否针对实体的特定情况而通过验证。在一个示例中,比率可以是接近0(例如,预测收入低于所申报的)或2(例如,预测收入是所申报的两倍)的任何数值。

图3是图示了根据一些示例实施例的收入验证系统128的另一示例的框图。收入验证系统128可以包括一个以上的收入验证系统以及用于收入验证的其他支持系统。例如,收入验证系统128可以包括在图2、图3、图4中所示的收入验证系统、这些收入验证系统的一些组合、或其他/附加的收入验证系统和用于收入验证的其他支持系统。

如上面针对图2所描述的,图3中的收入验证系统128从客户端设备110(或第三方服务器或其他计算系统)接收用户数据。如下面进一步详细描述的,规范化组件302对用户数据进行标准化以生成规范化的用户数据304。例如,用户数据可以包括相同的雇主、职称等的不同表示形式。用户数据也可能有拼写错误。因此,用户数据被标准化以符合标准格式。下面示出了规范化示例:

在该示例中,使用包括在数据集中找到的最常用示例的查找表,执行从用户数据到规范化输出的转换。

查询生成器306使用规范化的用户数据304生成搜索查询以执行互联网搜索。在另一示例中,查询生成器可以使用接收到的用户数据而无需规范化来生成互联网搜索查询。搜索查询可以包括多个搜索查询。例如,搜索查询集被创建,例如′<雇主><职称>“薪水”′、′<职称>“薪水”′和′<行业><职称>“薪水”′。在一个示例中,选择查询模式以用最少数目的查询来实现最多的可能调用。

搜索引擎308使用所生成的搜索查询来搜索互联网。在一个示例中,搜索引擎308是收入验证系统128的一部分。在另一示例中,搜索引擎308是收入验证系统128之外的实体(例如,第三方服务器或其他计算系统)。

搜索引擎308生成搜索结果310。数据提取器312从搜索结果310中提取薪水信息以生成收入记录314。

同样,数据库查询生成器318使用规范化的用户数据304生成搜索查询,以对一个或多个数据库126中的薪水记录执行数据库搜索。在一个示例中,如上所述,被存储在一个或多个数据库126中的薪水记录是基于公共薪水数据和/或私有薪水数据。在一个示例中,搜索查询是基于用户的身份和规范化的用户数据304的查找。数据库查询生成器318基于一个或多个数据库126的数据库搜索的结果来生成数据库收入记录322。

记录匹配器316使用数据库收入记录322和(互联网)收入记录314的组合来生成候选收入记录320。在一个示例中,从收入记录314提取身份,并且选择前预定数目(例如,五)个最佳匹配。提取系统取决于记录的类型。例如,在一个示例中,对于来自结构化来源的记录,使用xml路径来提取身份。在另一示例中,对于诸如web片段和文本之类的非结构化来源,正则表达式模式被用来提取身份。

根据来源身份和输入身份,记录匹配器316创建诸如姓名字符串匹配分数、地址字符串匹配分数、雇主字符串匹配分数、职位字符串匹配分数和行业匹配分数之类的特征。在一个示例中,机器学习模型(未示出)被用来确定针对这些特征的匹配或相似性分数。在一个示例中,1000个来源身份和输入身份对的样本被用作数据集并且用指示不匹配的0和指示匹配的1来进行注释,以训练机器学习模型来确定针对特征的匹配或相似性分数。在一个示例中,机器学习模型是用以创建匹配算法的决策树。使用不同的阈值将置信度分数分配给匹配。在一个示例中,高于0.8的匹配或相似性分数是高匹配或高置信度分数。然后,可以根据匹配或相似性分数对收入记录进行排名,并且可以选择预定数目的收入记录(例如,前五个)以用于候选收入记录特征提取。

特征提取器324从每个候选收入记录中提取特征,并且将提取的特征输入到机器学习模型326中。例如,特征提取器324对这些收入记录中的每一个提取底薪中、底薪低、底薪高、总薪酬中、总薪酬低和总薪酬高。在一个示例中,总薪酬包括奖金、股票奖励和利润分配。在许多情况下,仅存在薪水属性的子集。针对由记录匹配器316生成的每个候选记录的匹配或相似性分数也可以被输入到机器学习模型326中。

在一个示例中,按行业对就业职位进行聚集,以找到每个薪水值与其他值的全行业比率。这些全行业比率可以被存储在一个或多个数据库126中。在一个示例中,如果候选记录中存在缺失值,则通过将已知的薪水属性乘以全行业比率来填充该缺失值(例如,对于与候选记录中的职位和/或雇主有关的行业)。如果不存在任何属性,则丢弃收入记录。

然后,特征提取器324为每个收入记录生成特征(例如,income_max、income_median、income_min等)。在一个示例中,每个收入记录生成六个特征。同样,相似性或匹配分数也被添加到特征集中。在使用前五个收入记录的示例中,对于每个用户,存在35的特征维度。

在一个示例中,机器学习模型326是梯度提升树模型,但是应当理解,可以使用其他机器学习模型(例如,逻辑回归、支持向量机、随机森林、梯度提升树等)。机器学习模型326输出收入预测328,如上文针对图2中的机器学习模型208和结果收入预测210所述。

在一个示例中,如图4中所示,关于图3描述的特征与来自图2的机器学习模型208的收入预测堆叠在一起,并且被传递给第三机器学习模型402。在一个示例中,图4中的机器学习模型402是梯度提升决策树,但是在其他示例实施例中可以使用其他模型。在图4的示例中,结果收入预测210和收入预测328被输入到机器学习模型402中。机器学习模型402输出组合的模型收入预测404。如上面关于结果收入预测210和收入预测328所解释的,组合的模型收入预测404是正数(例如,40,000或150,000)。

图5是图示了根据一些示例实施例的用于生成收入预测的方法500的各方面的流程图。为了说明的目的,关于图1的联网系统100和图3的收入验证系统128描述方法500。应当理解,在其他实施例中,方法500可以与其他系统配置一起实践。

在操作502中,计算系统(例如,服务器系统102、收入验证系统128等)接收用户数据。在一个示例中,用户数据包括用户姓名、用户雇主、用户职位和用户薪水。在其他示例中,如上所述,用户数据包括附加的或不同的数据。

在一个示例中,用户经由客户端设备输入用户数据,并且客户端设备将用户数据发送到计算系统。在另一示例中,用户数据经由第三方服务器或其他计算系统被发送。

在一个示例实施例中,计算系统对用户数据进行规范化。例如,计算系统将用户数据标准化以符合针对用户姓名、用户雇主、用户职位和用户薪水的标准格式。如上所解释的,可以以各种各样的格式来输入用户数据。例如,可以将软件工程师职位输入为“软件工程师”、“软件开发工程师”、“se”、“sde”、“软件工程师2”等。同样,雇主名称可以被输入为“ge”、“g.e.”或“通用电气”。因此,示例实施例使用一种或多种技术或数据来源来标准化用户数据,诸如字符串匹配算法(例如,jaccard)、拼写检查算法、转导、变换、等价字典等。

在一个示例实施例中,计算系统确定针对职位的行业类型,以帮助理解公司名称和职位的缩写或备选形式。例如,计算系统可以存储关于各种职位和雇主的数据,并将其与各种行业相关联。一些示例行业包括医疗、农业、采矿、建筑、制造、食品加工、硬件、航空公司、运输、物流、电信、公用事业、批发、零售、饭店、金融、保险、房地产、酒店、商业、工程、医疗保健、软件、教育、娱乐等。计算系统使用行业类型来确定特定行业中针对术语和雇主的缩写和备选拼写。例如,医疗行业使用的术语与农业行业不同。行业类型还可以被用来确定针对职位的薪水范围,填充针对职位的缺失信息,诸如此类。

在操作504中,计算系统基于用户数据生成搜索查询,以使用该搜索查询来执行互联网搜索。在一个示例中,如上所解释的,搜索查询包括多个搜索查询(组合的或分开的)。例如,搜索查询集被创建,例如′<雇主><职称>“薪水”′、′<职称>“薪水”′和′<行业><职称>“薪水”′。选择查询模式以用最少的查询数目来实现最多可能的调用。计算系统使用搜索查询来执行对互联网(例如,公共网络)的搜索以生成搜索结果。在一个示例中,计算系统利用诸如必应(bing)之类的搜索引擎来执行搜索。

搜索查询可以返回数千或更多的搜索结果。在一个示例中,计算系统选择搜索结果的子集,诸如第一预定数目(例如,50)的搜索结果,以用于提取数据并生成互联网搜索收入记录。

在操作506中,计算系统从来自互联网搜索的搜索结果(或搜索结果的子集)中提取数据。例如,搜索结果可以包括可以以结构化或非结构化格式的许多文档(例如,文章、公司职位空缺、报告等)。计算系统从每个文档中提取与用户数据有关的数据(例如,职位信息、雇主信息和薪水信息)。如上所解释的,提取系统取决于文档的类型。例如,在一个示例中,对于来自诸如fedsdatacenter和payscale之类的结构化来源的文档,使用xml路径提取数据。在另一示例中,对于诸如web片段和文本之类的非结构化来源,使用正则表达式模式或自然语言处理技术来提取数据。可以基于来源的结构、来源结构的缺失、特定源等来创建用于提取系统的不同规则。

在操作508中,计算系统从提取的数据生成互联网搜索收入记录。在一个示例中,每个互联网搜索收入记录中包含的数据包括雇主、职位、位置和中值薪水,但是应当理解,收入记录可以包括附加的或不同的信息。此外,基于可用于从每个文档中提取的数据,一些字段可能是缺失或不完整的。在一个示例中,如上所解释的,互联网搜索收入记录中的数据被规范化以标准化互联网搜索收入记录来符合标准格式。

在操作510中,基于用户数据,计算系统从包括收入记录的一个或多个数据库生成数据库收入记录(也被称为数据库搜索收入记录)。例如,以与上述生成用于互联网搜索的查询的方式类似的方式,计算系统基于用户数据生成对一个或多个数据库或数据存储库(例如,(多个)数据库126)的查询。对数据库或数据存储库搜索的查询的格式可能不同于互联网搜索。如操作510中所示,计算系统接收搜索结果,从一个或多个数据库取回数据,并且然后从数据中生成数据库收入记录。在一个示例中,如上所解释的,生成数据库收入记录可以进一步包括规范化以标准化数据库收入记录来符合标准格式。

在操作512中,计算系统将互联网搜索收入记录和数据库收入记录进行组合以形成组合的收入记录结果。在操作514中,计算系统从组合的收入记录结果中标识要用于收入预测的候选收入记录。例如,计算系统将组合的收入记录结果的每个收入记录与用户数据(或标准化/规范化的用户数据)进行比较,以确定针对组合的收入记录结果中的每个收入记录的相似性分数。例如,计算系统将标准化的用户数据的每个属性(例如,雇主名称、职称、薪水)与每个收入记录的每个相同属性进行比较。示例实施例可以使用已知的字符串匹配或类似技术(例如,词频-逆文档频率(tf-idf))为每个收入记录的每个属性生成相似性分数。如上所解释的,诸如决策树之类的机器学习模型使用属性相似性分数为每个收入记录生成总体相似性分数。在一个示例中,相似性分数是0和1之间的数字,其指示收入记录与标准化用户数据有多相似。

在一个示例中,基于针对每个收入记录的相似性分数,计算系统选择预定数目的收入记录作为候选收入记录以用于生成收入预测。例如,计算系统可以通过相似性分数对收入记录进行排名,采用前预定数目个(例如,五个、十个等),并且使用那些前几个收入记录进行收入预测。在另一示例中,计算系统可以使用高于预定阈值相似性分数(例如0.7、0.8、0.9)的所有收入记录作为要被用于收入预测的候选收入记录。在另一示例中,具有低于预定阈值(例如0.6、0.5)的相似性分数的任何收入记录被丢弃。

在操作516中,计算系统从每个候选收入记录中提取特征以用于生成收入预测。在一个示例中,计算系统从每个候选收入记录中提取薪水范围,以从该薪水范围生成最低薪水额、中值薪水额和最高薪水额。薪水范围可以基于可变收入因素,可变收入因素基于职业类型(例如,销售专业人员的底薪可能较低,但奖金较高)。例如,如果候选收入记录的薪水范围为30,000美元至60,000美元,则计算系统将生成最低薪水值为30,000美元,中值薪水为45,000美元,并且最高薪水为60,000美元。在一些情况下,来源还可以提供总薪酬范围,其可以包括诸如奖金、小费等因素。因此,可以从候选收入记录中提取许多特征,诸如相似性或匹配分数、最低薪水、中值薪水、最高薪水、最低总薪酬、中值总薪酬、最高总薪酬等,这些特征被馈送到机器学习模型中。

在操作518中,基于从候选收入记录中提取的特征,计算系统使用机器学习模型(例如,机器学习模型326)来生成收入预测以预测收入。如上所述,收入预测是指示薪水的正数(例如40,000或150,000)。然后,收入预测可以被用来验证用户输入收入的准确性。

在一个示例中,如上所解释的,如果收入预测的比率高于预定阈值(例如0.9),则确定收入通过验证(例如,准确)。预定阈值可以取决于请求方需要验证有多准确而变化。例如,与少量资金的贷方相比,或者与将收入验证用于只需要了解用户收入是否在一般收入范围内的其他用例的另外的实体相比,大量资金的贷方可以在验证收入时具有更高阈值。

在另一示例中,可以使用收入预测来确定验证范围。例如,低置信度范围包括低于预定值(例如0.6)的收入预测并指示用户输入的薪水可能不准确,中等置信度范围包括预定值范围(例如0.6与0.9)之间的收入预测并指示用户输入的薪水可能在薪水的价差内,并且高置信度范围可以包括0.9或更高的收入预测,这指示用户输入的薪水相当准确。通过这种方式,请求方可以确定收入是否针对实体的特定情形而通过验证。

在一个示例中,收入预测被提供给一个或多个计算设备或系统。一个或多个计算设备或系统可以使用收入预测来做出决策,诸如是否为用户提供贷款批准或是否要调整贷款利率。示例实施例提供了实时(或接近实时)的收入预测,因此利用收入预测的系统可以实时(或接近实时)地做出决策并批准用户。

示例实施例可以以各种方式被扩展。例如,当仅身份信息可用(例如,姓名和地址)但就业信息没有被提供时,或当仅部分就业信息(例如头衔和行业,但没有雇主名称)可用时,示例实施例可以探索收入验证。此外,示例实施例可以被国际化以考虑各个国家中不同的薪水范围、职位、雇主等。

此外,示例实施例可以被用来分析一年或多年的薪水趋势。在一个示例中,这可以用于确定用户的收益潜力。

图6是图示了软件架构602的框图600,软件架构602可以被安装在上述设备中的任何一个或多个设备上。例如,在各种实施例中,可以使用软件架构602的一些或全部元件来实现客户端设备110和服务器系统130、102、120、122和128。图6仅是软件架构的非限制性示例,并且将意识到,可以实现许多其他架构以有利于在本文中所描述的功能性。在各种实施例中,软件架构602由诸如图7的机器700之类的硬件实现,机器700包括处理器710、存储器730和i/o组件750。在该示例中,软件架构602可以被概念化为层的堆叠,其中每个层可以提供特定的功能性。例如,软件架构602包括诸如操作系统604、库606、框架608和应用610之类的层。在操作上,与一些实施例一致,应用610通过软件堆栈引起应用编程接口(api)调用612,并且响应于api调用612来接收消息614。

在各种实现中,操作系统604管理硬件资源并提供共用服务。例如,操作系统604包括内核620、服务622和驱动器624。根据一些实施例,内核620充当硬件和其他软件层之间的抽象层。例如,内核620提供存储器管理、处理器管理(例如,调度)、组件管理,联网和安全设置以及其他功能性。服务622可以为其他软件层提供其他共用服务。根据一些实施例,驱动器624负责控制底层硬件或与底层硬件对接。例如,驱动器624可以包括显示驱动器、相机驱动器、蓝牙或蓝牙低能耗驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器,诸如此类。

在一些实施例中,库606提供由应用610利用的低级别通用基础设施。库606可以包括系统库630(例如,c标准库),其可以提供诸如存储器分配函数、字符串操纵函数、数学函数等函数。另外,库606可以包括api库632,诸如媒体库(例如,支持各种媒体格式的呈现和操纵的库,媒体格式诸如运动图像专家组4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组层3(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)、或便携式网络图形(png))、图形库(例如,用于在显示器上绘制二维(2d)和三维(3d)图形内容的opengl框架)、数据库库(例如,提供各种关系数据库功能的sqlite)、web库(例如,提供网页浏览功能性的webkit)等。库606还可以包括各种各样的其他库634,以向应用610提供许多其他的api。

根据一些实施例,框架608提供应用610可以利用的高级别通用基础设施。例如,框架608提供各种图形用户界面(gui)功能、高级别资源管理、高级别位置服务等。框架608可以提供应用610可以利用的广泛的其他api,其中一些api可以特定于特定的操作系统604或平台。

在示例实施例中,应用610包括家庭应用650、联系人应用652、浏览器应用654、书籍阅读器应用656、位置应用658、媒体应用660、消息收发应用662、游戏应用664、以及诸如第三方应用666之类的各种各样的其他应用。根据一些实施例,应用610是程序,其执行程序中定义的功能。可以采用各种编程语言来创建以多种方式构造的一个或多个应用610,诸如面向对象的编程语言(例如,objective-c,java或c++)或过程编程语言(例如,c或汇编语言)。在特定示例中,第三方应用666(例如,由特定平台的卖方以外的实体使用androidtm或iostm软件开发套件(sdk)开发的应用)可以是在移动操作系统上运行的移动软件,移动操作系统诸如iostm、androidtmphone、或其他的移动操作系统。在此示例中,第三方应用666可以引起由操作系统604提供的api调用612,以有利于在本文中描述的功能性。

特别地,一些实施例可以包括验证应用667,验证应用667可以是请求将由本文描述的系统和服务器执行的数据或其他任务的任何应用,本文描述的系统和服务器诸如是服务器系统102、第三方服务器130等。在某些实施例中,这可以是操作以管理与诸如第三方服务器130或服务器系统102之类的服务器系统的通信的独立应用。在其他实施例中,该功能性可以与另一应用集成。验证应用667可以请求并显示与收入验证有关的各种数据,并且可以为用户106提供以下能力:经由语音、经由触摸界面、经由键盘或使用机器700的相机设备来输入与系统有关的数据;经由i/o组件750与服务器系统通信;以及在存储器730中对对象数据的接收和存储。信息的呈现和与信息相关联的用户输入可以由验证应用667使用在机器700上运行的不同框架608、库606元件或操作系统604元件来管理。

图7是图示了根据一些实施例的机器700的组件的框图,机器700能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文所讨论的方法中的任何一个或多个方法。具体地,图7以计算机系统的示例形式示出了机器700的图解表示,在该机器内,可以执行用于使机器700执行本文所讨论的方法中的任何一个或多个方法的指令716(例如,软件、程序、应用610、小应用、app、或其他可执行代码)。在备选实施例中,机器700作为独立设备操作或可以耦合(例如,联网)到其他机器。在联网部署中,机器700可以以服务器-客户端网络环境中的服务器机器130、102、120、122、124、128等或客户端设备110的能力操作,或作为对等机器(或分布式)网络环境中的对等机器操作。机器700可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能设备)、其他智能设备、web设备、网络路由器、网络交换机、网桥、或能够依次或以其他方式执行指令716的任何机器,这些指令指定机器700要采取的动作。此外,虽然仅图示出单个机器700,但是术语“机器”也应包括机器700的集合,机器700的集合单独地或联合地执行指令716以执行本文讨论的方法中的任何一个或多个方法。

在各种实施例中,机器700包括处理器710、存储器730和i/o组件750,其可以被配置为经由总线702彼此通信。在示例实施例中,处理器710(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、无线电频率集成电路(rfic)、另一处理器、或其任何合适的组合)例如包括可以执行指令716的处理器712和处理器714。术语“处理器”旨在包括多核处理器710,多核处理器710可以包括可以同时执行指令716的两个或更多个独立处理器712、714(也被称为“核”)。尽管图7示出了多个处理器710,然而机器700可以包括具有单核的单个处理器710、具有多核的单个处理器710(例如,多核处理器710)、具有单核的多个处理器712、714、具有多核的多个处理器712、714、或其任何组合。

根据一些实施例,存储器730包括主存储器732、静态存储器734和经由总线702被处理器710可访问的存储单元736。存储单元736可以包括机器可读介质738,在该机器可读介质上存储了体现本文描述的方法或功能中的任何一个或多个方法或功能的指令716。在由机器700执行期间,指令716还可以完全或至少部分地位于主存储器732内、位于静态存储器734内、位于处理器710中的至少一个内(例如,位于处理器的高速缓冲存储器内),或位于其任何合适的组合内。因此,在各个实施例中,主存储器732、静态存储器734和处理器710被视为机器可读介质738。

如本文所用,术语“存储器”是指能够临时或永久地存储数据的机器可读介质738,并且可以被认为包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存和高速缓冲存储器。尽管在示例实施例中将机器可读介质738示为单个介质,但是术语“机器可读介质”应被认为包括能够存储指令716的单个介质或多个介质(例如,集中式或分布式数据库、或相关联的高速缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储指令(例如,指令716)以供机器(例如,机器700)执行的任何介质或多种介质的组合,以使指令716在由机器700的一个或多个处理器(例如处理器710)执行时使机器700执行本文所述的方法中的任何一个或多个方法。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。因此,术语“机器可读介质”应被认为包括但不限于以固态存储器(例如闪存)、光学介质、磁性介质、其他非易失性存储器(例如,可擦可编程只读存储器(eprom))、或其任何合适的组合。术语“机器可读介质”具体地排除了非法定信号本身。

i/o组件750包括各种各样的组件,用以接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量等等。通常,将认识到,i/o组件750可以包括在图7中没有示出的许多其他组件。仅为了简化下面的讨论,仅根据功能性对i/o组件750进行分组,并且该分组绝不是限制性的。在各种示例实施例中,i/o组件750包括输出组件752和输入组件754。输出组件752包括视觉组件(例如,诸如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪、或阴极射线管(crt)的显示器)、声学组件(例如,扬声器)、触觉组件(例如,振动马达)、其他信号发生器,诸如此类。输入组件754包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于指向的输入组件(例如,鼠标、触摸板、跟踪球、操纵杆、运动传感器或其他指向工具)、触知输入组件(例如,物理按钮、提供触摸位置和力度或触摸手势的触摸屏、或其他触知输入组件)、音频输入组件(例如,麦克风)等。

在一些更多的示例实施例中,i/o组件750包括生物统计组件756、运动组件758、环境组件760或定位组件762,以及各种各样的其他组件。例如,生物统计组件756包括用以检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、排汗或脑电波)、标识人(例如,语音标识、视网膜标识、面部标识、指纹标识或基于脑电图的标识)等的组件。运动组件758包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。例如,环境组件760包括照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,一个或多个检测背景噪音的麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器,用以检测危险气体浓度以确保安全或用以测量大气中的污染物的气体检测传感器)、或可以提供与周围物理环境相对应的指示、测量或信号的其他组件。定位组件762包括位置传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,检测可从中得出高度的气压的高度计或气压计)、定向传感器组件(例如磁力计)等。

可以使用各种各样的技术来实现通信。i/o组件750可以包括通信组件764,通信组件764可操作以分别经由耦合782和耦合772将机器700耦合到网络780或设备770。例如,通信组件764包括网络接口组件或与网络780对接的另一合适设备。在进一步的示例中,通信组件764包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、蓝牙组件(例如蓝牙低能耗)、组件、和通过其他形式提供通信的其他通信组件。设备770可以是另一台机器700或各种各样的外围设备中的任何一个(例如,经由通用串行总线(usb)耦合的外围设备)。

此外,在一些实施例中,通信组件764检测标识符或包括可操作以检测标识符的组件。例如,通信组件764包括无线电频率标识(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,光学传感器,用以检测诸如通用产品代码(upc)的一维条形码、诸如快速响应(qr)码、aztec码、数据矩阵、dataglyph、maxicode、pdf417、ultra码、统一商业代码减少空间符号(uccrss)-2d条形码之类的多维条形码、和其他光学代码)、声学检测组件(例如,用以标识标记的音频信号的麦克风)、或其任意合适的组合。另外,可以经由通信组件764得出各种信息,诸如经由互联网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的蓝牙或nfc信标信号的位置,诸如此类。

在各种示例实施例中,网络780的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网(pstn)的一部分、普通的老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、别的类型的网络、或两个或更多这种网络的组合。例如,网络780或网络780的一部分可以包括无线或蜂窝网络,并且耦合782可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其他类型的蜂窝或无线耦合。在该示例中,耦合器782可以实现多种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准,由各种标准制定组织定义的其他标准、其他远程协议或其他数据转送技术。

在示例实施例中,经由网络接口设备(例如,包括在通信组件764中的网络接口组件)使用传输介质,并且利用多个已知的传输协议之一(例如,超文本传输协议(http)),在网络780上传输或接收指令716。类似地,在其他的示例实施例中,经由耦合772(例如,对等耦合)使用传输介质向设备770传输或接收指令716。术语“传输介质”应被认为包括任何能够存储、编码或携带指令716以供机器700执行的无形介质,并且包括用以有利于这种软件的通信的数字或模拟通信信号或其他无形介质。

此外,机器可读介质738是非瞬态的(换言之,不具有任何瞬态信号),因为它没有体现传播的信号。然而,将机器可读介质738标记为“非瞬态”不应被解释为意味着该介质不能移动;介质738应被视为可从一个物理位置传送到另一物理位置。另外,由于机器可读介质738是有形的,所以可以将介质738视为机器可读的设备。

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管图示了一种或多种方法的单独操作并将其描述为独立操作,但是可以同时执行一个或多个单独操作,而不需要按照所图示的顺序来执行那些操作。在示例配置中表示为独立组件的结构和功能性可以实现为组合结构或组件。类似地,展现为单个组件的结构和功能性可以实现为独立组件。这些和其他变型、修改、添加和改进落入本文主题的范围内。

尽管已经参考具体的示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。

在本文中说明的实施例被充分详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中得出其他实施例,以使可以在不脱离本公开的范围的情况下进行结构和逻辑上的替换和改变。因此,不应在限制的意义上理解具体实施方式,并且各种实施例的范围仅由所附的权利要求以及这些权利要求所赋予的等效物的全部范围来限定。

如本文中所使用,术语“或”可以解释为包含或排除的意义。此外,可以为本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任意的,并且在具体的说明性配置的上下文中说明了特定的操作。功能性的其他分配可以被设想并且可以落入本公开的各种实施例的范围内。通常,在示例配置中表示为独立资源的结构和功能性可以实现为组合结构或资源。类似地,展现为单个资源的结构和功能性可以被实现为独立的资源。这些和其他变型、修改、添加和改进落入如所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图应被认为是说明性的而不是限制性的。

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