作者:张文园,单位:中国移动智慧家庭运营中心
随着互联网的发展,企业可以获得越来越多的数据,这些数据可以用于帮助企业更好的了解用户,即客户画像,也可以用来改善用户的体验。但这些数据中可能存在大量没有标记的数据。如果所有数据均采用人工标记的方式则存在两方面的缺点,一是花费的时间成本较高,人工标记效率低,数据量越大需要雇佣的人越多,时间也会越长,成本越高,二是随着用户规模的增大,人工标记的速度很难赶上数据的增长。因此如何有效利用当前有标记样本的数据成为关键,而半监督学习则是应对有标签的样本数量远小于无标签样本的情况。
Part 01● 什么是半监督学习 ●
半监督学习是指使用既有有标签的数据又有无标签的数据训练模型。半监督学习通常会基于有标签的数据构建属性空间,再从无标签的数据中提取有效信息填充(或重构)属性空间。因此,通常半监督学习的初始训练集会划分为有标签的数据集D1和无标签数据集D2,然后通过预处理、特征提取等基本步骤后训练半监督学习模型,然后将训练好的模型用于生产环境,为用户提供服务。
图1 半监督学习训练过程
Part 02● 半监督学习的假设 ●
为了实现标签数据有效补充有标签数据中的“有用”信息,对数据分部等方面做出一些假设。半监督学习的基础假设是p(x)中包含p(y|x)的信息,即无标签的数据应该包含对于标签预测有用的且与有标签的数据不相同的或者很难从有标签的数据中提取出来的信息。此外,还存在一些服务于算法的假设。例如,相似性假设(平滑假设)是指在数据样本构建的属性空间中,相近或相似的样本具有相同的标签;低密度分离假设是指在数据样本少的地方存在一个决策边界能区分不同标签的数据。
以上假设主要目的是为了表明有标签的数据与无标签的数据来源于相同的数据分布。
Part 03● 半监督学习算法分类 ●
半监督学习算法众多,可大致分为直推式学习(transductive learning)和 归纳式学习(Inductive model),二者区别在于用于模型评估的测试数据集的选择。直推式的半监督学习是指需要预测标签的数据集就是用于训练的无标签数据集,学习的目的是为了进一步提高预测结果的准确性。归纳式学习则是为完全未知的数据集预测标签。
图2 半监督学习算法分类
此外,常见的半监督学习算法的步骤为:第一步会在有标签的数据上训练模型,然后用这个模型给无标签的数据打上伪标签,然后将伪标签和有标签的数据组合成新的训练集,在这个训练集上训练一个新的模型,最后用这个模型给预测数据集打上标签。
Part 04● 总结 ●
半监督学习的最大的问题是在很多情况下,模型的性能依赖于有标签的数据集,并且对于有标签数据集的质量要求较高,甚至半监督学习模型预测准确度与基于有标签数据集的有监督模型的结果相差不大,反而半监督模型为了有效提取无标签数据中的有效信息,会消耗更多的资源。因此,半监督学习的发展方向是提高算法的鲁棒性以及数据提取的有效性。
目前半监督学习领域中比较热门的是PU-Learning(positive-unlabeled learning),这类算法的主要应用场景是只有正和无标签数据的数据集。其优点是在一些场景下,我们容易获得比较可靠的正标签数据集,并且数据量相对较大。例如,垃圾邮件检测中很容易获得正常邮件。