面向众筹平台的捐赠行为与捐赠者保持预测方法与流程

文档序号:15984666发布日期:2018-11-17 00:44阅读:197来源:国知局

本发明涉及机器学习技术领域,尤其涉及一种面向众筹平台的捐赠行为与捐赠者保持预测方法。

背景技术

近年来,众筹(crowdfunding)平台迅速发展,其中基于捐赠机制的众筹(donation-basedcrowdfunding)平台变得越来越普及和流行。利用互联网作为媒介可以实现大范围的小额融资,因此,众筹机制给慈善事业带来了新的活力,帮助了众多怀揣梦想和身处困境中的人们。然而,捐赠者(donors)群体严重的客户流失(attrition)是众筹平台和传统慈善事业所面对的一个重要的共性问题。事实上,由于本身的非盈利特性,基于捐赠的众筹和传统的慈善活动中捐赠者的流失问题非常严重。据统计,慈善众筹中捐赠客户的流失率达70%以上。因此分析影响捐赠者行为和去留的因素进而预测这两种行为事件是非常有意义的。然而,在很长的一段时间里,有关捐赠行为和捐赠者保持的相关研究和技术方法都十分有限。

随着互联网众筹平台的发展,大量的用户行为数据被记录和收集,因而使得面向该场景中设计基于大数据驱动的用户行为预测方法提供了可能。



技术实现要素:

本发明的目的是提供一种面向众筹平台的捐赠行为与捐赠者保持预测方法,通过结合深度学习,可以为众筹应用、生存分析等领域的实践提供一定的技术支持。

本发明的目的是通过以下技术方案实现的:

一种面向众筹平台的捐赠行为与捐赠者保持预测方法,包括:

从众筹平台上爬取项目数据;

对爬取的项目数据进行特征提取与预处理后,按照时间进行数据区间的划分;

将捐赠者的捐赠行为序列和生存保持序列,以及对应于捐赠者的数据区间划分后的特征构建联合深度生存模型;

结合设计的排序约束函数对联合深度生存模型进行优化,从而预测捐赠者的捐赠行为与捐赠者的生存保持状态。

由上述本发明提供的技术方案可以看出,利用联合深度生存模型(jds)来对捐赠者行为进行建模,可以有效地对众筹平台上的捐赠用户是否流失进行预测,从而提醒平台做出一定措施以减少用户流失率,具有一定实际应用价值,并且能够给平台带来一定的潜在经济效益。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种面向众筹平台的捐赠行为与捐赠者保持预测方法的流程图;

图2为本发明实施例提供的问题形式化的描述示意图;

图3为本发明实施例提供的联合深度生存模型的框架图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明实施例提供一种面向众筹平台的捐赠行为与捐赠者保持预测方法,如图1所示,其主要包括:

步骤1、从众筹平台上爬取项目数据。

步骤2、对爬取的项目数据进行特征提取与预处理后,按照时间进行数据区间的划分。

步骤3、将捐赠者的捐赠行为序列和生存保持序列,以及对应于捐赠者的数据区间划分后的特征构建联合深度生存模型。

步骤4、结合设计的排序约束函数对联合深度生存模型进行优化,从而预测捐赠者的捐赠行为与捐赠者的生存保持状态。

上述方案利用联合深度生存模型(jds)来对捐赠者行为进行建模,可以有效地对众筹平台上的捐赠用户是否流失进行预测,从而提醒平台做出一定措施以减少用户流失率,具有一定实际应用价值,并且能够给平台带来一定的潜在经济效益。

为了便于理解,下面针对本发明上述方案做详细的介绍。

一、数据的爬取、处理以及数据集划分。

1、数据的爬取。

本发明实施例中,所爬取的项目数据包括:项目本身的数据,以及捐赠者的非结构化数据和结构化数据;其中,捐赠者的非结构化数据包括:文本数据,如:采用自然语言描述的众筹目的,项目用途,团队目的等等;结构化数据包括:数值型数据如:用户信用评级,平台公布的总计项目数,捐赠团队的成员数,捐赠者的历史捐赠数值等;类别型数据,如项目或队伍的类别标签等,以及时空型数据,如不同时间片下用户对应的捐赠记录。

示例性的,可以对具有代表性的众筹网站(例如,kiva.org)已发布的项目进行数据收集,所收集到的数据涵盖了kiva.org自2005年3月至2017年7月的所有项目信息。与kiva.org平台上项目的主要参与者保持一致,收集并获得了项目参与者丰富的非结构化数据(如:文本数据)和结构化数据(如:数值型、类别型、时空型数据),这些数据与捐赠者的行为密切相关。

