无监督模型评估方法、装置、服务器及可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种无监督模型评估方法、装置、服务器及可读存储介质。
背景技术
随着科学技术的不断发展,无监督学习算法得到了广泛应用。无监督学习模型可以对图数据进行计算,将图数据中的每个结点都映射到一个向量空间中,得到计算后的结点向量。在对计算后得到的结点向量进行评估时时,通常采用有监督算法评估,再训练一个机器学习模型。但训练机器学习模型需要耗费更多的数据和时间。
发明内容
本说明书实施例提供及一种无监督模型评估方法、装置、服务器及计算机可读存储介质。
第一方面,本说明书实施例提供一种无监督模型评估方法,包括:
在经过无监督模型得到的N个结点向量中确定出与S个结点对应的S个结点向量;
确定所述S个结点中每个结点的邻居结点,以及所述每个结点的非邻居结点;
根据所述每个结点的邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的邻居结点与所述每个结点的相似度作为正样本的预测值;
根据所述每个结点的非邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的非邻居结点与所述每个结点的相似度作为负样本的预测值;
根据所述正样本的预测值以及所述负样本的预测值,对所述无监督模型进行评估。
第二方面,本说明书实施例提供一种无监督模型评估装置,包括:
第一确定模块,用于在经过无监督模型得到的N个结点向量中确定出与S个结点对应的S个结点向量,N和S均为正整数,N大于等于S;
第二确定模块,用于确定所述S个结点中每个结点的邻居结点,以及所述每个结点的非邻居结点;
正样本预测值确定模块,用于根据所述每个结点的邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的邻居结点与所述每个结点的相似度作为正样本的预测值;
负样本预测值确定模块,用于根据所述每个结点的非邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的非邻居结点与所述每个结点的相似度作为负样本的预测值;
评估模块,用于根据所述正样本的预测值以及所述负样本的预测值,对所述无监督模型进行评估。第三方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一项所述方法的步骤。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本说明书实施例有益效果如下:
在本说明书实施例提供的无监督模型评估方法中,在经过无监督模型得到的N个结点向量中确定出与S个结点对应的S个结点向量,N和S均为正整数;确定所述S个结点中每个结点的邻居结点,以及所述每个结点的非邻居结点;根据所述每个结点的邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的邻居结点与所述每个结点的相似度作为正样本的预测值;根据所述每个结点的非邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的非邻居结点与所述每个结点的相似度作为负样本的预测值;根据所述正样本的预测值以及所述负样本的预测值,对所述无监督模型进行评估。本说明书实施例中的方案,将每个结点与邻居结点的相似度作为正样本,以及将每个结点与非邻居结点的相似度作为负样本,通过对正样本以及负样本进行评估来确定无监督模型的效果,不需要进行额外的模型训练,使无监督模型的评估过程更加容易实现。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本说明书实施例第一方面提供的一种无监督模型评估方法的流程图;
图2为本说明书实施例示出的根据二元组样本对无监督模型进行评估的方法流程图;
图3为本说明书实施例第二方面提供的无监督模型评估装置的示意图;
图4为本说明书实施例第三方面提供的服务器的示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,本说明书实施例提供一种无监督模型评估方法,如图1所示,为本说明书实施例提供的无监督模型评估方法的流程图,该方法包括以下步骤:
步骤S11:在经过无监督模型得到的N个结点向量中确定出与S个结点对应的S个结点向量,N和S均为正整数;
本说明书实施例中,N个结点向量可以是无监督模型对N个输入数据进行计算得到的。其中,可以将N个输入数据看作为N个结点。输入数据可以是根据实际情况确定的数据,在一个实施例中,输入数据可以是一定数量的用于表示词语的向量,可以将每个词语看作是一个结点,每个词语可以用一个初始向量来表示,将词语的初始向量作为无监督模型的输入,通过无监督模型的计算,输出与每个结点对应的embedding(嵌入向量),即输出的结点向量。应理解的是,embedding可以看作是将结点由原始空间映射到另一个空间中,并且在另一个空间内保持结点在原始空间的结构信息和距离信息。
无监督模型可以根据实际需要进行选择,在一个实施例中,无监督模型可以为Word2Vec模型,在对词语进行处理时,通过Word2Vec模型将每个词语映射到一个低维向量空间,得到与每个词语结点对应的结点向量。
应理解的是,在无监督模型的计算过程中,最后输出的结点向量可以由损失函数来确定。例如,NCE(Noise Contrastive Estimation,噪音对比估计)损失函数,通过NCE损失函数得到的结点向量能够使该结点具有与其邻居结点在向量空间中的距离更近,与非邻居结点距离更远的特点。
在确定S个结点时,可以在N个结点中选择S个不同的结点,也可以在N个结点中随机选取S个结点。S个结点可以是一次性选取的,也可以是多次选取的,这里不做限定。
步骤S12:确定所述S个结点中每个结点的邻居结点,以及所述每个结点的非邻居结点;
本说明书实施例中,针对S个结点的每个结点来说,该结点可以包括多个邻居结点以及多个非邻居结点,可以在多个邻居结点中随机选出任意个数的邻居结点以及在多个非邻居结点中随机选出任意个数的非邻居结点。或者,可以设定选出的邻居结点的个数以及设定选出非邻居结点的个数。这里不做限定。
一个结点的邻居结点可以根据预设的邻居结点生成规则进行生成,也可以将N个结点根据结点之间的关系构成一个图,在构成的图中进行邻居结点的选择。在一个实施例中,可以根据各个结点之间的关系进行边连接,形成包括有结点之间连接关系的图结构,在该图结构中查找S个结点中每个结点的邻居结点和非邻居结点。在另一个实施例中,可以根据预设的邻居生成算法生成每个结点的邻居结点。当然,还可以采用其他的方式来确定邻居结点,本说明书实施例不做限定。非邻居结点的确定与邻居结点的确定类似,这里就不再赘述了。
步骤S13:根据所述每个结点的邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的邻居结点与所述每个结点的相似度作为正样本的预测值;
步骤S14:根据所述每个结点的非邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的非邻居结点与所述每个结点的相似度作为负样本的预测值;
本说明书实施例中,在确定了每个结点的邻居结点以及非邻居结点之后,可以将邻居结点作为正样本,将非邻居结点作为负样本。针对每个结点,分别计算该结点与各个邻居结点之间的相似度,作为邻居结点的预测值,以及分别计算该结点与各个非邻居结点之间的相似度,作为非邻居结点的预测值。相似度的计算可以根据实际需要来选择,在一个实施例中,可以通过计算向量之间的内积,并对内积做归一化处理得到。
应理解的是,相似度可以是0到1之间的数,如果两个结点之间的相似度越接近1,表明两个结点互为邻居结点的概率越大。
步骤S15:根据所述正样本的预测值以及所述负样本的预测值,对所述无监督模型进行评估。
本说明书实施例中,邻居结点的预测值越接近1,非邻居结点的预测值越接近0则表示无监督模型的效果越好。反之,邻居结点即正样本的预测值越接近0,非邻居结点即负样本的预测值越接近1,无监督模型的效果越差。因此,可以通过正样本的预测值以及负样本的预测值来评估无监督模型的好坏,这种方式更加通用以及易实现。
可选地,所述在经过无监督模型得到的N个结点向量中确定出与S个结点对应的S个结点向量,包括:确定结点集合,所述结点集合包含N个结点,所述N个结点与所述N个结点向量相对应;在所述结点集合中随机选取一个结点作为采样结点,共计选取S次,获得所述S个结点。
本说明书实施例中,可以将经过无监督模型计算得到的N个结点向量对应的N个结点构成结点集合。在选择S个结点时,可以在结点集合中有放回的选取S次,每次在N个结点中随机选取一个作为采样结点。
可选地,所述确定所述S个结点中每个结点的邻居结点,以及所述每个结点的非邻居结点,包括:针对所述S个结点中的每个结点,执行以下步骤:根据预设邻居生成算法,在N个结点中确定该结点的邻居结点集合,以及该结点的非邻居结点集合;在所述邻居结点集合中确定一个或多个邻居结点;在所述非邻居结点集合中确定一个或多个非邻居结点。
本说明书实施例中,针对S个结点中的每个结点,都可以采用预设邻居生成算法来获取该结点的邻居结点,预设邻居生成算法可以根据实际需要进行选择,如一阶邻居算法、随机游走邻居算法等。在一个实施例中,为了保证生成的邻居结点能够与无监督模型的计算过程中采用的结点关系保持一致,预设邻居生成算法与无监督模型计算过程中采用的邻居生成算法相同。
在一个实施例中,当采用预设邻居生成算法生成一个结点的邻居结点集合时,那么非邻居结点可以通过在结点集合中减去邻居结点集合得到。应理解的是,对于每个结点来说,对应的邻居结点集合所包含的元素个数可能不同,例如,第一结点拥有5个邻居结点,第二结点拥有8个邻居结点。在进行邻居结点的选择时,邻居结点的个数可以是固定的,也可以是随机的。
仍以上面第一结点和第二结点为例,在一个实施例中,针对每个结点选取相同个数的邻居结点,例如,均选取1个,则可以在第一结点的5个邻居结点中随机选出1个邻居结点,在第二结点的8个邻居结点中随机选出1个邻居结点。在另一个实施例中,针对每个结点随机确定邻居结点的个数,如在第一结点中的5个邻居结点中随机选取2个邻居结点,在第二结点中的8个邻居结点中随机选取3个邻居结点等。当然,针对每个结点,不论使用哪种方式确定邻居结点,确定的邻居结点个数均小于或等于该结点实际对应的邻居结点的总数。
对于每个结点对应的非邻居结点,确定方式与上述邻居结点的确定方式类似,非邻居结点的数量可以根据实际需要进行设定,在一个实施例中,在每个非邻居结点集合中可以随机选取4~20个结点作为该结点的非邻居结点。非邻居结点的确定方式请参考上述确定邻居结点的描述,这里就不再赘述了。
在一种可选的实现方式中,所述根据所述正样本的预测值以及所述负样本的预测值,对所述无监督模型进行评估,包括:根据所述正样本的预测值,以及正样本标签值,构建第一类二元组样本;根据所述负样本的预测值,以及负样本标签值,构建第二类二元组样本;根据所述第一类二元组样本以及所述第二类二元组样本,对所述无监督模型进行评估。
本说明书实施例中,可以构建一个验证集,通过验证集来确定评估无监督模型的效果。在一个实施例中,验证集初始可以设置为空集,在根据正样本和负样本构建二元组样本后,将二元组样本添加至初始的空集中,得到最终的验证集。
为了对邻居结点和非邻居结点进行区分,本说明书实施例中可以通过设置正样本标签值以及负样本标签值来实现。在一个实施例中,正样本标签值设置为1,负样本标签值为0,那么对于结点的一个邻居结点来说,可以根据邻居结点的正样本的预测值以及正样本标签值来确定一个第一类二元组样本,例如,一个邻居结点的正样本的预测值为0.9,则对应的第一类二元组样本为(1,0.9)。对于结点的一个非邻居结点来说,可以根据非邻居结点的负样本的预测值以及负样本标签值来确定一个第二类二元组样本,例如,一个非邻居结点的负样本的预测值为0.3,则对应的第二类二元组样本为(0,0.3)。
根据上述构建的验证集,可以对无监督模型进行评估,如图2所示,为本说明书实施例中根据第一类二元组样本以及所述第二类二元组样本,对所述无监督模型进行评估的方法流程图,该方法包括以下步骤:
步骤S21:根据所述第一类二元组样本以及所述第二类二元组样本,确定目标受试者工作特征曲线;
步骤S22:获取所述目标受试者工作特征曲线下的面积,以评估所述无监督模型。
在该实施例中,可以对第一类二元组样本以及第二类二元组样本组成的验证集进行二分类,并通过确定目标受试者工作特征曲线下的面积来评价二分类的优劣。
应理解的是,在该实施例中,预测值可以用来表示两个结点互为邻居结点的概率。在绘制目标受试者工作特征(Receiver Operating Characteristic,ROC)曲线时,可以根据正样本的预测值以及负样本的预测值按照预测值的大小进行排序。通过选取不同的阈值来对排序好的样本进行二分类,即,预测值大于或等于阈值的二元组样本预测为正样本,预测值小于该阈值的二元组样本预测为负样本。再根据二元组样本中实际对应的标签值来计算该阈值下的真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,FPR)。
在计算真正例率,假正例率时会涉及到以下四种情况:真正例(True positive,TP),假正例(False positive,FP),假反例(False negative,FN),真反例(True negative,TN)。其中,TP是指预测是正样本,且预测对了,FP是指预测是正样本,且预测错了,FN是指预测是负样本,且预测错了,TN是指预测是负样本,且预测对了。以上述二元组样本为例,如果一个二元组样本,预测值大于或等于阈值,则表明该二元组样本被预测是正样本,再查看该二元组样本的标签值,如果是正样本标签值,则表明该二元组样本为TP,如果标签值是负样本标签,则表明该二元组样本为FP。如果一个二元组样本,预测值小于阈值,则表明该二元组样本被预测是负样本,再查看该二元组样本的标签值,如果标签值是正样本标签值,则该二元组样本为FN,如果标签值是负样本标签值,则该二元组样本为TN。
计算真正例率TPR=TP/(TP+FN),以及假正例率FPR=FP/(TN+FP)。其中,真正例率代表预测为正样本且预测对了的可能性,假正例率代表预测为正样本但是预测错了的可能性。
将真正例率作为纵轴,假正例率作为横轴,得到一个构成ROC曲线的坐标。在一个实施例中,可以将每个二元组样本的预测值作为一个阈值,均计算该阈值下的真正例率以及假正例率。例如,如果二元组样本的个数为M,则对应有M个预测值,将M个预测值按照大小顺序进行排列,并将每个预测值作为一个阈值,当二元组样本的预测值大于或等于这个阈值时,预测该二元组样本为正样本,当二元组样本的预测值小于这个阈值时,预测该二元组样本为负样本。每选取一个阈值,就可以得到一组TPR和FPR,即ROC曲线上的一点。在该实施例中,一共得到M组TPR和FPR,根据这M个点可以绘制ROC曲线。
AUC曲线(Area Under ROC Curve)为ROC曲线下的面积,能够反映ROC曲线表达的分类能,。通常来讲,AUC的值越大,表明分类的效果越好,因此可以通过AUC来评估无监督模型的效果。应理解的是,除了使用AUC来评估无监督模型的效果,还可以使用其他方法,例如F1值等,这里不做限定。
为了更好的理解本说明书实施例提供的无监督模型评估方法,下面以经过无监督模型得到的结点向量为例,来对本说明书实施例提供的无监督模型评估方法来进行说明。在该实施例中,经过无监督模型计算得到的结点集合为V,与结点集合对应的结点向量集合为E,结点的采样数为S,验证集T初始为空集,针对S个结点中的每个结点,均确定1个邻居结点以及N个非邻居结点构建目标验证集。
步骤一,获取结点集合V,结点向量集合E,目标验证集结点的采样数S;
步骤二,设置循环次数i,i从1到S,在每次循环过程中,执行以下步骤:
从集合V中随机采样出一个结点,记为vi;
根据预设邻居生成算法,生成vi的邻居结点集合以及vi的非邻居结点集合,并从邻居结点集合中随机采样1个邻居结点,即为pi;
从集合E中查询得到vi的向量,以及pi的向量,并计算两个向量之间的相似度,即为samvp;
构建二元组样本(1,samvp),加入验证集T;
从非邻居结点集合中随机采样N个非邻居结点,记为集合Ni;
从集合E中查询得到结点vi的向量,以及Ni中各结点的向量,然后计算vi的向量与Ni中各结点向量之间的相似度,将得到的N个相似度值记为集合samvn;
对于集合samvn中的各元素samvnj,构造N个二元组(0,samvnj),加入验证集T,其中,j的值为1~N。
步骤三:集合T中的每个二元组可视为由标签值和预测值构成,因此可使用二分类指标,如AUC、F1值等对集合T进行评估,评估结果可以作为衡量该无监督模型的学习效果的指标。
第二方面,基于同一发明构思,本说明书实施例提供一种无监督模型评估装置,请参考图3,包括:
第一确定模块31,用于在经过无监督模型得到的N个结点向量中确定出与S个结点对应的S个结点向量,N和S均为正整数;
第二确定模块32,用于确定所述S个结点中每个结点的邻居结点,以及所述每个结点的非邻居结点;
正样本预测值确定模块33,用于根据所述每个结点的邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的邻居结点与所述每个结点的相似度作为正样本的预测值;
负样本预测值确定模块34,用于根据所述每个结点的非邻居结点的结点向量,以及所述每个结点的结点向量,确定所述每个结点的非邻居结点与所述每个结点的相似度作为负样本的预测值;
评估模块35,用于根据所述正样本的预测值以及所述负样本的预测值,对所述无监督模型进行评估。
在一种可选实现方式中,评估模块35,用于:
根据所述正样本的预测值,以及正样本标签值,构建第一类二元组样本;
根据所述负样本的预测值,以及负样本标签值,构建第二类二元组样本;
根据所述第一类二元组样本以及所述第二类二元组样本,对所述无监督模型进行评估。
在一种可选实现方式中,评估模块35,用于:
根据所述第一类二元组样本以及所述第二类二元组样本,确定目标受试者工作特征曲线;
获取所述目标受试者工作特征曲线下的面积,以评估所述无监督模型。
在一种可选实现方式中,第二确定模块32,用于:
针对所述S个结点中的每个结点,执行以下步骤:
根据预设邻居生成算法,在N个结点中确定该结点的邻居结点集合,以及该结点的非邻居结点集合;
在所述邻居结点集合中确定一个或多个邻居结点;
在所述非邻居结点集合中确定一个或多个非邻居结点。
在一种可选实现方式中,第一确定模块31用于:
结点集合获取模块,用于确定结点集合,所述结点集合包含N个结点,所述N个结点与所述N个结点向量相对应;
采样结点获取模块,用于在所述结点集合中随机选取一个结点作为采样结点,共计选取S次,获得所述S个结点。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的无监督模型评估方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于与前述实施例中无监督模型评估方法同样的发明构思,本发明还提供一种服务器,如图4所示,包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,所述处理器402执行所述程序时实现前文所述无监督模型评估方法的任一方法的步骤。
其中,在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口406在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
第四方面,基于与前述实施例中基于无监督模型评估方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于无监督模型评估方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。