具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”,等等。
机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。机器学习方法包括监督机器学习方法、非监督机器学习方法以及半监督机器学习方法,监督机器学习是指利用已知标签的数据作为训练数据来训练机器学习模型;非监督机器学习是指在利用无标签的数据作为训练数据来训练机器学习模型;半监督机器学习方法是指监督机器学习方法和非监督机器学习方法的组合使用。
在本公开的实施例中,术语“用户信息”表示与用户有关的信息,其可以包括用户自身的静态信息(例如,身份信息)和用户生成的动态信息(例如,行为信息)。术语“特征向量”表示根据从样本(例如,用户信息)所提取的特征信息而构建的多维向量,向量的维度等于特征信息类型的数目,特征向量例如可以包括用户信息中的用户身份信息和用户行为信息等。
应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。
图1图示了根据本公开的实施例的计算机系统100的示例图。如图1所示,系统100包括服务器110、第一用户设备120、第二用户设备130以及第三用户设备140,其中第一用户设备120、第二用户设备130以及第三用户设备140通过网络150连接到服务器110。在一些实施例中,网络150可以包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线通信网络等。
在一些实施例中,第一用户设备120可以为台式计算机,第二用户设备130可以为膝上型计算机,第三用户设备140可以为智能移动设备。其中智能移动设备是指各种拥有接入互联网能力、搭载各种操作系统(包括但不限于iOS、Android、Windows Phone等)、可根据用户需求定制各种功能的终端设备,包括但不限于智能手机、平板电脑、智能可穿戴设备等。
在一个实施例,第三用户设备140可以访问服务器110提供的网页。在另一个实施例中,第三用户设备140可以通过安装在其上的应用程序(例如,APP)访问服务器110提供的内容。在一些实施例中,第三用户设备140可以向服务器发送使用第三用户设备140的用户的个人身份信息,同时,服务器110可以记录第三用户设备140的用户访问服务器110时的访问行为信息。
虽然图1中仅示出了一个服务器110,然而系统100可以包括多个分布地部署的多个服务器;虽然图1中仅示出了三个用户设备,然而明显可以存在更多个用户设备,本公开的实施例的范围不限于此。此外,系统100中还可以包括路由器、交换机等其他网络部件。
图2图示了根据本公开的实施例的用于处理用户信息的方法200的流程图。在步骤202,从服务器获得多个用户中的每个用户的特征向量,特征向量包括用户身份信息和用户行为信息。其中,用户身份信息是指用户注册或者登记的与用户身份有关的信息,用户行为信息是指用户访问由服务器110提供的网页或内容时的行为信息。例如,服务器110中存储多个用户的用户信息,可以从服务器110获得多个用户的用户信息,并且基于用户信息来抽取并生成用户的特征向量Bn(f1,f2,…fm),其中n表示第n个用户,m表示特征向量中特征类型的个数。
在一些实施例中,用户身份信息可以包括以下各项中的至少一项:年龄、性别、城市、职业、教育程度以及收入水平,用户行为信息可以包括以下各项中的至少一项:登录服务器110或相关服务器的次数、登录服务器110或相关服务器的时间长度、登录服务器110或相关服务器时使用的终端类型、对服务器110提供的网页或内容的浏览次数以及从服务器110或相关服务器购买的次数。在一些实施例中,可以仅获取预定时间段内的用户行为,例如,从用户注册到完成预定任务之间的时间段,或者例如三个月的时间段。
方法200继续进行到步骤204,根据特征向量,将多个用户聚类为多个分组。例如,可以通过无监督学习算法(例如,k-means聚类算法)将多个用户聚类为K个分组,而不需要提前预设分组的个数,其中K表示聚类后的用户分组的个数。
在步骤206,基于特征向量和分组,确定多个用户中的每个用户的得分。例如,同时基于第n个用户的特征向量和第n个用户所属的分组,来确定第n个用户的得分Sn。也就是说,同时基于特征向量和所属分组二者来确定用户的得分,用户的分组是用户的得分的一个影响因素。
方法200继续进行到步骤208,基于多个用户的各自得分,向多个用户中的至少一部分用户推荐信息。例如,基于第n个用户的得分,来确定第n个用户是否是预定类型的用户,继而判断是否向第n个用户进行推荐。在一些实施例中,仅当用户得分大于预定阈值时,才向该用户进行推荐,较高的得分意味着更有可能是潜在用户,因而有效地提高了推荐的成功率。
图3图示了根据本公开的实施例的用于对用户进行聚类的方法300的流程图。方法300可以视作上文参考图2描述的方法200中的步骤204的一个示例实现方式。在步骤302,将每个用户初始化为一个分组,即初始的分组数目等于用户的数目。例如,将每个用户作为一个分组(例如类),得到初始分组的集合{groupp|groupp∈Cluster},其中p表示第p个分组。在步骤304,确定所有分组中的每两个分组之间的相似性。例如,计算第p个分组与第q个分组之间的相似性sim(cp,cq)。在步骤306,将相似性大于阈值相似性的两个分组进行合并。例如,如果第p个分组与第q个分组之间的相似性sim(cp,cq)大于阈值,则将第p个分组与第q个分组进行合并,形成一个新的分组。
方法300继续进行到步骤308,判断是否满足收敛条件。在一个实施例中,收敛条件可以为所有分组之间的相似性都小于阈值。在另一个实施例中,收敛条件可以为分组的结果变得稳定,即分组的数目不再发生变化。如果没有满足收敛条件,则继续迭代执行步骤304和306,直到满足收敛条件。如果已经满足收敛条件,则完成聚类分组过程,得到分组集合{groupp|groupp∈Group}。方法300通过自底向上的分层聚类方法,可以准确地对多个用户进行聚类。
在一些实施例中,可以根据多个分组中的每个分组中的所有用户的总得分,确定多个分组的排序。例如,排名越靠前的分组,其中的用户的整体购买行为可能性较大,因此可以将多个分组进行排序,并且按照排序向分组中的用户依次进行信息推荐。
图4图示了根据本公开的实施例的用于确定用户得分的方法400的流程图。方法400可以视作上文参考图2描述的方法200中的步骤206的一个示例实现。在步骤402,生成基于特征向量和分组二者的用户评分模型,其中用户评分模型可以表示为Sn=LR(fn1,fn2...,fni,groupn),其中Sn表示第n个用户的得分,LR表示逻辑斯蒂回归方程,i表示特征向量的数目,fni表示第n个用户的第i个特征向量,groupn表示第n个用户所属的分组。
接下来,可以通过有监督方式对用户评分模型进行训练,在步骤404,向多个用户中的每个用户添加标签,标签可以通过不同的标签值(诸如,0和1)来指示不同的用户类型,诸如潜在的继续购买用户和退出用户。标签值可以根据其他信息人工进行设定,也可以根据用户的后续行为而自动地确定。在步骤406,利用标签来训练用户评分模型,使得用户评分模型能够对具有不同标签值的用户进行区分。在步骤408,确定能够对具有不同标签值的用户进行区分的阈值得分。例如,高于阈值得分的用户表示潜在的继续购买用户,低于阈值得分的用户表示不大可能继续购买的用户,即退出用户。
方法400继续进行到步骤410,使用训练后的用户评分模型,确定多个用户中的每个用户的得分。例如,通过训练后的用户评分模型,确定每个用户的用户得分,从而可以确定每个用户的用户类型。
在一些实施例中,可以输出多个用户中的、具有大于所述阈值得分的得分的所有用户。例如,排名越靠前的用户,其购买行为可能性较大,因此可以输出潜在购买的用户列表,并且向这些用户推荐信息。
图5图示了根据本公开的实施例的用于判断用户类型的方法500的流程图。在训练出用户评分模型Sn=LR(fn1,fn2...,fni,groupn)之后,对于新加入的用户,根据用户的用户信息,例如用户身份信息,可以确定用户的类型。因此,即使在没有用户行为信息的情况下,也可以确定用户的类型。在步骤502,从服务器获得新的用户的特征向量。在步骤504,根据新的用户的特征向量,将新的用户分类到特定分组,例如通过对数似然相似度来计算用户之间的相似度。在一个实施例中,可以确定新的用户与多个用户中的每个用户之间的相似度,并且将新的用户分类到与新的用户具有最高相似度的用户的分组。在另一个实施例中,可以将多个分组中的每个分组的向量的均值作为分组中心,并且确定新的用户的特征向量与多个分组中的每个分组的分组中心的相似度,然后将新的用户分类到与新的用户分类具有最高相似度的分组。
方法500继续进行到步骤506,使用用户评分模型,确定新的用户的得分,例如使用方法400训练出的用户评分模型,根据新的用户的特征向量来确定新的用户的得分。在步骤508,确定新的用户的得分是否大于阈值得分。如果新的用户的得分大于阈值得分,则在步骤510,确定新的用户属于预定类型的用户。如果新的用户的得分小于阈值得分,则在步骤512,确定新的用户不属于预定类型的用户。通过本公开的实施例的基于半监督方式训练出的用户评分模型,即使用户还没有产生较多的用户行为信息,也能够有效地判断新用户的用户类型。
在一些实施例中,可以利用新的用户的标签来更新用户评分模型Sn=LR(fn1,fn2...,fni,groupn)的模型参数和所述阈值得分。例如,在一段时间之后,新的用户的标签值可以被确定,因此,可以利用新的用户的标签值来继续训练用户评分模型,使得用户评分模型的准确性不断提高。
图6图示了根据本公开的实施例的处理用户信息的另一方法600的流程图。如图6所示,数据库601(例如,图1中的服务器110中的数据库)中存储与多个用户有关的用户信息,例如用户身份信息和用户行为信息。在步骤602,从数据库601抽取每个用户的特征向量Bn(f1,f2,...fm),其中n表示第n个用户,m表示特征向量中特征类型的个数。其中用户身份信息可以包括但不限于:年龄、性别、城市、职业、教育程度以及收入水平,用户行为信息可以包括但不限于登录服务器次数、登录服务器的时间长度、登录服务器时使用的终端类型、对服务器提供的网页或内容的浏览次数以及从服务器购买的次数。例如,可以建立针对用户身份信息和用户行为信息的特征矩阵。
表1:用户身份信息和用户行为信息的特征矩阵
|
年龄特征 |
... |
登录特征 |
... |
用户1 |
fage 1 |
... |
flogin 1 |
... |
用户2 |
fage 2 |
... |
flogin 2 |
... |
... |
... |
... |
... |
... |
用户n |
fage n |
... |
flogin n |
... |
方法600继续进行到步骤604,根据所抽取的特征向量,将数据库601中的多个用户聚类为多个分组,例如,聚类为G1、G2、G3和G4共四个分组。然后,在步骤606,基于特征向量和分组来生成用户评分模型Score=f(f1,f2...,fi,Group),并且确定能够对具有不同标签值区分的阈值得分St。
接下来,当新的用户加入时,可以利用已生成的用户评分模型来确定新的用户的得分,在步骤608,获取新的用户的特征向量,在步骤610,根据新的用户的特征向量,确定新的用户将被分类分组,例如,新的用户被分类到分组G3。然后,在步骤612,根据新的用户的特征向量和分组,计算并获取新的用户的得分。
图7图示了根据本公开的实施例的用户得分分布的示意图700。如图7所示,大于阈值得分的用户可以被确定为预定类型的用户,例如潜在的继续购买的用户,而小于阈值得分的用户可以被确定为非预定类型的用户,例如不大可能继续购买的用户,即退出用户。因此,可以根据用户的得分来向用户进行不同程度的推荐(例如,向潜在用户电话或者短信推荐相关产品),从而不仅提高了推荐的成功率,使得潜在用户能够转化为实际购买用户。同时,避免了向不大可能继续购买的用户的推荐,因而也能够减少了低成功率推荐的资源浪费。
本公开的实施例通过半监督学习方式(即无监督的聚类和有监督的评分)来处理用户信息,对用户进行聚类分组,并且基于用户的分组来确定用户得分,从而能够准确地确定用户得分并且有效地进行推荐。此外,本公开的实施例同时考虑了用户身份信息和用户行为信息,能够提高聚类和推荐的准确性。
在一些实施例中,本公开的实施例中的方法200、300、400、500和600可以应用于电子商务系统或互联网P2P(Peer-to-Peer)业务中。根据用户注册时的身份信息和用户在互联网业务中的行为信息,可以将用户聚类为多个分组,然后根据用户的分组情况,可以确定用户的得分,该得分能够反映用户的购买意向,例如是潜在继续购买的用户,还是很可能退出的用户。因此,通过将根据本公开的实施例的方法应用于互联网P2P业务中,能够提高用户的留存率,并且能够进行针对性的推荐。
此外,针对新加入互联网业务的新的用户,可以根据用户的用户信息快速确定用户的分组情况,并根据用户的用户信息和分组情况确定用户的得分。也就是说,即使在具有很少的用户行为信息的情况下,也可以确定用户的类型。因此,本公开的实施例的方法能够对互联网业务的新的用户的购买意向快速地进行判断,并且能够提高信息推荐的效率和准确性。
此外,还提供了一种用于处理用户信息的设备。该设备包括处理器,该处理器被配置为:从服务器获得多个用户中的每个用户的特征向量,该特征向量包括用户身份信息和用户行为信息;根据特征向量将多个用户聚类为多个分组;基于特征向量和分组,确定多个用户中的每个用户的得分;以及基于多个用户的各自得分,向多个用户中的至少一部分用户推荐信息。应当理解,该设备可以利用各种方式来实现。例如,在某些实施例中,该设备可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本公开的实施例的设备和装置不仅可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合来实现。
图8图示了可以用来实施本公开的实施例的设备800的示意性框图。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、300、400、500和600,可由处理单元801执行。例如,在一些实施例中,方法200、300、400、500和600,可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法200、300、400、500和600,的一个或多个步骤。
计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
应当注意,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。