2、特征提取。

所提取的特征包括:

项目特征为,包含相对较短的项目用途、相对较长的项目故事与众筹目的的文本数据、以及包含项目所属类别的类别型数据。

本领域技术人员可以理解,此处的相对较短是指,项目用途的文字长度相对于项目故事的文字长度较短;同理,相对较长是指,项目故事的文字长度相对于项目用途的文字长度较长。

示例性的,项目用途可以是简短文字介绍项目方向和目的,例如,需要筹集xx资金用于xx疾病治疗;项目故事则是对项目的故事背景进行详细的介绍,比如,项目发起者的家庭背景、经济情况、疾病程序等等。

示例性的,kiva.org数据集包含了1252481个项目,从项目实体中主要提取出7种特征,包括文本数据(项目的用途、众筹的目的)和类别型数据(项目所属类别)等。

合作伙伴特征为,包含信用评级与总共赞助的项目数的数值型数据。

示例性的,在kiva.org数据中,共收集了472家合作伙伴,它们的属性对应了4种提取到的特征,比如:信用风险评估、总共赞助的项目数等。

捐赠者特征为,包含捐赠目的的文本数据、以及包含历史捐赠数值的数值型数据。示例性的,kiva.org数据包含了2262675名不同的捐赠者,从中主要提取了2种特征,即文本形式描述的捐赠目的(形式为:“我捐赠是因为…”)与捐赠历史记录。

捐赠团队特征为,包含团队目的的文本数据、包含团队类别的类别型数据、以及包含成员数与历史捐赠数量的数值型数据。

示例性的,kiva.org数据共包含了35217个捐赠团队,从中提取到5种主要的特征,比如:文本数据(团队目的(如:“我们捐赠是因为…”))、类别型数据(团队类别)、数值型数据(团队的成员数和历史捐赠数量)。

捐赠事件特征为,考虑到一个捐赠者近期的捐赠事件会影响其后续的行为,因此结合时空型数据对每个捐赠者在某个特定时间段内,建立起在每个时间片捐赠记录的向量,作为一种特殊的特征。

示例性的,kiva.org数据包含了27082901条捐赠记录。

3、预处理。

以上提到的信息特征在形式上是异构的,为了保证一致性,需要进行预处理,具体来说:对于各个特征中的类别型数据,采用one-hot编码;对于各个特征中的文本数据,采用nltk工具包进行分词,并采用word2vec工具包将每个词表示为一个d0维的向量,对于各个特征中的数值型数据,采用z变换将其标准化。

4、数据集划分。

按照时间进行数据区间的划分之前,先将参与少于k个(例如,2个)捐赠项目、没有加入任何捐赠团队的捐赠数据,以及缺失捐赠目的捐赠者及捐赠团队数据过滤;然后,按照时间先后顺序将捐赠事件特征划分为观察时间段与预测时间段,其中,前t个时间片为观察时间段,后t′个时间片为预测时间段。

示例性的,将参与少于2个捐赠项目、没有加入任何捐赠团队的捐赠数据,以及缺失捐赠目的捐赠者及捐赠团队数据过滤;之后,还剩下383146个项目、386个合作伙伴、42768个捐赠者、26958个捐赠团队以及1193148条捐赠记录。考虑到实际情况,将时间片按每周作为划分粒度。在每个时间片中,变量是通过合并属于该片的每一天的对应特征来构造的。不失一般性,观察时间段包含4个时间片,即t=4,预测时间段包含5个时间片,即t′=5。因此,这些有着长期捐赠活动的捐赠者序列可能会被切分为多个实例。总之,我们总共有501778个实例。于“模型参数的训练与优化”阶段,可以随机选择其中的80%作为训练实例,其余的20%实例用于测试。观察时间段和预测时间段分别在训练数据集和测试数据集中按照时间片切分。

二、问题形式化。

对于一个捐赠者i,主要有两种行为序列:捐赠行为序列和生存保持序列。

如图2所示,捐赠者i的捐赠行为序列表示为:记录了捐赠者i在每个时间片内的捐赠行为,对应于观察序列(即捐赠者i在观察时间段内的捐赠行为序列),对应于预测序列(捐赠者i在预测时间段内的捐赠行为序列);当或者时,则表示捐赠者i在第t或者第t′个时间片进行了捐赠,当或者时,则表示捐赠者i在第t或者第t′个时间片未进行捐赠;其中,t∈{1,…,t},t′∈{1,…,t′};

