一种用于识别不同渠道事务中的相同用户的方法和系统
技术领域
本申请涉及数据库检索领域,尤其涉及一种用于识别不同渠道事务中的相同用户的技术。
背景技术
数据管理平台(Data Management Platform,DMP)是一种可吸收各种数据源的数据系统,通过数据清洗和集成,形成以用户为基本单位的数据组织形式;基于用户为导向的数据组织,数据管理平台的使用者可在各种用户属性维度上定义和计算用户标签,以及基于标签定义和计算用户人群分类,达到精准描述各类用户的目标。数据管理平台可应用于提供推广信息,例如,精准定位推广信息的受众人群,将导出的人群包用于需求方平台(Demand-Side Platform,DSP)等系统以提供信息。
发明内容
本申请的一个目的是提供一种用于识别不同渠道事务中的相同用户的方法和系统。
根据本申请的一个方面,提供了一种用于识别不同渠道事务中的相同用户的方法,该方法包括:
生成新增事务数据对应的第一用户记录,其中,所述第一用户记录包括用户属性信息、第一用户标识信息和第二用户标识信息;
在用户身份映射表中查询确定一个或多个第二用户记录,其中,每个第二用户记录与所述第一用户记录存在至少一条相同的用户属性信息;
根据所述一个或多个第二用户记录确定所述第一用户记录中的第二用户标识信息。
根据本申请的另一个方面,提供了一种用于识别不同渠道事务中的相同用户的系统,该系统包括:
第一记录生成模块,用于生成新增事务数据对应的第一用户记录,其中,所述第一用户记录包括用户属性信息、第一用户标识信息和第二用户标识信息;
第二记录查询模块,用于在用户身份映射表中查询确定一个或多个第二用户记录,其中,每个第二用户记录与所述第一用户记录存在至少一条相同的用户属性信息;
第二标识确定模块,用于根据所述一个或多个第二用户记录确定所述第一用户记录中的第二用户标识信息。
根据本申请的又一个方面,提供了一种用于识别不同渠道事务中的相同用户的系统,该系统包括:
第一记录生成模块,用于生成新增事务数据对应的第一用户记录,其中,所述第一用户记录包括用户属性信息、第一用户标识信息和第二用户标识信息;
第二记录查询模块,用于在用户身份映射表中查询确定一个或多个第二用户记录,其中,每个第二用户记录与所述第一用户记录存在至少一条相同的用户属性信息;
第二标识确定模块,用于根据所述一个或多个第二用户记录确定所述第一用户记录中的第二用户标识信息;
信息更新模块,用于基于更新后的所述第一用户记录更新所述用户身份映射表,或者基于更新后的所述第一用户记录更新对应用户所属的人群包信息。
根据本申请的一个方面,提供了一种用于识别不同渠道事务中的相同用户的设备,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以上所述方法的操作。
根据本申请的另一个方面,提供了一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行以上所述方法的操作。
与现有技术相比,本申请提供的用于识别不同渠道事务中的相同用户的方法和系统,可以更有效地丰富以用户为中心的数据分析能力以及以用户为中心的数据视图,以供企业为用户提供更好的服务体验(括线上和线下的推荐等),并帮助企业制定更有效的信息提供方案(例如,加大力度进行人群投放,或者加大力度招募会员,或者如何制定投入产出比更高的信息推广方式)。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请一个实施例的一种用于识别不同渠道事务中的相同用户的方法流程图;
图2示出根据本申请一个实施例的一种用于识别不同渠道事务中的相同用户的方法的具体实施流程;
图3a和图3b分别示出一种相似度计算逻辑函数;
图4a和图4b分别示出一种相似度计算的流程;
图5是根据本申请另一个实施例的一种用于识别不同渠道事务中的相同用户的方法流程图;
图6示出根据本申请一个实施例的一种用于识别不同渠道事务中的相同用户的系统的逻辑架构;
图7示出根据本申请一个实施例的一种用于识别不同渠道事务中的相同用户的系统的功能模块;
图8示出根据本申请另一个实施例的一种用于识别不同渠道事务中的相同用户的系统的功能模块;
图9示出根据本申请一个实施例的一种示例性系统。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(Central Processing Unit,CPU))、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash Memory)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PCM)、可编程随机存取存储器(Programmable Random Access Memory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、其他类型的随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦除可编程只读存储器(Electrically-ErasableProgrammable Read-Only Memory,EEPROM)、快闪记忆体(Flash Memory)或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如Android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc Network)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
本申请公开了一种用于识别不同渠道事务中的相同用户的用户识别系统。在此,基于该用户识别系统对本申请的具体实施方式进行详细描述。
根据本申请的一个方面,提供了一种用于识别不同渠道事务中的相同用户的方法。参考图1,该方法包括步骤S100、步骤S200和步骤S300。
具体而言,在步骤S100中,用户识别系统生成新增事务数据对应的第一用户记录,其中,所述第一用户记录包括用户属性信息、第一用户标识信息和第二用户标识信息。其中,在一些实施例中,所述新增事务数据对应于用户与系统的交易渠道,例如企业的自有电商平台;或者对应于非交易渠道,例如客户关系管理(Customer RelationshipManagement,CRM)系统或者呼叫中心。
例如,若c1,c2,…,cn是n个渠道,而每个渠道ci中的用户行为信息可以被定义为一个三元组:
u(ci)=(tx_id,tx_timestamp,behaviour_information)
其中,tx_id是事务标识,tx_timestamp是事务发生的时间戳,而behaviour_information则包含具体事务信息。
例如,对于一个呼叫中心的记录而言,tx_id是呼叫中心分配的一个唯一标识,tx_timestamp则是用户打电话的被接入的时间点,behaviour_information则记录了整个电话的录音;对于一次线上购物而言,tx_id是订单交易号,tx_timestamp是订单发生的时间戳,behaviour_information则是订单明细、交易金额、支付平台的账号和收货人等信息。
给定用户行为数据u(ci),u(cj),…,u(ck),从数据库中获取新增的事务数据,对于每条事务数据生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和与该用户标识相关的属性信息存放到用户身份映射表,具体包括:给定一个事务t,抽取t中的用户标识属性UAL值;以及基于抽取的UAL值生成一条新记录r并存放在用户身份映射表中。其中,t是新增事务数据;r设定为第一用户记录;UAL为用户属性信息;user_id设定为第一用户标识信息(对应于以上所述的内部系统使用的用户标识);same_as_id设定为第二用户标识信息;u可设定为一个或多个第二用户记录。在一些实施例中,第一用户标识信息由系统唯一分配,例如随事务的增加而递增。
在步骤S200中,用户识别系统在用户身份映射表中查询确定一个或多个第二用户记录,其中,每个第二用户记录与所述第一用户记录存在至少一条相同的用户属性信息。例如,所述每个第二用户记录至少有一项用户属性(例如,相应用户的手机号、在线支付平台账号、在线购物平台账号等)。换句话说,每个第二用户记录与所述第一用户记录的用户属性信息的交集非空。
在步骤S300中,用户识别系统根据所述一个或多个第二用户记录确定所述第一用户记录中的第二用户标识信息。在一些实施例中,所述一个或多个第二用户记录包含相同的第二用户标识信息,系统基于该第二用户标识信息,更新前述第一用户记录中的第二用户标识信息,从而在更新操作后使得第一用户记录与所述一个或多个第二用户记录的第二用户标识信息相同。根据该相同的第二用户标识信息,可判定该第一用户记录与前述一个或多个第二用户记录由同一用户产生,从而完成不同渠道事务中的相同用户的识别。
其中,用户属性列表(UAL)包括:手机号、固定电话、性别、年龄、电子邮件、收货人地址、会员卡号、支付平台的支付帐号(例如,支付宝账号、京东帐号、微信Union_ID)、面部识别ID(例如Face ID)、设备ID(例如,IMEI、MAC地址、IP地址、Cookie)、非交易平台的帐号或用户名(例如,淘宝会员名、QQ帐号、微博ID),手机App ID(例如,微信Open_ID)、订单号、订单时间、实体店铺编号等。对于一个现实场景中的企业而言,一般要基于实际业务考虑需要定义哪些UAL。
用户身份映射表(USER_MAPPING_TABLE)包括两类属性:用户类型,用户标识属性(UAL)。在实际方法中,用户需要指定包括哪几种用户类型,以及哪些用户标识属性;给定了这两部分信息,系统脚本会自动生成相应的数据库表。表1给出了一个样例,其中用户类型有三种:会员(mid),用户(same_as_id)和未识别用户(user_id),而用户标识属性有四种:会员卡号(member_id),手机(mobile),支付宝账号(alipay_id),京东帐号(jd_id),订单号或事务ID(tx_id),订单时间(tx_timestamp);其中,会员(mid)和用户(same_as_id)是需要用同一用户身份识别算法来更新的。
表1
mid |
same_as_id |
user_id |
member_id |
mobile |
alipay_id |
jd_id |
tx_id |
tx_timestamp |
1001 |
1 |
1 |
1001 |
13012345678 |
abc@qq.c |
|
101 |
20180105 |
|
3 |
41 |
|
13000000311 |
|
xyz@163.c |
300 |
20180207 |
|
1 |
99 |
|
|
abc@qq.c |
|
715 |
20180305 |
系统为r生成两个全局唯一的ID:r.user_id和r.same_as_id。
参照上述表1,r.user_id为第一用户记录(例如未识别用户),作为r的标识的全局唯一的ID;r.same_as_id为第一用户记录的第二用户标识信息,在进行比较后将进行更新。找到所有第二用户记录{u}(第二用户记录的集合),其中u的UAL属性值与r的UAL属性值相交不为空。
在一些实施例中,上述步骤300包括子步骤S310(未示出)、子步骤S320(未示出)和子步骤S330(未示出)。其中,在子步骤S310中,用户识别系统根据每个第二用户记录的第二用户标识信息将所述一个或多个第二用户记录分成一个或多个记录组,其中,每个记录组中的第二用户记录具有相同的第二用户标识信息;在子步骤S320中,用户识别系统根据每个记录组与所述第一用户记录的匹配度信息,从所述一个或多个记录组中去确定与所述第一用户记录相匹配的优选记录组;在子步骤S330中,用户识别系统将所述第一用户记录中的第二用户标识信息更新为所述优选记录组中第二用户记录的第二用户标识信息。在一些实施例中,系统首先筛选用户属性信息交集非空的用户记录,再根据筛选得到的用户记录计算上述匹配度信息,以节约计算资源和提高系统的操作效率。
其中,在一些实施例中,上述子步骤S320还包括子步骤S321(未示出)和子步骤S322(未示出)。在子步骤S321中,用户识别系统确定每个记录组与所述第一用户记录的匹配度信息;在子步骤S322中,用户识别系统根据所述匹配度信息从所述一个或多个记录组中去确定与所述第一用户记录相匹配的优选记录组。
例如,接上例,设定pi为一个或多个记录组;上述匹配度信息也可表述为相似度信息。按照u.same_as_id的不同取值将集合{u}划分成k个划分,例如p1,…,pk。用户映射表中已经更新的u.same_as_id表示已经完成同一用户识别的用户身份id,不同的u.same_as_id取值表示不同的已识别的用户。记用于计算相似度(或匹配度)的函数为f,系统计算r与每个pi的相似度,并用最大相似度max(f)的pi.same_as_id赋给r.same_as_id。在此,根据相似度找到用户身份映射表中存在的最可能的与r是同一用户的用户,并通过更新r.same_as_id,赋予r(第一用户记录)新的身份id(第二用户标识信息),并将其纳入用户身份映射表中。
在一些实施例中,在子步骤S321中,用户识别系统根据每个记录组中的第二用户记录生成该记录组对应的虚拟用户记录,其中,该虚拟用户记录中的用户属性信息基于该记录组中各第二用户记录的用户属性信息确定;并计算所述虚拟用户记录与所述第一用户记录的第一匹配度信息,以作为该记录组与所述第一用户记录的匹配度信息。
例如,参考图2示出的具体实施流程,系统为每一个pi构建一个虚拟用户,并计算r(第一用户记录)与每个pi的相似度,并用最大相似度max(f)对应的pi.same_as_id赋给r.same_as_id。在此,根据相似度找到用户身份映射表中存在的最可能的与r是同一用户的用户,并通过更新r.same_as_id,赋予r新的身份id,并将其纳入用户身份映射表中。
其中,为确保获取的该虚拟用户记录中的用户属性信息的可靠性,在一些实施例中,基于该记录组中各第二用户记录的用户属性信息确定所述该虚拟用户记录中的用户属性信息的方式,为以下至少任一项:
-该虚拟用户记录中的用户属性信息由该记录组中各第二用户记录按用户属性信息统计确定;
-该虚拟用户记录中的用户属性信息由该记录组中各第二用户记录按用户属性信息加权统计确定,其中,各用户属性信息在第二用户记录中的权重信息与该第二用户记录所属的渠道信息相关;
-该虚拟用户记录中的用户属性信息基于该记录组中各第二用户记录的用户属性信息组合而得。
在一些实施例中,在上述子步骤S321中,用户识别系统对于每个记录组,计算该记录组中各第二用户记录与所述第一用户记录的第二匹配度信息,并根据该记录组对应的各第二匹配度信息确定该记录组与所述第一用户记录的匹配度信息。例如,各第二匹配度信息中的最大值确定该记录组与所述第一用户记录的匹配度信息,从而遴选匹配度最高的第二用户记录以确保匹配结果的可靠性。
在此基础上,在一些实施例中,该记录组与所述第一用户记录的匹配度信息,是根据该记录组中各第二用户记录对应的权重信息及第二匹配度信息加权确定的。由于同一组用户属性信息的不同属性值对上述记录组与所述第一用户记录的匹配度信息的影响可能不同,为体现这种影响以进一步提升用户记录匹配操作的准确度,计算该记录组与所述第一用户记录的匹配度信息时引入了各第二用户记录对应的权重信息。例如,在一些实施例中,所述第二用户记录对应的权重信息与该第二用户记录对应的事务数据的已完成时间信息负相关。例如,越近完成的事务,其对应的用户记录的权重越高;距离当前时间越久的交易中所使用的ID在相似度计算中的影响度越小。其中,所述已完成时间信息为“当前时间-交易时间”。例如,某个ID出现的频度,越多越稳定,说明该ID是可以稳定的标识一个用户的;又例如,某个ID出现在越远的过去,且最近不再使用,权重越低,说明该ID可能不再使用了。
在一些实施例中,为便于操作,在步骤S300中,用户识别系统计算每个第二用户记录与所述第一用户记录的第三匹配度信息,根据所述第三匹配度信息确定所述一个或多个第二用户记录中与所述第一用户记录相匹配的优选第二用户记录,并将所述第一用户记录中的第二用户标识信息更新为所述优选第二用户记录的第二用户标识信息。其中,系统计算每个第二用户记录分别与第一用户记录的第三匹配度信息,并基于这些第三匹配度信息,从中优选一个或者多个第二用户记录,例如选取该第三匹配度信息最高的一个后者多个第二用户记录作为优选第二用户记录。在一些实施例中,优选第二用户记录的选取方式为:选取第三匹配度信息最高的一项或若干项第二用户记录作为优选第二用户记录;在另一些实施例中,优选第二用户记录的选取方式为:选取第三匹配度信息高于预设阈值的一项或若干项第二用户记录作为优选第二用户记录。
在一些实施例中,在步骤S100中,用户识别系统从新增事务数据中抽取用户属性信息以生成对应的第一用户记录,其中,所述第一用户记录包括用户属性信息;并在所述第一用户记录中添加为其新分配的、全局唯一的第一用户标识信息和第二用户标识信息。例如,系统首先从数据库中获取新增的事务数据,对于每条事务数据生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和与该用户标识相关的属性信息存放到用户身份映射表。
其中,在计算用户记录的相似度(或匹配度)的过程中,乃至整个身份识别过程中,相似度计算逻辑的确定至关重要。图3a示出一种相似度计算逻辑函数。结合图4a示出的具体实例,其中,A是表示u1.UAL的一个向量(某个ID存在的话,则图4a中对应的向量位置为1),B是表示u2.UAL的一个向量。两个待比较的用户u1和u2为两个权向量,第i个属性值的权重Wi表示u1和u2中第i个属性值(如表1中的id)的重要性,Wi是按照出现的频次进行计算的,是函数中的一个参数;每个UAL属性值的权重可以定义为该属性值在某个用户组中所有用户对应的属性中出现的次数;也可以定义为[0,1]之间的一个值,例如,以1/(当前时间-交易时间)作为一个参数,用于表示距离当前时间越久的交易中所使用的ID在相似度计算中的影响度越小。具体而言,对于图4a中的实例,假设U001,U002和U003已经被识别映射成为同一个用户S001,当一个新用户交易被插入用户身份映射表后(即U004),U004和S001的相似度计算过程:假设各种ID类型的权重均为1,并按照ID的出现频率求和,生成最终的向量S001=(2,2,1,1,1),这里向量中的第一位2代表id1=1出现了两次,向量中其他位置的值依此类推;相似地,我们可以得到U004=(0,0,0,1,1)。然后,采用图3a中的相似度公式计算得出f=sim(S001,U004)=0.42。
而图3b给出了另一种计算相似度的方法。结合图4b示出的具体实例,其中,u1.UAL和u2.UAL表示用户u1和u2的属性集合,|u1.UAL u2.UAL|表示u1和u2相同的属性数量,而|u1.UAL||u2.UAL|则表示u1和u2有多少不同属性。f值越大,说明u1和u2越有可能为同一用户,反之则越不可能为同一用户。具体而言,对于图4b中的实例,与图4a不同之处在于每种ID仅按照其是否出现设置0或1。对于S001而言,由于id1至id5都出现在了集合S001={U001,U002,U003}中,因此S001=(1,1,1,1,1)。然后,采用图3b中的相似度计算方法可以得到f=sim(S001,U004)=0.4,其中分子上的2表示S001和U004都有相同的id4和id5,而从id1至id5出现的所有不同的ID值为5。
需要强调的一点是,相似度的计算逻辑可以依据实际业务场景中的UAL含义进行定义,并设置一个阈值来确定一个新用户r应该与哪个已知用户视为同一个用户。对于阈值,系统可以按照不同的阈值进行计算,并分析通过人工校验的方式确定一个合理的阈值;例如,一种可行的阈值选择方法为:(1)将历史数据分成两组,用第一组数据生成统计,确定一个阈值;(2)用该阈值应用于第二组数据,采用人工分析计算得出的同一用户的结果;(3)如果发现很多明显是同一用户的却被识别为不同的用户,则减小阈值,反之则增加阈值。
在一些实施例中,在确定上述第一用户记录的第二用户标识信息后,系统基于更新后的第一用户记录进行信息更新,以便进一步的数据处理和后续的用户记录匹配。相应地,上述方法还包括步骤S400,参考图5。在步骤S400中,用户识别系统基于更新后的所述第一用户记录更新所述用户身份映射表;或者,基于更新后的所述第一用户记录更新对应用户所属的人群包信息。其中,标签是符合一些事务属性的人的集合,而人群包是通过标签组合得到的人的集合。
参考图6,本申请与其他数据管理平台相比,该系统中新增了三个子功能以完成同一用户识别功能。
-唯一标识赋值功能:首先,定时从数据库中获取新增的事务数据(例如,用户的交易记录或非交易记录),对于每条事务数据,该模块会为生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和用于用户识别相关的属性信息存放到用户身份映射表。
-同一用户识别功能:当用户身份映射表更新之后,同一用户识别模块会执行识别算法并将哪些用户事务是属于同一用户的信息更新到身份映射表中。
-用户信息增强:对于人群应用,系统会基于已识别出的同一用户映射关系,对人群包执行信息增强操作。例如,导出的人群包可能未考虑一些渠道的属于同一用户的行为信息(假设在没有同一用户映射关系的情况下),因此通过同一用户映射关系可以将其他渠道的同一用户的信息合并到人群包中;对于用户行为分析和挖掘,系统会基于已识别出的同一用户映射关系,从数据库中选择出全量用户行为数据,而同一用户映射关系在此过程中可以确保在最小程度上不遗漏跨渠道和跨品牌的同一用户的全部行为数据。
在这种用于识别不同渠道事务中的相同用户的系统中,包括唯一标识赋值模块,用于对从数据库中获取的新增的每条事务数据生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和用于用户标识相关的属性信息存放到用户身份映射表;同一用户识别模块,用于执行识别算法并将哪些用户事务属于同一用户的信息更新到身份映射表中;用户信息增强模块,用于基于已识别的同一用户映射关系对人群包执行信息增强操作。
根据本申请的一个方面,提供了一种用于识别不同渠道事务中的相同用户的用户识别系统1000。参考图7,该系统包括第一记录生成模块100、第二记录查询模块200和第二标识确定模块300。
具体而言,第一记录生成模块100生成新增事务数据对应的第一用户记录,其中,所述第一用户记录包括用户属性信息、第一用户标识信息和第二用户标识信息。其中,在一些实施例中,所述新增事务数据对应于用户与系统的交易渠道,例如企业的自有电商平台;或者对应于非交易渠道,例如客户关系管理(Customer Relationship Management,CRM)系统或者呼叫中心。
例如,若c1,c2,…,cn是n个渠道,而每个渠道ci中的用户行为信息可以被定义为一个三元组:
u(ci)=(tx_id,tx_timestamp,behaviour_information)
其中,tx_id是事务标识,tx_timestamp是事务发生的时间戳,而behaviour_information则包含具体事务信息。
例如,对于一个呼叫中心的记录而言,tx_id是呼叫中心分配的一个唯一标识,tx_timestamp则是用户打电话的被接入的时间点,behaviour_information则记录了整个电话的录音;对于一次线上购物而言,tx_id是订单交易号,tx_timestamp是订单发生的时间戳,behaviour_information则是订单明细、交易金额、支付平台的账号和收货人等信息。
给定用户行为数据u(ci),u(cj),…,u(ck),从数据库中获取新增的事务数据,对于每条事务数据生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和与该用户标识相关的属性信息存放到用户身份映射表,具体包括:给定一个事务t,抽取t中的用户标识属性UAL值;以及基于抽取的UAL值生成一条新记录r并存放在用户身份映射表中。其中,t是新增事务数据;r设定为第一用户记录;UAL为用户属性信息;user_id设定为第一用户标识信息(对应于以上所述的内部系统使用的用户标识);same_as_id设定为第二用户标识信息;u可设定为一个或多个第二用户记录。在一些实施例中,第一用户标识信息由系统唯一分配,例如随事务的增加而递增。
第二记录查询模块200在用户身份映射表中查询确定一个或多个第二用户记录,其中,每个第二用户记录与所述第一用户记录存在至少一条相同的用户属性信息。例如,所述每个第二用户记录至少有一项用户属性(例如,相应用户的手机号、在线支付平台账号、在线购物平台账号等)。换句话说,每个第二用户记录与所述第一用户记录的用户属性信息的交集非空。
第二标识确定模块300根据所述一个或多个第二用户记录确定所述第一用户记录中的第二用户标识信息。在一些实施例中,所述一个或多个第二用户记录包含相同的第二用户标识信息,系统基于该第二用户标识信息,更新前述第一用户记录中的第二用户标识信息,从而在更新操作后使得第一用户记录与所述一个或多个第二用户记录的第二用户标识信息相同。根据该相同的第二用户标识信息,可判定该第一用户记录与前述一个或多个第二用户记录由同一用户产生,从而完成不同渠道事务中的相同用户的识别。
其中,用户属性列表(UAL)包括:手机号、固定电话、性别、年龄、电子邮件、收货人地址、会员卡号、支付平台的支付帐号(例如,支付宝账号、京东帐号、微信Union_ID)、面部识别ID(例如Face ID)、设备ID(例如,IMEI、MAC地址、IP地址、Cookie)、非交易平台的帐号或用户名(例如,淘宝会员名、QQ帐号、微博ID),手机App ID(例如,微信Open_ID)、订单号、订单时间、实体店铺编号等。对于一个现实场景中的企业而言,一般要基于实际业务考虑需要定义哪些UAL。
用户身份映射表(USER_MAPPING_TABLE)包括两类属性:用户类型,用户标识属性(UAL)。在实际方法中,用户需要指定包括哪几种用户类型,以及哪些用户标识属性;给定了这两部分信息,系统脚本会自动生成相应的数据库表。表1给出了一个样例,其中用户类型有三种:会员(mid),用户(same_as_id)和未识别用户(user_id),而用户标识属性有四种:会员卡号(member_id),手机(mobile),支付宝账号(alipay_id),京东帐号(jd_id),订单号或事务ID(tx_id),订单时间(tx_timestamp);其中,会员(mid)和用户(same_as_id)是需要用同一用户身份识别算法来更新的。
表1
mid |
same_as_id |
user_id |
member_id |
mobile |
alipay_id |
jd_id |
tx_id |
tx_timestamp |
1001 |
1 |
1 |
1001 |
13012345678 |
abc@qq.c |
|
101 |
20180105 |
|
3 |
41 |
|
13000000311 |
|
xyz@163.c |
300 |
20180207 |
|
1 |
99 |
|
|
abc@qq.c |
|
715 |
20180305 |
系统为r生成两个全局唯一的ID:r.user_id和r.same_as_id。
参照上述表1,r.user_id为第一用户记录(例如未识别用户),作为r的标识的全局唯一的ID;r.same_as_id为第一用户记录的第二用户标识信息,在进行比较后将进行更新。找到所有第二用户记录{u}(第二用户记录的集合),其中u的UAL属性值与r的UAL属性值相交不为空。
在一些实施例中,上述第二标识确定模块300包括第一单元310(未示出)、第二单元320(未示出)和第三单元330(未示出)。其中,在第一单元310根据每个第二用户记录的第二用户标识信息将所述一个或多个第二用户记录分成一个或多个记录组,其中,每个记录组中的第二用户记录具有相同的第二用户标识信息;第二单元320根据每个记录组与所述第一用户记录的匹配度信息,从所述一个或多个记录组中去确定与所述第一用户记录相匹配的优选记录组;第三单元330将所述第一用户记录中的第二用户标识信息更新为所述优选记录组中第二用户记录的第二用户标识信息。在一些实施例中,系统首先筛选用户属性信息交集非空的用户记录,再根据筛选得到的用户记录计算上述匹配度信息,以节约计算资源和提高系统的操作效率。
其中,在一些实施例中,上述第二单元320还包括第二一组件321(未示出)和第二二组件322(未示出)。第二一组件321确定每个记录组与所述第一用户记录的匹配度信息;第二二组件322根据所述匹配度信息从所述一个或多个记录组中去确定与所述第一用户记录相匹配的优选记录组。
例如,接上例,设定pi为一个或多个记录组;上述匹配度信息也可表述为相似度信息。按照u.same_as_id的不同取值将集合{u}划分成k个划分,例如p1,…,pk。用户映射表中已经更新的u.same_as_id表示已经完成同一用户识别的用户身份id,不同的u.same_as_id取值表示不同的已识别的用户。记用于计算相似度(或匹配度)的函数为f,系统计算r与每个pi的相似度,并用最大相似度max(f)的pi.same_as_id赋给r.same_as_id。在此,根据相似度找到用户身份映射表中存在的最可能的与r是同一用户的用户,并通过更新r.same_as_id,赋予r(第一用户记录)新的身份id(第二用户标识信息),并将其纳入用户身份映射表中。
在一些实施例中,第二一组件321根据每个记录组中的第二用户记录生成该记录组对应的虚拟用户记录,其中,该虚拟用户记录中的用户属性信息基于该记录组中各第二用户记录的用户属性信息确定;并计算所述虚拟用户记录与所述第一用户记录的第一匹配度信息,以作为该记录组与所述第一用户记录的匹配度信息。
例如,参考图2示出的具体实施流程,系统为每一个pi构建一个虚拟用户,并计算r(第一用户记录)与每个pi的相似度,并用最大相似度max(f)对应的pi.same_as_id赋给r.same_as_id。在此,根据相似度找到用户身份映射表中存在的最可能的与r是同一用户的用户,并通过更新r.same_as_id,赋予r新的身份id,并将其纳入用户身份映射表中。
其中,为确保获取的该虚拟用户记录中的用户属性信息的可靠性,在一些实施例中,基于该记录组中各第二用户记录的用户属性信息确定所述该虚拟用户记录中的用户属性信息的方式,为以下至少任一项:
-该虚拟用户记录中的用户属性信息由该记录组中各第二用户记录按用户属性信息统计确定;
-该虚拟用户记录中的用户属性信息由该记录组中各第二用户记录按用户属性信息加权统计确定,其中,各用户属性信息在第二用户记录中的权重信息与该第二用户记录所属的渠道信息相关;
-该虚拟用户记录中的用户属性信息基于该记录组中各第二用户记录的用户属性信息组合而得。
在一些实施例中,上述第二一组件321对于每个记录组,计算该记录组中各第二用户记录与所述第一用户记录的第二匹配度信息,并根据该记录组对应的各第二匹配度信息确定该记录组与所述第一用户记录的匹配度信息。例如,各第二匹配度信息中的最大值确定该记录组与所述第一用户记录的匹配度信息,从而遴选匹配度最高的第二用户记录以确保匹配结果的可靠性。
在此基础上,在一些实施例中,该记录组与所述第一用户记录的匹配度信息,是根据该记录组中各第二用户记录对应的权重信息及第二匹配度信息加权确定的。由于同一组用户属性信息的不同属性值对上述记录组与所述第一用户记录的匹配度信息的影响可能不同,为体现这种影响以进一步提升用户记录匹配操作的准确度,计算该记录组与所述第一用户记录的匹配度信息时引入了各第二用户记录对应的权重信息。例如,在一些实施例中,所述第二用户记录对应的权重信息与该第二用户记录对应的事务数据的已完成时间信息负相关。例如,越近完成的事务,其对应的用户记录的权重越高;距离当前时间越久的交易中所使用的ID在相似度计算中的影响度越小。其中,所述已完成时间信息为“当前时间-交易时间”。例如,某个ID出现的频度,越多越稳定,说明该ID是可以稳定的标识一个用户的;又例如,某个ID出现在越远的过去,且最近不再使用,权重越低,说明该ID可能不再使用了。
在一些实施例中,为便于操作,第二标识确定模块300计算每个第二用户记录与所述第一用户记录的第三匹配度信息,根据所述第三匹配度信息确定所述一个或多个第二用户记录中与所述第一用户记录相匹配的优选第二用户记录,并将所述第一用户记录中的第二用户标识信息更新为所述优选第二用户记录的第二用户标识信息。其中,系统计算每个第二用户记录分别与第一用户记录的第三匹配度信息,并基于这些第三匹配度信息,从中优选一个或者多个第二用户记录,例如选取该第三匹配度信息最高的一个后者多个第二用户记录作为优选第二用户记录。在一些实施例中,优选第二用户记录的选取方式为:选取第三匹配度信息最高的一项或若干项第二用户记录作为优选第二用户记录;在另一些实施例中,优选第二用户记录的选取方式为:选取第三匹配度信息高于预设阈值的一项或若干项第二用户记录作为优选第二用户记录。
在一些实施例中,第一模块100从新增事务数据中抽取用户属性信息以生成对应的第一用户记录,其中,所述第一用户记录包括用户属性信息;并在所述第一用户记录中添加为其新分配的、全局唯一的第一用户标识信息和第二用户标识信息。例如,系统首先从数据库中获取新增的事务数据,对于每条事务数据生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和与该用户标识相关的属性信息存放到用户身份映射表。
其中,在计算用户记录的相似度(或匹配度)的过程中,乃至整个身份识别过程中,相似度计算逻辑的确定至关重要。图3a示出一种相似度计算逻辑函数。结合图4a示出的具体实例,其中,A是表示u1.UAL的一个向量(某个ID存在的话,则图4a中对应的向量位置为1),B是表示u2.UAL的一个向量。两个待比较的用户u1和u2为两个权向量,第i个属性值的权重Wi表示u1和u2中第i个属性值(如表1中的id)的重要性,Wi是按照出现的频次进行计算的,是函数中的一个参数;每个UAL属性值的权重可以定义为该属性值在某个用户组中所有用户对应的属性中出现的次数;也可以定义为[0,1]之间的一个值,例如,以1/(当前时间-交易时间)作为一个参数,用于表示距离当前时间越久的交易中所使用的ID在相似度计算中的影响度越小。具体而言,对于图4a中的实例,假设U001,U002和U003已经被识别映射成为同一个用户S001,当一个新用户交易被插入用户身份映射表后(即U004),U004和S001的相似度计算过程:假设各种ID类型的权重均为1,并按照ID的出现频率求和,生成最终的向量S001=(2,2,1,1,1),这里向量中的第一位2代表id1=1出现了两次,向量中其他位置的值依此类推;相似地,我们可以得到U004=(0,0,0,1,1)。然后,采用图3a中的相似度公式计算得出f=sim(S001,U004)=0.42。
而图3b给出了另一种计算相似度的方法。结合图4b示出的具体实例,其中,u1.UAL和u2.UAL表示用户u1和u2的属性集合,|u1.UAL u2.UAL|表示u1和u2相同的属性数量,而|u1.UAL||u2.UAL|则表示u1和u2有多少不同属性。f值越大,说明u1和u2越有可能为同一用户,反之则越不可能为同一用户。具体而言,对于图4b中的实例,与图4a不同之处在于每种ID仅按照其是否出现设置0或1。对于S001而言,由于id1至id5都出现在了集合S001={U001,U002,U003}中,因此S001=(1,1,1,1,1)。然后,采用图3b中的相似度计算方法可以得到f=sim(S001,U004)=0.4,其中分子上的2表示S001和U004都有相同的id4和id5,而从id1至id5出现的所有不同的ID值为5。
需要强调的一点是,相似度的计算逻辑可以依据实际业务场景中的UAL含义进行定义,并设置一个阈值来确定一个新用户r应该与哪个已知用户视为同一个用户。对于阈值,系统可以按照不同的阈值进行计算,并分析通过人工校验的方式确定一个合理的阈值;例如,一种可行的阈值选择方法为:(1)将历史数据分成两组,用第一组数据生成统计,确定一个阈值;(2)用该阈值应用于第二组数据,采用人工分析计算得出的同一用户的结果;(3)如果发现很多明显是同一用户的却被识别为不同的用户,则减小阈值,反之则增加阈值。
在一些实施例中,在确定上述第一用户记录的第二用户标识信息后,系统基于更新后的第一用户记录进行信息更新,以便进一步的数据处理和后续的用户记录匹配。相应地,上述系统还包括信息更新模块400,参考图8。信息更新模块400基于更新后的所述第一用户记录更新所述用户身份映射表;或者,基于更新后的所述第一用户记录更新对应用户所属的人群包信息。其中,标签是符合一些事务属性的人的集合,而人群包是通过标签组合得到的人的集合。
参考图6,本申请与其他数据管理平台相比,该系统中新增了三个子功能以完成同一用户识别功能。
-唯一标识赋值功能:首先,定时从数据库中获取新增的事务数据(例如,用户的交易记录或非交易记录),对于每条事务数据,该模块会为生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和用于用户识别相关的属性信息存放到用户身份映射表。
-同一用户识别功能:当用户身份映射表更新之后,同一用户识别模块会执行识别算法并将哪些用户事务是属于同一用户的信息更新到身份映射表中。
-用户信息增强:对于人群应用,系统会基于已识别出的同一用户映射关系,对人群包执行信息增强操作。例如,导出的人群包可能未考虑一些渠道的属于同一用户的行为信息(假设在没有同一用户映射关系的情况下),因此通过同一用户映射关系可以将其他渠道的同一用户的信息合并到人群包中;对于用户行为分析和挖掘,系统会基于已识别出的同一用户映射关系,从数据库中选择出全量用户行为数据,而同一用户映射关系在此过程中可以确保在最小程度上不遗漏跨渠道和跨品牌的同一用户的全部行为数据。
在这种用于识别不同渠道事务中的相同用户的系统中,包括唯一标识赋值模块,用于对从数据库中获取的新增的每条事务数据生成一个唯一的内部系统使用的用户标识,并将更新的用户标识和用于用户标识相关的属性信息存放到用户身份映射表;同一用户识别模块,用于执行识别算法并将哪些用户事务属于同一用户的信息更新到身份映射表中;用户信息增强模块,用于基于已识别的同一用户映射关系对人群包执行信息增强操作。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
图9示出了可被用于实施本申请中所述的各个实施例的示例性系统;
如图9所示在一些实施例中,系统500能够作为各所述实施例中的任意一个用户识别系统或用于识别不同渠道事务中的相同用户的设备。在一些实施例中,系统500可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备520)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器505)。
对于一个实施例,系统控制模块510可包括任意适当的接口控制器,以向(一个或多个)处理器505中的至少一个和/或与系统控制模块510通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块510可包括存储器控制器模块530,以向系统存储器515提供接口。存储器控制器模块530可以是硬件模块、软件模块和/或固件模块。
系统存储器515可被用于例如为系统500加载和存储数据和/或指令。对于一个实施例,系统存储器515可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器515可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块510可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备520及(一个或多个)通信接口525提供接口。
例如,NVM/存储设备520可被用于存储数据和/或指令。NVM/存储设备520可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(Hard Disk,HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备520可包括在物理上作为系统500被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备520可通过网络经由(一个或多个)通信接口525进行访问。
(一个或多个)通信接口525可为系统500提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统500可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器505中的至少一个可与系统控制模块510的一个或多个控制器(例如,存储器控制器模块530)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器505中的至少一个可与系统控制模块510的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器505中的至少一个可与系统控制模块510的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器505中的至少一个可与系统控制模块510的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统500可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统500可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统500包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。