一种用户表征方法和系统与流程

文档序号:29222766发布日期:2022-03-12 12:44阅读:132来源:国知局
一种用户表征方法和系统与流程

1.本说明书涉及计算机领域,特别涉及一种用户表征方法和系统。


背景技术:

2.当前的社会,随着信息技术的发展,越来越多的用户服务都通过互联网等各种网络平台提供给用户,用户在各种平台产生的各种各样的行为在一定程度上反映了用户的习惯和偏好。为了更好地为用户提供个性化以及更贴近用户使用习惯及个人需求的服务,需要对用户的行为数据进行分析以获取用户的特征,而少量场景及短时间的用户数据不足以全面真实地反映用户的行为习惯,需要融合尽量多的场景以及长周期的用户行为数据才能得出用户的综合表征。数据量巨大,对计算能力要求很高,甚至于无法实现,且算法复杂,使得实现难度很大且效果难以保证。
3.因此,希望提供一种用户表征方法和系统。


技术实现要素:

4.本说明书实施例之一提供一种用户表征模型训练方法。所述用户表征模型训练方法包括:获取包括多个时间块的时间序列,所述多个时间块中的每个时间块包括用户在一个时段内的行为数据;通过特征提取网络得到所述多个时间块的特征表示;确定所述多个时间块中的遮罩时间块;基于所述时间序列中除所述遮罩时间块外的其余时间块的特征表示,通过编码网络得到所述遮罩时间块的编码表示以及所述时间序列的整体向量表示;基于当前时间序列的整体向量表示和当前时间序列的前面时间序列或后面时间序列的整体向量表示的相似性,以及所述遮罩时间块的编码表示和所述遮罩时间块对应的特征表示的相似性,调整所述编码网络的参数。
5.本说明书实施例之一提供一种用户表征方法。所述用户表征方法包括:获取包括多个时间块的时间序列,所述多个时间块中的每个时间块包括用户在一个时段内的行为数据;基于所述时间序列,通过特征提取网络得到所述多个时间块的特征表示;基于所述多个时间块的特征表示,通过编码网络得到所述用户的向量表示。
6.在一些实施例中,所述用户表征方法包括:根据本技术一些实施例所述的用户标准模型训练方法训练用户表征模型,所述用户表征模型包括所述特征提取网络和所述编码网络。
7.本说明书实施例之一提供一种用户表征系统,包括获取模块、第一特征提取模块和用户表示模块;所述获取模块用于获取包括多个时间块的时间序列,所述多个时间块中的每个时间块包括用户在一个时段内的行为数据;所述第一特征提取模块用于基于所述时间序列,通过特征提取网络得到所述多个时间块的特征表示;所述用户表示模块用于基于所述多个时间块的特征表示,通过编码网络得到所述用户的向量表示。
8.本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行所述用户表征方法。
附图说明
9.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
10.图1是根据本说明书一些实施例所示的用户表征系统的应用场景示意图;
11.图2是根据本说明书一些实施例所示的用户表征系统的示意图;
12.图3是根据本说明书一些实施例所示的用户表征方法的示例性流程图;
13.图4是根据本说明书一些实施例所示的用户表征方法的示例性流程图;
14.图5是根据本说明书一些实施例所示的用户表征模型训练方法的示例性流程图;
15.图6是根据本说明书一些实施例所示的用户表征模型训练方法的示例性流程图;
16.图7a、图7b是根据本说明书一些实施例所示的时间块序列化的示意图。
17.图8是根据本说明书一些实施例所示的用户表征模型应用的示例性流程图。
具体实施方式
18.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
19.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
20.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
21.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
22.图1是根据本说明书一些实施例所示的用户表征系统的应用场景示意图。
23.如图1所示,在一些实施例中,系统100可以包括用户终端110、第一计算设备120、第二计算设备130、网络140、存储设备150。
24.用户终端110可以提供与用户相关的信息和数据。用户终端110可以包括各种平台,例如,手机客户端、pc客户端、基金、期货、港美股等多个平台的所有用户的终端。在一些实施例中,使用用户终端110的可以是一个或多个用户,可以是直接使用服务的用户,也可以是其他相关用户。在一些实施例中,用户终端110可以是移动设备110-1、平板计算机110-2、膝上型计算机110-3、台式计算机等其他具有输入和/或输出功能的设备中的一种或其任意组合。在一些实施例中,用户终端110可以通过应用程序(例如,客户端等)或网页应用(例
如,微信小程序等)等各种方式,使用服务并产生与用户相关的数据。在一些实施例中,与用户相关的数据可以是包括用户的行为数据在内的各种用户数据。在一些实施例中,用户终端110可以通过网络140和系统100中的其他组件(例如,第一计算设备120、第二计算设备130、存储设备150)传输与用户相关的信息和数据。
25.第一计算设备120和第二计算设备130是具有计算和处理能力的系统,可以包括各种计算机,比如服务器、个人计算机,也可以是由多台计算机以各种结构连接组成的计算平台。在一些实施例中,第一计算设备120和第二计算设备130可以在云平台上实现。例如,云平台可以包括私有云、公共云、混合云、社区云、分布式云、跨云、多云等其中一种或几种的组合。在一些实施例中,第一计算设备120与第二计算设备130可以是同一个设备,也可以是不同的设备。
26.第一计算设备120和第二计算设备130中可以包括一个或多个子处理设备(例如,单核处理设备或多核多芯处理设备),处理设备可以执行程序指令。仅作为示例,处理设备可以包括各种常见的通用中央处理器(central processing unit,cpu),图形处理器(graphics processing unit,gpu),微处理器,特殊应用集成电路(application-specific integrated circuit,asic),或其他类型的集成电路。
27.第一计算设备120可以处理与用户相关的信息和数据。在一些实施例中,第一计算设备120可以执行如本说明书一些实施例所示的用户表征方法,得到能够代表具体用户及其行为等的用户表示,例如,用户的向量表示等。在一些实施例中,第一计算设备120可以包括用户表征模型,第一计算设备120可以通过用户表征模型对用户的行为数据等进行处理,以获取用户表示。在一些实施例中,第一计算设备120可以从第二计算设备130获取训练好的用户表征模型。在一些实施例中,第一计算设备120可以将用户相关的信息和数据,以及对应的用户表示等发送至第二计算设备130,以用于模型更新。在一些实施例中,第一计算设备120可以通过网络140和系统100中的其他组件(例如,用户终端110、第二计算设备130、存储设备150)传输与用户相关的信息和数据。在一些实施例中,第一计算设备120可以直接与第二计算设备130连接并交换信息和/或数据。
28.第二计算设备130可以用于模型训练。在一些实施例中,第二计算设备130可以执行如本说明书一些实施例所示的用户表征模型训练方法,得到用户表征模型。在一些实施例中,第二计算设备130可以从用户终端110获取与用户相关的信息和数据作为模型的训练数据。在一些实施例中,第二计算设备130可以从第一计算设备120获取用户表示及与之对应的用户信息和/或数据,用于更新模型。在一些实施例中,第一计算设备120和第二计算设备130也可以是同一个计算设备。
29.网络140能够促进信息和/或数据交换。在一些实施例中,用户表征系统100的一个或多个组件(例如,用户终端110、第一计算设备120、第二计算设备130、存储设备150)可以通过网络140与用户表征系统100的一个或多个组件之间交换信息和/或数据。网络140可以包括公共网络(如互联网)、私人网络(例如,局域网(lan)、广域网(wan))等)、有线网络(如以太网)、无线网络(例如,802.11网络、无线wi-fi网络等)、蜂窝网络(例如,长期演进(lte)网络)、帧中继网络、虚拟专用网络(vpn)、卫星网络、电话网络、路由器、集线器、服务器计算机等其中一种或几种组合。在一些实施例中,网络140可以是有线网络或无线网络中的任意一种或多种。
30.存储设备150可以存储信息和/或数据。在一些实施例中,存储设备150可以存储系统100中其它组件(例如,用户终端110、第一计算设备120、第二计算设备130)产生或发送的各种信息和/或数据,例如,用户的行为数据、用户表示、用户表征模型等。在一些实施例中,存储设备150可以存储第一计算设备120和/或第二计算设备130可以执行或使用的数据和/或指令,以执行本说明书中描述的示例性方法。在一些实施例中,存储设备150可包括大容量存储器、可移除存储器、易失性读写存储器、只读存储器(rom)等其中一种或几种的组合。在一些实施例中,存储设备150可以通过本说明书中描述的云平台实现。例如,云平台可以包括私有云、公共云、混合云、社区云、分布式云、跨云、多云等其中一种或几种的组合。
31.在一些实施例中,存储设备150可以通过网络140与用户表征系统100中的一个或多个组件(例如,用户终端110、第一计算设备120、第二计算设备130等)之间进行数据传输。在一些实施例中,存储设备150可以是第一计算设备120和/或第二计算设备130的一部分,也可以是独立的,与第一计算设备120和/或第二计算设备130直接或间接相连。
32.应该注意的是,上述描述仅出于说明性目的而提供,并不旨在限制本说明书的范围。对于本领域普通技术人员而言,在本说明书内容的指导下,可做出多种变化和修改。可以以各种方式组合本说明书描述的示例性实施例的特征、结构、方法和其他特征,以获得另外的和/或替代的示例性实施例。例如,存储设备150可以是独立的存储器或存储器阵列,或者通过存储服务器来实现。然而,这些变化与修改不会背离本说明书的范围。
33.图2是根据本说明书一些实施例所示的用户表征系统200的示例性模块图。在一些实施例中,用户表征系统200可以部署在处理设备上,例如,第一计算设备120或第二计算设备130。
34.如图2所示,在一些实施例中,用户表征系统200可以包括获取模块210、第一特征提取模块220和用户表示模块230。
35.在一些实施例中,获取模块210可以用于获取包括多个时间块的时间序列。在一些实施例中,多个时间块中的每个时间块可以包括用户在一个时段内的行为数据。
36.在一些实施例中,获取模块210可以包括行为数据单元、时间块单数单元和时间序列单元。行为数据单元可以用于获取预设时间长度内用户的行为数据;时间块单数单元可以用于确定时间块的时间长度和移动步长;时间序列单元可以用于基于时间块的时间长度和移动步长划分预设时间长度内的行为数据,得到包括多个时间块的时间序列。
37.在一些实施例中,第一特征提取模块220可以用于基于时间序列,通过特征提取网络得到多个时间块的特征表示。
38.在一些实施例中,可以通过特征提取网络,基于稀疏卷积得到多个时间块的特征表示。
39.在一些实施例中,用户表示模块230可以用于基于多个时间块的特征表示,通过编码网络得到用户的向量表示。
40.在一些实施例中,用户表示模块230可以包括位置表示单元和向量表示单元。位置表示单元可以用于确定多个时间块中的每个时间块的位置表示;向量表示单元可以用于基于多个时间块中的每个时间块的位置表示和多个时间块的特征表示,通过编码网络得到时间序列的整体向量表示作为用户的向量表示。
41.在一些实施例中,特征提取网络和编码网络可以包括在用户表征模型内,可以通
过用户表征模型训练系统来队该模型进行训练。
42.在一些实施例中,用户表征模型训练系统可以包括与用户表征系统中相同的一些模块,例如,获取模块210、第一特征提取模块220。
43.在一些实施例中,用户表征模型训练系统还可以包括遮罩时间块确定模块、整体向量确定模块和网络参数调整模块。遮罩时间块确定模块可以用于确定多个时间块中的遮罩时间块;整体向量确定模块可以用于基于时间序列中除遮罩时间块外的其余时间块的特征表示,通过编码网络得到遮罩时间块的编码表示以及时间序列的整体向量表示;网络参数调整模块可以用于基于当前时间序列的整体向量表示和当前时间序列的前面时间序列或后面时间序列的整体向量表示的相似性,以及遮罩时间块的编码表示和遮罩时间块对应的特征表示的相似性,调整编码网络的参数。
44.在一些实施例中,网络参数调整模块还可以用于基于当前时间序列的整体向量表示和当前时间序列的前面时间序列或后面时间序列的整体向量表示的相似性,以及遮罩时间块的编码表示和遮罩时间块对应的特征表示的相似性,调整特征提取网络的参数。
45.在一些实施例中,整体向量确定模块可以用于确定多个时间块中的每个时间块的位置表示;基于多个时间块中的每个时间块的位置表示和其余时间块的特征表示,通过编码网络得到遮罩时间块的编码表示以及时间序列的整体向量表示。
46.图3是根据本说明书一些实施例所示的用户表征方法的示例性流程图。
47.如图3所示,流程300包括下述步骤。在一些实施例中,流程300可以由用户表征系统200实现。
48.步骤310,获取包括多个时间块的时间序列。这些时间块中的每个时间块包括用户在一个时段内的行为数据。在一些实施例中,该步骤可以由获取模块210执行。
49.时间单位是时间的度量单位,例如,秒、分钟、小时、天等。时间块是指由一个或多个时间单位组成的时间段,一般来说多个时间单位可以是连续的,时间块可以由矩阵表示,例如,时间块可以由2行60列的矩阵表示,每一个单位时间可以是1秒,1行有60列,即1行包括60秒,代表一分钟,那么这个行列式就代表着2分钟的时间块;每一个单位时间可以是1分钟,1行有60列,即一行包括60分钟,代表一个小时,那么这个行列式代表两个小时的时间块。
50.用户行为数据是指与用户在平台上的操作相关的数据。例如,用户阅读资讯新闻,用户行为数据可以包括阅读资讯新闻的主题、开始的时间、持续时间、点击某一类信息的次数等。又例如,用户观看电影,用户行为数据就可以包括电影的主题、简介、演员表、观看时间等。在一些实施例中,时间块可以包括在一个时段内的用户行为数据。例如,时间块是2行60列的矩阵,其中一个时间单位是1秒,则该时间块表示连续的两分钟时间,矩阵中的每一个元素包括这两分钟中1秒内的用户行为数据,那么该时间块就可以包括这2分钟内的用户行为数据。在一些实施例中,用户可以包括多个平台(例如,手机客户端、pc客户端、基金、期货、港美股等)的所有用户,用户的行为数据可以包括用户在一个或多个平台中的行为数据。
51.在一些实施例中,用户行为触发后一般以较短的时间单位的级别记录用户行为数据,在一个时间长度中例如一天,在较短的时间单位内(例如,1秒),可能并不是每一个时间单位内都会产生用户行为数据,因此可以将多个较短时间单位(例如,1秒)的行为数据进行
归并,得到一个相对长一些的时间单位的行为数据。例如,可以将时间块的时间单位设定为相对较长的时间单位(例如,1分钟),即时间块内的每一个时间单位内都包含了这个较长的时间单位内(例如,1分钟)的用户行为数据。例如,一个2行60列的矩阵代表了2个小时的时间块,其包括了2个小时内的用户行为数据,其中时间块的时间单位设定为1分钟,从而减少了数据的长度,进而减少数据占用的内存量以及计算量。
52.时间序列是指由时间块组成的序列,可以用矩阵表示。也就是说,一个时间序列可以包含其所有时间块内的用户行为数据。在一些实施例中,时间序列可以包括至少一个时间块(例如,24个、48个等),其长度就是包含的时间块的数量。
53.在一些实施例中,可以通过多种方法获取本说明书中所述的包括多个时间块的时间序列。例如,基于预设时间长度内的用户数据、基于时间块的标签等。在一些实施例中,可以通过用户终端和/或存储设备获得时间序列。在一些实施例中,可以在存储设备中以时间块为单位存储用户行为数据,并使用标签(例如,时间标签、特征标签等)标识时间块,则可以直接从存储设备提取根据标签获取包括多个时间块的时间序列。
54.在一些实施例中,时间块的参数可以包括时间单位、时间长度、移动步长等。时间块的时间单位在前文已进行了说明,时间块的时间单位可以根据实际需求或经验来设置。时间块的时间长度是指时间块包含的时段的长度,也可以用时间块内包含的时间单位的数量来表示,例如,一个时间块的时间单位是1分钟,时间长度是30,这个时间块的时间长度为30分钟(例如,10:30-11:00)。移动步长是指时间块沿时间坐标方向移动1次的距离,表示时间块沿着时间流逝方向移动的时间长度,可以用该移动的时间长度内包含的时间单位的数量来表示,例如,一个时间块的时间长度为30分钟,其时间单位是1分钟,移动步长为20,移动的起始时间为10:30-11:00,则该时间块移动一个移动步长表示该时间块内包含的时间段向后移了20分钟,即10:50-11:10。在一些实施例中,如果用矩阵表示时间块,则移动步长可以从时间块中任意一行随着时间块移动一次的距离得到,例如,可以用时间块移动的行数来表示。
55.在一些实施例中,可以获取预设时间长度内用户的行为数据,预设时间长度可以是预先确定的一个时段,例如,1小时、2小时、1天、1周等。在一些实施例中,用户的原始行为数据可以是日志结构的数据,这些数据中通常存在大量冗余与无效的信息,例如,长串的uid、占位符等,需要从中去除这些冗余与无效的信息,来得到其中的有效字段。有效字段是可以有效反映用户行为及操作的数据字段,例如,时间、主题、关键字等。用户数据中还可以包括一些结构复杂、无法直接获取其含义的数据,例如,底层埋点数据等,在一些实施例中,可以将这类数据释义,即转换为可识别的信息,例如,中文释义等。在一些实施例中,用户的原始行为数据可以在经过去除冗余无效信息、数据释义等一系列操作后,从中筛选出有效字段并存储为结构化数据。
56.在一些实施例中,可以确定预设时间长度内包含的时间块的时间长度和移动步长,例如,基于预设时间长度的长短、基于资源数量等。在一些实施例中,可以基于预设时间长度的长短确定预设时间长度内包含的时间块的时间长度和移动步长,例如,预设时间长度为一天24小时,时间长度和移动步长表示的时间长度可以分别为30分钟、15分钟;预设时间长度为1小时,时间长度和移动步长表示的时间长度可以分别为5分钟、3分钟。
57.在一些实施例中,可以基于资源数量确定时间块的时间长度和移动步长,例如,资
源充足的时候,时间长度和移动步长的值可以较小,资源受限的时候,时间长度和移动步长的值可以较大。
58.在一些实施例中,可以基于时间块的时间长度和移动步长划分预设时间长度内的行为数据,得到包括多个时间块的时间序列。以预设时间长度,即时间序列取一天24小时为例,如果时间块的时间单位是1秒,时间长度为60,移动步长为60,则一个时间块表示1分钟时间长度,该时间序列可以划分为包括24*60个时间块;如果时间单位是1分钟,时间长度为60,移动步长为60,则一个时间块表示一小时时间长度,那么该时间序列就包含24个时间块,即代表一天的用户行为数据的时间序列的长度就是24。在一些实施例中,时间长度和移动步长取值较大,可以减少数据的长度,进而减少数据占用的内存量以及计算量。
59.图7a、图7b是根据本说明书一些实施例所示的时间块序列化的示意图。
60.以对一天长度的用户数据进行归并为例,系统记录用户行为数据时,通常按秒记录,因此最长时间序列为24*60*60=86400,过长的序列可能导致使用超过了处理能力。因此,可以对序列进行分钟级归并,即以分钟为单位进行归并,最长序列被缩短为24*60=1440,但仍然需要极大的计算能力。在一些实施例中,可以通过进一步定义时间块的时间长度与时间块的移动步长,来降低一段时间内的最长时间序列。如图7a所示,在一些实施例中,对进行分钟级归并之后,可以规定时间块时间长度为60,时间块移动步长为60,这些前后相连的时间块组成的序列可以认为实现了序列化,即组成了时间序列,该时间序列一共包括了24个时间块,各个时间块前后连接,彼此不重叠。在一些实施例中,可以将移动步长设置为小于时间长度,则各个时间块之间可以彼此重叠,如图7b所示,时间块时间长度设为60,时间块移动步长设为30,则时间序列包括48个时间块。
61.步骤320,基于时间序列,通过特征提取网络得到多个时间块的特征表示。在一些实施例中,该步骤可以由第一特征提取模块220执行。
62.时间块的特征表示是指该时间块表示的时间段内用户的行为数据和/或行为数据特征(例如,阅读次数多、观看时间长等特征)的表示数据,可以有多种形式,例如,特征向量、文字描述、标签等。在一些实施例中,可以使用特征向量作为时间块的特征表示,该特征向量可以用于表示该时间块内包含的用户行为数据和/或用户行为数据特征。
63.在一些实施例中,用户的行为数据的数据量较大,特别是用户在多个平台的行为数据,且对于长时段的用户行为数据,对应得到的时间序列的数据维度(例如,矩阵的维度,具体可以是指向量的个数)较大,数据处理的效率和效果都不易达到较优。基于此,时间块的特征表示可以为低维特征向量,例如,可以对时间块的用户行为数据进行数据处理,以使得时间块的特征表示可以为一维的token级别的向量表示。在一些实施例中,可以将时间块内包括的多个特征向量处理后,由一个特征向量表示,从而将高维特征向量转换为低维特征向量。仅作为示例,一个时间块的时间长度为1个小时,时间单位为1分钟,每一分钟内的用户行为数据可以由一个1*3的向量表示(例如,用户每一分钟的行为都会有大量的字段,将每一个字段用一个向量表示,再把所有字段进行池化,每一分钟得到一个1*3的向量表示,其中,3表示向量长度),则该时间块的用户行为数据可以表示为一个60*3的矩阵,可以通过特征提取、网络模型处理等方式,基于60*3的矩阵得到为1*3矩阵(也即1*3的向量),即将60维的特征向量表示转换为1维的特征向量表示。
64.在一些实施例中,可以通过多种手段(例如,特征提取网络等)获取到时间块的特
征表示。
65.在一些实施例中,可以通过特征提取网络,基于稀疏卷积得到多个时间块的特征表示。关于通过特征提取网络获取时间块的特征表示的更多内容,可以参见图6步骤620,在此不再赘述。
66.步骤330,基于多个时间块的特征表示,通过编码网络得到用户的向量表示。在一些实施例中,该步骤可以由用户表示模块230执行。
67.用户的向量表示是用于刻画用户画像或表征用户整体特征的向量表示。用户的向量表示可以在一定程度上反映用户在一段时间内的行为等的共性和/或特征。例如,用户在某时间段内在多个平台内都点击了某只股票的相关内容,又或者点击这支股票的相关内容的次数超过阈值,则可以说明在该时间段内用户较为关注这支股票。
68.在一些实施例中,可以基于多个时间块的特征表示,通过各种方式(例如,神经网络等)得到用户的向量表示。在本说明书的一些实施例中,可以通过编码网络实现基于多个时间块的特征表示得到用户的向量表示。其中,编码网络可以包括nn、cnn、rnn等各种可以实现编码的网络或模型。特别地,编码网络可以包括至少一个transformer encoder层。
69.在一些实施例中,可以确定多个时间块中的每个时间块的位置表示,时间块的位置表示是指多个时间块中每个时间块在时间序列中的位置的表示,可以体现出每个时间块与其它时间块的相对位置关系,可以用标签、序列号、id等来表示。在一些实施例中,可以用单独的字段作为时间序列中每个时间块的位置表示。在一些实施例中,可以在时间序列中每个时间块的特征向量上加一个字段,该字段中的值为该时间块在时间序列中的位置编号。又例如,在由组成时间序列的所有时间块的特征向量组成的特征向量序列中(例如,头部或尾部)添加一个字段,其中记录了时间序列中以当前排列顺序排列的时间块的位置关系,例如,当前组成时间序列的时间块为a、b、c,按照a、b、c的顺序其对应的位置表示可以是0、1、2,则头部添加的字段内容可以为“0、1、2”。
70.在一些实施例中,确定时间序列中多个时间块中的每个时间块的位置表示后,可以基于多个时间块中的每个时间块的位置表示和多个时间块的特征表示,通过编码网络(例如,至少一个transformer encoder层)得到时间序列的整体向量表示作为用户的向量表示。
71.在一些实施例中,上述用户表征方法可以通过用户表征模型实现,即通过用户表征模型,基于包括多个时间块的时间序列得到用户的向量表示,该用户表征模型可以包括本说明中一些实施例所述的特征提取网络和编码网络。关于用户表征模型的训练可参见图5,在此不再赘述。
72.本说明书一些实施例,通过将一段时间内的用户行为数据转化为用户的向量表示,可以对长周期的行为数据进行建模,同时减少了数据储存量以及计算量。得到的用户的向量表示可以用于各种与用户相关的数据处理任务,例如,用户行为预测、用户分类、用户间关系预测等。在一些实施例中,可以通过各种数据处理方法(例如,规则推理算法、通过网络模型处理等)实现数据处理任务。
73.图4是根据本说明书一些实施例所示的用户表征模型应用的示例性流程图。在本实施例中,仅为了说明方便,以对用户在一天内的行为数据进行处理得到用户的向量表示为例进行说明,一天也可以替换为其它任何合适的时间长度。其中,步骤410-步骤450对用
户行为数据获取和序列化进行了示例性说明,步骤460对用户表征模型的训练进行了示例性说明,步骤470对通过用户表征模型得到用户的向量表示的应用进行了示例性说明。
74.在一些实施例中,步骤410-步骤450可以由获取模块210执行。
75.步骤410,从数据源中拉取一天用户的平台行为数据。
76.在一些实施例中,用户的全平台行为数据包括用户在手机客户端、pc客户端、基金、期货、港美股等多个平台的行为数据。在一些实施例中,全平台行为日志数据涉及到复杂的多元场景,可以被储存在不同的地方。在一些实施例中,可以从一个或多个数据源中获取用户的行为日志数据即得到用户的行为数据,这些数据源可以是各种文件系统,例如,hdfs(hadoop distributed file system,可以简称hadoop)等分布式文件系统、集中存储的文件系统等。
77.在一些实施例中,方法可以包括步骤420,对用户行为数据进行处理。在一些实施例中,步骤420可以由获取模块210完成。
78.在一些实施例中,可以将用户的行为数据进行处理,例如,结构化处理,然后持久化,即储存在数据存储空间,例如,hdfs中。
79.在一些实施例中,对行为数据进行处理可以包括以下中的一种或多种:整合所有端及业务线的用户行为;对用户行为埋点进行中文释义,使其可读;对用户行为所涉及到的物品进行溯源,其中源头可以是各种类型,例如,问句、资讯、策略等;依据埋点信息与物品信息,过滤筛选提取出有效字段并结构化数据。在一些实施例中,筛选有效字段的具体标准,可以根据下游应用与试验效果进行判断。
80.在一些实施例中,由于用户的原始行为数据的结构中通常存在大量无效和冗余信息(例如,uid、占位符等),可以对用户的原始行为数据进行有效字段提取,从而得到有效字段作为用户的行为数据。
81.在一些实施例中,用户行为数据可以通过埋点的方法进行采集,由于底层埋点数据相当复杂,存在着大量没有信息内容的埋点,可以将埋点解码释义为中文含义,再依靠业务经验筛选出有效字段。其中,埋点是指在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑。
82.在一些实施例中,时间块中可以包括占位符、用户行为数据、其他程序性数据等各种数据,可以通过提取这些数据中的有效字段(例如,用户行为数据等与用户相关的数据、有实际意义的数据等)来减少结构化数据的数据量。例如,用户a阅读资讯新闻的一个行为/动作,结构化后的数据可以包括:行为/动作名称(例如,新闻阅读等)、行为/动作触发时间、资讯标识(例如,id等)、资讯主题、资讯关键字、资讯所附带的股票等。
83.步骤430,基于用户行为数据得到包括多个时间块的时间序列。
84.在一些实施例中,可以对用户行为数据(例如,结构化后的用户行为数据)进行归并(例如,分钟级别的数据扫描归并),并定义时间快的时间长度和移动步长,将时间块序列化,从而得到包括多个时间块的时间序列。数据扫描归并可以以所需的时间单位为标准,例如,小时、天、周等。
85.关于时间块、时间长度、移动步长以及时间块序列化的相关内容可以参见图3中的步骤310,在此不再赘述。
86.步骤440,从数据源中获取历史(例如,昨日)保存的用户行为数据。
87.在一些实施例中,在获取用户当天行为数据的同时,可以从数据源获取历史的用户行为数据,例如,前一天存储的结构化的用户行为数据等。在一些实施例中,历史的用户行为数据可以是预设时间长度内的历史用户行为数据,例如,从当天起两个月内的历史用户行为数据。
88.步骤450,增量合并用户行为数据。
89.在一些实施例中,可以对步骤430和440中的用户行为数据进行合并,以对当前存储的结构化的用户行为数据进行更新。在一些实施例中,可以从步骤440中获取的用户行为数据中剔除第一天的数据,依次将原本第二天、第三天......最后一天的数据,往前挪动作为新的第一天、第二天......倒数第二天的数据,并将今天的用户行为数据作为表格中最后一天的数据,然后将更新后的数据作为最新的结构化的用户行为数据进行存储。
90.步骤460,基于用户行为数据对用户表征模型进行训练。
91.在一些实施例中,可以从步骤450得到的一段历史时间内(例如,两个月)的用户行为数据中获取多个用户的抽样数据,作为训练数据对用户表征模型进行训练,训练好模型即可以基于某一长度的时间序列得到用户的向量表示。在一些实施例中,作为训练数据的用户行为数据可以是一个数据表,称为用户行为数据表,该数据表可以是已经结构化和序列化的用户行为数据。在一些实施例中,用户行为数据,即用户行为数据表,可以是一个三维的稀疏矩阵,每个维度分别代表训练数据的batch_size即一次训练所抓取的数据样本数量、时间块的个数、时间块的长度。
92.关于基于训练数据如何训练得到用户表征模型的更多内容可以参见图5,在此不再赘述。
93.在一些实施例中,可以将训练好的用户表征模型持久化,即,保存到存储空间,例如,hdfs等文件系统中。
94.步骤470,将用户行为数据的时间序列输入用户表征模型,输出用户的向量表示。在一些实施例中,步骤470可以由用户表示模块230来执行。
95.对于每一个用户,都可以通过用户表征模型得到对应的向量表示。在一些实施例中,可以将当天有行为数据的所有用户(可以称为每日全量用户)的结构化的用户行为数据(即时间序列)输入持久化的用户表征模型,输出得到的各个用户的表征,即用户的向量表示。
96.在一些实施例中,得到用户的向量表示后,可以将其存储在存储空间中,例如,hdfs等文件系统。在一些实施例中,可以存储每日全平台用户的向量表示至存储空间。
97.应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程400进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对于已结构化的日志数据,可以省略步骤420。
98.图5是根据本说明书一些实施例所示的用户表征模型训练方法的示例性流程图。如图5所示,流程500包括下述步骤。在一些实施例中,可以一次或多次执行方法500中的步骤以实现对用户表征模型的参数进行一次或多次迭代更新。
99.步骤510,获取包括多个时间块的时间序列。这些时间块中的每个时间块包括用户在一个时段内的行为数据。在一些实施例中,步骤510可以由获取模块210执行。
100.在一些实施例中,可以从一个或多个平台(例如,手机客户端、pc客户端、基金、期货、港美股等),使用各种方法获取历史的用户行为数据,然后基于历史的用户行为数据得到用户表征模型的训练数据即至少一个时间序列数据。关于如何获取用户表征模型的训练数据、如何获取时间序列的更多内容,可以参见图3步骤310、图4步骤410-450及其相关描述,在此不再赘述。
101.步骤520,通过特征提取网络得到多个时间块的特征表示。在一些实施例中,该步骤可以由第一特征提取模块220来执行。
102.对于时间序列中的每一个时间块,都可以通过特征提取网络得到对应的特征表示。在一些实施例中,特征表示可以表示为特征向量。特征提取网络可以是各种机器学习模型,例如,nn、cnn(convolutional neural networks,卷积神经网络)等。
103.在一些实施例中,考虑到时间块的数据一般是稀疏矩阵(例如,三维稀疏矩阵),可以通过特征提取网络基于稀疏卷积来获取时间块的特征表示,通过本实施例,特征提取网络可以跳过用户特征数据中的占位符等其他冗余信息。例如,1分钟内的用户行为只包括在第2秒时点击一次百度,那么用户行为数据就包括第1秒和第3-60秒的占位符,稀疏卷积就是将占位符去除。
104.在一些实施例中,时间块的特征表示可以进一步表示为低维特征向量,可以通过池化操作(例如最大池化、平均池化等)、cnn等网络层处理等方法,将高维的时间块特征表示转变为低维特征向量,例如,从60*3的矩阵变为1*3的向量。
105.关于如何通过特征提取网络得到多个时间块的特征表示的更多内容,可以参见图6步骤620,在此不再赘述。
106.步骤530,确定多个时间块中的遮罩时间块。在一些实施例中,该步骤可以由遮罩时间块确定模块来执行。
107.遮罩时间块是指作为掩码的时间块。遮罩时间块可以是动态的即动态掩码,也可以是静态的即静态掩码。其中,动态遮罩时间块是指模型每一轮运行时遮罩时间块位置是随机的;静态遮罩时间块是指模型每一轮运行时遮罩时间块位置是在确定好的,位置不变。
108.在一些实施例中,可以通过各种方式来确定多个时间块中的遮罩时间块。例如,通过设定遮罩时间块在总的时间块中所占比例。又例如,通过动态掩码等。
109.在本说明书一些实施例中,在模型中使用掩码方法,对掩码的特征表示进行预测并得到时间序列对应的整体向量表示,减少了数据处理的数量,通过使用动态掩码减少了静态掩码带来的误差,使得预测更加具有随机性,更加贴合真实环境。
110.步骤540,基于时间序列中除遮罩时间块外的其余时间块的特征表示,通过编码网络得到遮罩时间块的编码表示以及时间序列的整体向量表示。在一些实施例中,该步骤可以由整体向量确定模块来执行。
111.遮罩时间块的编码表示是指由编码网络输出得到的遮罩时间块的表示,例如,特征向量等。在一些实施例中,可以基于时间序列中除遮罩时间块外的其余时间块的特征表示,通过编码网络(例如,至少一个transformer encoder层)来还原遮罩时间块的特征表示。
112.整体向量表示是指时间序列整体对应的向量表示,其形式可以是多种,例如,单个向量、标签等。
113.在一些实施例中,可以基于时间序列中除遮罩时间块外的其余时间块的特征表示,通过编码网络来还原遮罩时间块的特征表示即通过编码网络得到的遮罩时间块的编码表示,进而基于遮罩时间块的还原的特征表示和除遮罩时间块外的其余时间块的特征表示得到时间序列的整体向量表示。
114.在一些实施例中,可以确定多个时间块中的每个时间块的位置表示;基于多个时间块中的每个时间块的位置表示和其余时间块的特征表示,通过编码网络得到遮罩时间块的编码表示,并得到时间序列的整体向量表示。
115.步骤550,基于当前时间序列的整体向量表示和当前时间序列的前面时间序列或后面时间序列的整体向量表示的相似性,以及遮罩时间块的编码表示和遮罩时间块对应的特征表示的相似性,调整编码网络的参数。在一些实施例中,该步骤可以由网络参数调整模块来执行。
116.当前时间序列是指当前处理的时间序列,例如,基于2021年1月的用户行为数据获取的时间序列。前面时间序列是时间在当前时间序列前面的时间序列,后面时间序列是时间在当前时间序列后面的时间序列。在一些实施例中,前面时间序列和后面时间序列可以是与当前时间序列相邻的时间序列,也可以是不相邻的时间序列。例如,当前时间序列是基于2021年5月的用户a行为数据获取的时间序列,则前面时间序列可以对应2021年4月、3月、2月等中的任意一个月;后面时间序列可以对应2021年6月、7月、8月等中的任意一个月。
117.在一些实施例中,对于一个用户,训练用户表征模型时可以获取几个时间有先后的时间段的用户数据,例如,获取用户a在2021年1月和2月的用户行为数据。又例如,获取用户a在2021年1月和3月的用户行为数据。基于这些时间有先后的时间段的用户数据,获取几个对应的时间序列,计算这些时间序列的整体向量表示的相似性。
118.相似性是指两个数据的相似或接近程度,可以用多种形式来表示,例如,相似度、互信息、差异(差异越大相似性越小,差异越小相似性越大)等。在一些实施例中,可以通过模型(例如,互信息估计器)、相似度算法等方式获取两个数据的相似性。例如,通过前述方法获取当前(例如,2021年1月)的时间序列的整体向量表示和当前时间序列的前面时间序列(例如,2020年12月对应的时间序列)或后面时间序列(例如,2021年2月对应的时间序列)的整体向量表示;又例如,通过前述方法获取遮罩时间块的编码表示和遮罩时间块对应的特征表示的相似性。
119.在一些实施例中,可以基于当前时间序列的整体向量表示和当前时间序列的前面时间序列或后面时间序列的整体向量表示的相似性,以及遮罩时间块的编码表示和遮罩时间块对应的特征表示的相似性,调整编码网络的参数,从而更新编码网络。
120.在一些实施例中,除了调整编码网络的参数,还可以调整特征提取网络的参数,从而更新特征提取网络。在一些实施例中,特征提取网络也可以是预先训练好的,便可以不用再调整其参数。
121.关于调整编码网络和特征提取网络参数的更多内容,可以参见图6步骤640、650及其相关描述,在此不再赘述。
122.本说明书的一些实施例中,对长时间度的用户行为数据进行序列化得到包括多个时间块的时间序列,以及通过使用数据池化、稀疏卷积等多种方式,提取时间块的特征,以及将高维数据变为低维数据,减少了数据量,降低了对资源的需求,减少了资源占用,从而
提高了经济效益;基于粗粒度任务(当前时间序列的整体向量表示和相邻时间序列的整体向量表示的相似性)和细粒度任务(遮罩时间块的编码表示与输入网络的遮罩时间块的特征表示的相似性)共同训练编码网络,从而可以有效地训练得到用户表征模型,也可以使得网络的训练更加高效快捷,同时提高了训练的质量,从而能够得到性能更好,得到的用户表征更加准确的用户表征模型。
123.图6是根据本说明书一些实施例所示的用户表征模型的训练的示例性流程图,其中,用户表征模型可以包括特征提取网络和编码网络。在一些实施例中,流程600可以包括以下步骤:
124.步骤610,将时间序列输入用户表征模型。
125.关于获取训练数据和时间序列的更多具体内容可以参见图3和图4及其相关描述,在此不再赘述。
126.步骤620,对时间序列进行处理,得到时间序列中各个时间块对应的特征表示。在一些实施例中,该步骤可以通过特征提取网络执行。
127.在一些实施例中,步骤620可以包括对输入中的数据中的每个字段进行embedding嵌入和均匀池化。仅作为示例,假设时间块为1小时,且时间单位为一分钟,对于每一个时间块,用户每分钟的行为都会有大量的字段,可以将每一个字段变成一个向量,再把所有字段进行池化,变成一分钟一个字段,从而得到60*3的矩阵。
128.在一些实施例中,步骤620还可以包括:以时间块为粒度,进行特征提取处理。
129.在一些实施例中,以时间块为粒度,进行特征提取处理可以包括步骤621和步骤622。
130.步骤621,利用稀疏卷积对时间块进行特征提取。
131.在用户的行为数据中,由于通常用户并不是每分钟都有行为,所以步骤620中得到的向量矩阵一般是稀疏的。在一些实施例中,可以用稀疏卷积的方法提取每个时间块的字段对应的特征,对其进行池化(例如,最大池化),从而得到低维向量。仍以步骤620中的时间块为例,对60*3的矩阵,可以通过稀疏卷积提取特征,并且进行最大池化,从而将其变为1*3的向量,即一维的token级别。
132.步骤622,确定遮罩时间块。
133.关于确定遮罩时间块的更多具体内容可以参见步骤530及其相关描述,在此不再赘述。
134.步骤630,以时间块作为token特征,进行处理。
135.在一些实施例中,可以将步骤620获取的低维数据(例如,1*3的向量矩阵)以时间块作为token特征,来对数据进行处理,其中,步骤630可以包括步骤631和步骤632。
136.步骤631,确定各个时间块的位置表示。
137.在一些实施例中,在执行步骤632之前,为了避免丢失句子之间的顺序关系,可以加入position embedding模块,以用于确定各个时间块的位置表示。
138.步骤632,将各个时间块的位置表示和特征表示输入编码网络。
139.在一些实施例中,可以在步骤631之后,将处理后的时间序列数据,即各个时间块的位置表示和特征表示,输入编码网络,例如,标准的多层transformer encoder结构,并进行处理。
140.在一些实施例中,在将数据输入transformer encoder之前,可以在整个时间序列的头部添加一个额外的token:cls,这个token可以用于后续指示在该cls位输出时间序列对应的整体向量表示,即用户的向量表示。
141.步骤640,基于粗粒度任务和细粒度任务调整用户表征模型的模型参数。
142.粗粒度任务是指调整用户表征模型的模型参数使得对于一个用户,用户表征模型输出的当前时间序列对应的整体向量表示和与当前时间序列时间相邻的时间序列对应的整体向量表示相似的任务;细粒度任务是指调整用户表征模型的模型参数使得编码网络还原的遮罩时间块的特征表示即遮罩时间块的编码表示与遮罩时间块的原特征表示相似的任务。
143.在一些实施例中,粗粒度任务中的训练样本可以包括正样本和负样本,可以基于正负样本来执行粗粒度任务。正样本可以包括同一个用户的前一个月用户特征向量和当前月的用户特征向量。负样本可以包括正样本中同一个用户的当前月的用户特征向量和一个其他用户的当前月的用户特征向量。正样本可以是关于一个用户的,因此需使机器学习模型朝增大前一个月用户特征向量和当前月的用户特征向量的相似度方向训练。负样本可以是关于两个用户的,因此需使机器学习模型朝增大一个用户的用户特征向量和另一个用户的用户特征向量的差异度方向训练。
144.步骤650,计算粗粒度任务的损失和细粒度任务的损失,并基于粗粒度任务的损失和细粒度任务的损失循环更新模型的参数。
145.在一些实施例中,损失可以通过模型输出与标签的互信息等相似性和/或模型输出与标签的差异来表示。其中,互信息是指衡量两个变量之间相关性的量,相关性越大,互信息的值越大。两个变量间差异可以用交叉熵来衡量,交叉熵与互信息相对应,是衡量,差异越小,交叉熵的值越小。
146.粗粒度任务的损失可以包括用于表示对于一个用户,用户表征模型输出的当前时间序列对应的整体向量表示和与当前时间序列时间相邻的时间序列对应的整体向量表示的相似性的项和/或差异的项。细粒度任务得到损失可以包括用户表征模型还原的遮罩时间块的特征表示即遮罩时间块的编码表示与遮罩时间块的原特征表示的相似性的项和/或差异的项。在一些实施例中,可以计算粗粒度任务和细粒度任务的损失函数,然后将两个损失函数的和作为用户表征模型的损失函数。
147.在一些实施例中,可以基于用户表征模型的损失函数,来更新特征提取网络和/或编码网络。
148.图8是根据本说明书一些实施例所示的用户表征模型应用的示例性流程图。
149.如图8所示,在一些实施例中,流程800可以包括以下步骤:将得到的用户行为数据的时间序列输入模型,关于该步骤的更多具体说明可以参见步骤610;embedding层对时间序列中时间块中的每个字段进行embedding嵌入与池化(例如,平均池化),池化为低维数据后输入卷积层,卷积层利用稀疏卷积提取时间序列的各个时间块特征,再池化(例如,最大池化)至一维的token特征向量表示,关于该步骤的更多具体说明可以参见步骤620;接着进行position embedding,之后将数据输入包括至少一层的编码网络(例如,如图8所示的encode#1、encode#2、
……
)进行编码,最后得到编码网络输出的整个时间序列对应的一个向量表示,可以将该向量表示作为用户的向量表示,关于该步骤的更多具体说明可以参见
步骤630。
150.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
151.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
152.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
153.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
154.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
155.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
156.最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1