捐赠者i的生存保持序列表示为:其表示某时间片结束之前捐赠者i是否仍然活跃在众筹平台,对应于观察序列(即捐赠者i在观察时间段内的生存保持序列),对应于预测序列(即捐赠者i在预测时间段内的生存保持序列);对于未删失情形,当或者则表示能够观察到捐赠者i一直到第t或者第t′个时间片依然活跃在众筹平台,当或者则表示能够观察到捐赠者i第t或者第t′个时间片或此之间已经离开众筹平台;对于删失情形,则表示无法观察到对应事件的发生,无法判断捐赠者生存保持状态;与此同时,我们也无法观察到在第t或者第t′个时间片或之后捐赠者i的其他行为。

基于联合分析捐赠行为序列和生存保持序列,提出以下定理:

定理1:在当前构造的场景中,捐赠者是逐渐流失的,即如果也就是说对于任意一个属于观察序列的时间片t,若此时捐赠者i在平台上,那么在t-1时刻他也必定在平台上;如果也就是说对于任意一个属于预测序列的时间片t′,若t′时刻捐赠者已经离开了平台,那么在t′+1时刻他也不在这个平台上;

定理2:对于不存在删失的情形,即对于任意一个属于观察序列的时间片t或者预测序列时间片t′,若捐赠者i离开了这个平台,那么观察序列中时间片的最大值要小于预测序列中时间片的最小值;对于删失情形,设t*为删失时间片,则即对于任意一个属于观察序列的时间片t和预测序列的时间片t′,捐赠者i是否离开这个平台是未知的,那么删失时间片t*等于观察序列中时间片的最大值加1。

本发明实施例中,希望对捐赠者的两种行为事件进行联合分析和预测,即在将来一段时间内预测:1)捐赠者的捐赠行为否会再发生;2)捐赠者是否仍然停留并活跃在众筹平台。具体来说,可以将问题形式化如下:

问题形式化:对于捐赠者i给定他在观察时间段内的捐赠序列以及一些其他特征,包括捐赠者特征以及其最近的捐赠行为,我们的目标是对接下来的时间片t′内该捐赠者的行为进行分析和预测,具体来说包括以下两个预测任务:

预测任务1:预测捐赠者i在预测时间段内的捐赠行为,即

预测任务2:预测捐赠者i是否会在预测时间段内的每个时间片内活跃在众筹平台,即

三、建立联合深度生存模型。

实际上,捐赠者保持可以被视为一个生存分析问题。但是,传统的生存模型只擅长处理线性关系。为了对捐赠者保持中复杂的关系进行建模,设计了联合深度生存模型(jds)。如图3所示,联合深度生存模型主要包括:输入组件、表征组件和预测组件;其中:

1、输入组件,负责归类处理各类特征,具体包括如下三种类型的特征:第一类特征是文本特征包括4种文本数据:捐赠者特征中的文本数据,即捐赠者i的捐赠目的描述(形如:“我捐赠是因为……”)、捐赠团队特征中的文本数据,即捐赠者i所在捐赠团队的目的描述(形如:“我们捐赠是因为……”)、项目特征中的文本数据,即项目的用途描述(较为简短的目的描述)以及捐赠者i最近捐赠项目的故事描述第二类特征为捐赠者i在观察时间段内的捐赠行为序列第三类特征包括捐赠者i特征捐赠者i所在的捐赠团队特征项目特征以及合作伙伴特征它们均包含了用自然语言描述的文本数据。

2、表征组件,对每一个特征学习相应的向量表示;捐赠者i在观察时间段内的捐赠行为序列以及第三类特征采用编码和正则化方法进行处理;对于文本特征采用卷积神经网络学习其向量表示:首先将各自拼接为一个长句子其中,d0为每个词向量的嵌入维度;lr,lw,lu和ls对应的表示中句子的长度,即句子所包含词语的数量;然后,对于采用个性化的cnn结构处理,其中采用两层结构,采用三层结构;对于的第一层卷积-池化操作如下,其余层的操作与第一层一致:对于输入句子的矩阵特征卷积操作包含一个有着k个词容量的滑动窗口k×d0,在词语层面上其中,wj是中的第j个词向量;卷积用于获得一个隐层序列,即其中b∈rd是卷积参数,d是卷积核的个数,是将k个词向量拼接成一个长向量的操作,σ(x)是一个非线性激活函数;通过卷积,每个序列化的k个词向量被表示为一个局部语义信息,然后p-max池化将卷积获得的隐层序列hc合并为一个新的局部隐层序列,即其中:重复上述过程,进行多次的卷积和池化,以逐步总结句子中单词的全局交互作用,并最终达到向量表示;最终所有类型的特征都实现向量形式的表示,即顶部的箭头为向量符号。

3、预测组件,用时执行如下两个预测任务:

1)预测任务1:预测捐赠者i在预测时间段内的捐赠行为;在获得所有特征的向量形式后进行拼接,然后使用一个全连接神经网络层来学习全部特征向量的聚合表示h1,最后输出对目标捐赠者捐赠行为的预测结果

其中,leakeyrelu(x)、sigmoid(x)均为激活函数;leakeyrelu(x)=max(0,wx+b)+αmin(0,wx+b),w1,b1,w′1,b′1均为联合深度生存模型的参数;leakyrelu、sigmoid是两种激活函数;其中的元素均为一个预测概率,第t′个元素表示捐赠者i在预测时间段内的第t′个时间片的捐赠行为预测结果。

2)预测任务2:预测捐赠者i是否会在预测时间段内的每个时间片内活跃在众筹平台;使用级联全连接网络来结合聚合表示h1与预测结果得到捐赠者i在预测时间段内的用户生存保持预测结果

其中,w2,b2,w′2,b′2均为用来调整联合深度生存模型的参数;其中的元素均为一个预测概率,第t′个元素表示捐赠者i是否会在预测时间段内的第t′个时间片内活跃在众筹平台。

四、优化函数的设计。

对于预测任务1,所有的捐赠行为都是可观察的,因此,对于预测任务1,通过最小化预测结果和实际结果yi的差异来设计目标函数,即:

其中,m是训练过程中捐赠者的数量,θ表示联合深度生存模型中的所有参数,||.||是向量的范数;

对于预测任务2,由于删失情形的存在,则捐赠者是否流失仅能在删失时间t*之前观察到,设计多个排序约束,并将它们作为正则化项集成于两个目标函数中,预测任务2的目标函数为:

对于未删失情形,即t*>t′,sl(θ)有着和yl(θ)相同的采样形式。

需要指出的是,sl(θ)中的θ相较于yl(θ)具有更多的联合深度生存模型的参数,即w2,b2,w′2,b′2;本领域技术人员根据以上的描述可以准确的判定各个表达式中θ所涉及的具体参数,因此,为了描述的方便,本发明实施例不加以区分。

此外,本发明实施例还设计了排序约束函数,并整合排序约束函数与两个预测任务的目标函数。

具体的,基于如下三个推论设计排序约束函数:

推论1,非负性(non-negativity):在任何时刻,捐赠再发行为和生存保持的概率都是非负的,即

推论2,非递增(non-increment)以及生存保持落差(retentiondrop):对于捐赠者的生存保持序列,处于之前时间片的生存保持概率不小于后续时间片的相应概率,即对于未删失的情形,如捐赠者i在第t#个时间片离开众筹平台,则其生存保持概率会瞬时下降一个落差,即t#∈{1,…,t*-1},如果其中,t*为发生删失情形的时间片,δ∈(0,1)为生存保持落差;

推论3,生存保持优先(retentionpriority):对于每个时间片,捐赠者i的生存保持概率不会小于捐赠再发行为概率,即

考虑以上推论,从而设计排序约束函数表示为:

其中,λ1,λ2,λ3与λ4为用于平衡不同约束条件影响下的超参数,‖.‖f为弗罗本尼范数;non-negativity表示非负性,non-increment表示非递增,retentiondrop表示生存保持落差,retentionpriority表示生存保持优先;

最后,整合排序约束函数与两个预测任务的目标函数:

五、模型参数的训练与优化

捐赠者的捐赠行为是否再发生与其在kiva.org上是否保持活跃高度相关,同时jds模型的两种预测任务拥有相同的输入和表征。因此这两种任务的优化方向在一定程度上是一致的。受这个特点启发,设计了使用交替优化算法用来联合训练联合深度生存模型以完成两个预测任务。如表1所示,为交替优化算法执行过程,描述如下:

交替优化算法输入训练数据、初始化参数θ、超参数η1与学习率η2,输出优化后的参数θ;交替优化算法的迭代过程如下:

在每次迭代过程中,通过随机梯度下降(sgd)bp算法逐步最小化目标函数。

表1交替优化算法

通过使用交替优化算法,根据预先划分的训练数据(例如,80%)、测试数据(例如,20%),使得联合深度生存模型能够同时完成两个预测任务。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

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