精华内容
下载资源
问答
  • 摘要:本文详细阐述了深度学习如何来实现处理结构化数据的方法。嵌入源自于NLP(word2vec)中的单词学习,上图来自Aylien本博文将涉及机器学习中两个重复出现的问题:第一个问题是深度学习在图像和文本中都有较好的...

    摘要: 本文详细阐述了深度学习如何来实现处理结构化数据的方法。


    嵌入源自于NLPword2vec)中的单词学习,上图来自Aylien

    本博文将涉及机器学习中两个重复出现的问题:第一个问题是深度学习在图像和文本中都有较好的表现,我们又如何将其用于表格数据?其次,在构建机器学习模型时,你必须始终问自己一个问题:将如何处理数据集中的分类变量?令人惊讶的是,我们可以用相同的答案回答这两个问题:实体嵌入。

    现在,深度学习在许多方面都优于其他机器学习方法:图像识别,音频分类和自然语言处理只是众多应用中的一部分。这些研究领域都使用所谓的“非结构化数据”,即没有预定义结构的数据。一般来说,这些数据也可以按照一定的顺序(像素,用户行为,文本)排列。深度学习已成为处理非结构化数据的标准。现在的问题是深度学习是否也可以在结构化数据上有较好的表现。结构化数据是以表格格式组织的数据,其中列表示不同的特征,而行表示不同的数据样本。这与数据在Excel工作表中的表现形式类似。目前,结构化数据集的黄金标准是梯度提升树GBT模型(Chen&Guestrin,2016)。他们在Kaggle比赛以及学术文献中一直都有最好的表现。最近的深度学习已经表明它可以在结构化数据上匹配这些增强树模型。实体嵌入在此扮演着重要角色。

     

    结构化数据与非结构化数据

    实体嵌入

    实体嵌入在结构化数据上拟合神经网络这一方面已经取得成功,例如,Kaggle竞赛中的获胜方案使用实体嵌入来处理每次乘坐的分类元数据预测出租车车距(deBrébisson et al.,2015)。同样,预测罗斯曼药店商店销售任务的第三个解决方案使用了比第一个和第二个解决方案更为简单的方法。该团队使用一个具有实体嵌入的简单前馈神经网络作为分类变量来实现,分类变量的种类超过1000个类别,如商店ID(Guo&Berkahn,2016)。

    如果这是你第一次阅读有关嵌入的内容,我建议你先阅读本文。简而言之,嵌入是指向量的类别表示。让我们来演示一下下述这句话是如何工作的:

    ‘Deep learning is deep’

    我们可以用向量来表示每个单词,所以“deep”这个单词变成类似[0.20,0.82,0.45,0.67]的东西。实际上,人们会用像1 2 3 1这样的整数代替单词,并使用查找表来查找链接到每个整数的矢量。这种做法在自然语言处理中非常常见,并且还用于包含行为序列的数据,如在线用户的踪迹。实体嵌入是指在分类变量上使用这一原则,其中分类变量的每个类别都由向量表示。

    让我们快速回顾下机器学习处理分类变量的两种常用方法。

    1. 热编码(One-hot encoding):创建二进制子特征,如word_deep,word_learning,word_is。属于该数据点的类别值为1,其他值为0。所以,对于“deep”这个词,特征word_deep为1,word_learning,word_is则为0。

    2. 标签编码(Label encoding):像之前的例子那样分配整数,因此“deep”为1,“learning”为2等等。这种方法比较适用于基于树的方法,但不适用于线性模型,因为它意味着赋值的顺序。

    实体嵌入基本上将标签编码方法上升了一个层次,不仅仅是将一个整数分配给一个类别,而是整个向量。这个向量可以是任意尺寸,并且必须由研究人员指定。你可能想知道这些实体嵌入的优点是什么。

    1.实体嵌入解决了独热编码的缺点。具有许多类别的独热编码变量会导致非常稀疏的向量,这在计算上是无效的,并且难以优化。标签编码解决了这一问题,但只能用于基于树的模型。

    2.嵌入提供有关不同类别之间距离的信息。使用嵌入的优点在于,在神经网络的训练期间,也要训练分配给每个类别的向量。因此,在训练过程结束时,我们最终会得到一个代表每个类别的向量。这些训练过的嵌入被可视化,为每个类别提供可视化。在Rossmann销售预测任务中,即使没有为模型提供地理位信息,德国的可视化嵌入显示了与各州地理位置相似的集群。

    3.训练好的嵌入可以保存并用于非深度学习模型。例如,每月训练分类特征的嵌入并保存。通过加载训练好的分类特征嵌入,我们可以使用这些嵌入来训练随机森林或梯度提升树GBT模型。

    选择嵌入尺寸

    嵌入尺寸是指代表每个类别的向量长度,并且可以为每个分类特征设置。 类似于神经网络中超参数的微调(tuning),嵌入尺寸的选择没有硬性的规定。在出租车距离预测任务中,每个特征的嵌入尺寸为10。这些特征具有不同的维度,从7(一周的天数)到57106(客户端ID)。为每个类别选择相同的嵌入尺寸是一种简单易行的方法,但可能不是最优的方法。

    对于Rossmann商店销售预测任务,研究人员选择1和M之间的一个值(类别数量)-1,最大嵌入尺寸为10。例如,一周中的某天(7个值)的嵌入尺寸为6, 而商店ID(1115个值)的嵌入尺寸为10。但是,作者没有明确的选择1和M-1之间选择的规则。

    Jeremy Howard重建了Rossmann竞赛的解决方案,并提出了以下解决方案来选择嵌入尺寸:

     

    可视化嵌入

    嵌入的优点是可以将已经学习到的嵌入进行可视化处理,以显示哪些类别彼此相似。最流行的方法是t-SNE,它是一种降维技术,特别适用于高维数据集的可视化处理。最后,让我们列举两个简单的可视化嵌入的例子。以下是家用产品的可视化嵌入及其所属类别。类似的产品,如烤箱,冰箱和微波炉之间非常相似;充电器,电池和钻头等产品也是如此。


    家用产品的学习嵌入

    另一个例子是在本文前面提到的Rossmann销售预测任务中德国各州的学习嵌入。嵌入中各州之间的邻近性与其地理位置相似。 

     

    德国各州学习嵌入示例

    参考资料

    [1]Chen, T., & Guestrin, C. (2016, August). Xgboost: A scalable tree boosting system. In Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining (pp. 785–794). ACM.

    [2]De Brébisson, A., Simon, É., Auvolat, A., Vincent, P., & Bengio, Y. (2015). Artificial neural networks applied to taxi destination prediction. arXiv preprint arXiv:1508.00021.

    [3]Guo, C., & Berkhahn, F. (2016). Entity embeddings of categorical variables. arXiv preprint arXiv:1604.06737.


     以上为译文。

    文章原标题《Using Deep Learning for Structured Data with Entity Embeddings》,

    译者:Mags,审校:袁虎。

    原文链接

    阅读更多干货好文,请关注扫描以下二维码:



    展开全文
  • 结构表示的深度学习

    千次阅读 2020-12-11 18:42:07
    在这篇论文中,我们提出了一种新颖的方法来利用结构化数据进行机器学习。我们所提出的方法主要基于以图形式构造神经网络的模型表示和计算主题,这使得从具有显式和隐式模块结构的数据学习时可以改进泛化性能。 我们...

    本文为荷兰阿姆斯特丹大学(作者:Thomas Kipf)的博士论文,共178页。

    在这篇论文中,我们提出了一种新颖的方法来利用结构化数据进行机器学习。我们所提出的方法主要基于以图形式构造神经网络的模型表示和计算主题,这使得从具有显式和隐式模块结构的数据学习时可以改进泛化性能。

    我们的贡献如下:

    •我们提出了将图卷积网络(GCN)(Kipf和Welling,2017;第3章)用于图结构数据中节点的半监督分类。GCN是一种图神经网络,在图中执行参数化的消息传递操作,建模为谱图卷积的一阶近似。GCN发表时在许多无向图数据集中实现了节点级分类任务的最新性能。

    •我们提出了图自动编码器(GAE)(Kipf和Welling,2016;第4章),用于图结构数据中的无监督学习和链接预测。GAE利用一个基于图神经网络的编码器和一个基于成对记分函数重建图链接的解码器。我们进一步提出了一个以概率生成模型为框架,利用变分推理进行训练的模型变量,我们称之为变分GAE。GAE和变分GAE特别适合于在没有节点标记的图上进行表示学习。

    •我们提出关系GCN(Schlichtkrull and Kipf et al.,2018;第5章),将GCN模型扩展到具有多个边缘类型的有向关系图。关系GCN非常适合于对关系数据进行建模,我们展示了它在知识库中半监督实体分类中的应用。

    •我们提出了神经关系推理(NRI)(Kipf和Fetaya等人,2018;第6章)来发现交互系统中潜在的关系结构。NRI将图神经网络与基于图中边缘类型的概率潜在变量模型相结合。我们将NRI应用于相互作用的动力学系统,如物理学中的多粒子系统。

    •我们提出了组合模仿学习和执行(CompILE)(Kipf等人,2019;第7章),这是序列行为数据中结构发现的模型。CompILE使用一种新的可微序列分割机制来发现与自动编码有意义的子序列或行为子程序。潜在代码可以被执行和重新组合以产生新的行为。

    •我们提出了对比训练的结构化世界模型(C-SWM)(Kipf等人,2020;第8章),用于在没有监督的情况下从原始像素观测值学习环境的对象因子化模型。C-SWM使用图神经网络将环境表示成图的形式,其中节点表示对象,边表示受某个动作影响的成对关系或交互作用。C-SWM采用无像素损失的对比学习方法进行训练,非常适合于具有合成结构的环境学习模型。

    In this thesis, Deep Learning with Graph-Structured Representations, we proposenovel approaches to machine learning with structured data. Our proposedmethods are largely based on the theme of structuring the representations andcomputations of neural network-based models in the form of a graph, whichallows for improved generalization when learning from data with both explicitand implicit modular structure.

    Our contributions are as follows:

    • We propose graph convolutional networks (GCNs) (Kipf and Welling,2017; Chapter 3) for semi-supervised classification of nodes in graph-structured data. GCNs are a form of graph neural network that perform parameterized message-passing operations in a graph, modeled as afirst-order approximation to spectral graph convolutions. GCNs achievedstate-of-the-art performance in node-level classification tasks in a numberof undirected graph datasets at the time of publication.

    • We propose graph auto-encoders (GAEs) (Kipf and Welling, 2016; Chapter 4) for unsupervised learning and link prediction in graph-structureddata. GAEs utilize an encoder based on graph neural networks and adecoder that reconstructs links in a graph based on a pairwise scoringfunction. We further propose a model variant framed as a probabilisticgenerative model that is trained using variational inference, which wename variational GAE. GAEs and variational GAEs are particularly suitedfor representation learning on graphs in the absence of node labels.

    • We propose relational GCNs (Schlichtkrull and Kipf et al., 2018; Chapter5) that extend the GCN model to directed, relational graphs with multiple edge types. Relational GCNs are well-suited for modeling relationaldata and we demonstrate an application to semi-supervised entity classification in knowledge bases.

    • We propose neural relational inference (NRI) (Kipf and Fetaya et al., 2018;Chapter 6) for discovery of latent relational structure in interacting systems. NRI combines graph neural networks with a probabilistic latentvariable model over edge types in a graph. We apply NRI to model interacting dynamical systems, such as multi-particle systems in physics.

    • We propose compositional imitation learning and execution (CompILE)(Kipf et al., 2019; Chapter 7), a model for structure discovery in sequentialbehavioral data. CompILE uses a novel differentiable sequence segmentation mechanism to discover and auto-encode meaningful sub-sequencesor sub-programs of behavior in the context of imitation learning. Latentcodes can be executed and re-composed to produce novel behavior.

    • We propose contrastively-trained structured world models (C-SWMs)(Kipf et al., 2020; Chapter 8) for learning object-factorized models of environments from raw pixel observations without supervision. C-SWMsuse graph neural networks to structure the representation of an environment in the form of a graph, where nodes represent objects and edgesrepresent pairwise relations or interactions under the influence of an action. C-SWMs are trained using contrastive learning without pixel-basedlosses and are well-suited for learning models of environments with compositional structure.

    1.  引言

    2.  项目背景

    3.  用于半监督分类的图卷积网络

    4.  基于图自编码的链接预测

    5.  基于图卷积网络的模型关系数据

    6.  用于交互系统的神经关系推理

    7.  组合模仿学习与执行

    8.  结构化世界模型的对比学习

    9.  结论

    完整资料领取

    展开全文
  • 你的监督学习问题的数据由输入和输出标签 构成,如果你观察一下你的数据,并发现有些输出标签 是错的。你的数据有些标签是错的,是否值得花时间去修正这些标签呢? 我们看看在猫分类问题中,图片是猫,;不是猫,。...

    ←上一篇 ↓↑ 下一篇→
    2.1 误差分析 回到目录 2.3 快速搭建你的第一个系统,并进行迭代

    清除标注错误的数据 (Cleaning Up Incorrectly Labeled Data)

    你的监督学习问题的数据由输入 xx 和输出标签 yy 构成,如果你观察一下你的数据,并发现有些输出标签 是错的。你的数据有些标签是错的,是否值得花时间去修正这些标签呢?

    在这里插入图片描述

    我们看看在猫分类问题中,图片是猫, y=1y=1 ;不是猫, y=0y=0 。所以假设你看了一些数据样本,发现这(倒数第二张图片)其实不是猫,所以这是标记错误的样本。我用了这个词,“标记错误的样本”来表示你的学习算法输出了错误的 yy 值。但我要说的是,对于标记错误的样本,参考你的数据集,在训练集或者测试集 yy 的标签,人类给这部分数据加的标签,实际上是错的,这实际上是一只狗,所以 yy 其实应该是0,也许做标记的那人疏忽了。如果你发现你的数据有一些标记错误的样本,你该怎么办?

    在这里插入图片描述

    首先,我们来考虑训练集,事实证明,深度学习算法对于训练集中的随机错误是相当健壮的(robust)。只要你的标记出错的样本,只要这些错误样本离随机错误不太远,有时可能做标记的人没有注意或者不小心,按错键了,如果错误足够随机,那么放着这些错误不管可能也没问题,而不要花太多时间修复它们。

    当然你浏览一下训练集,检查一下这些标签,并修正它们也没什么害处。有时候修正这些错误是有价值的,有时候放着不管也可以,只要总数据集总足够大,实际错误率可能不会太高。我见过一大批机器学习算法训练的时候,明知训练集里有 xx 个错误标签,但最后训练出来也没问题。

    我这里先警告一下,深度学习算法对随机误差很健壮,但对系统性的错误就没那么健壮了。所以比如说,如果做标记的人一直把白色的狗标记成猫,那就成问题了。因为你的分类器学习之后,会把所有白色的狗都分类为猫。但随机错误或近似随机错误,对于大多数深度学习算法来说不成问题。

    在这里插入图片描述

    现在,之前的讨论集中在训练集中的标记出错的样本,那么如果是开发集和测试集中有这些标记出错的样本呢?如果你担心开发集或测试集上标记出错的样本带来的影响,他们一般建议你在错误分析时,添加一个额外的列,这样你也可以统计标签 y=1y=1 错误的样本数。所以比如说,也许你统计一下对100个标记出错的样本的影响,所以你会找到100个样本,其中你的分类器的输出和开发集的标签不一致,有时对于其中的少数样本,你的分类器输出和标签不同,是因为标签错了,而不是你的分类器出错。所以也许在这个样本中,你发现标记的人漏了背景里的一只猫,所以那里打个勾,来表示样本98标签出错了。也许这张图实际上是猫的画,而不是一只真正的猫,也许你希望标记数据的人将它标记为 y=0y=0 ,而不是 y=1y=1 ,然后再在那里打个勾。当你统计出其他错误类型的百分比后,就像我们在之前的视频中看到的那样,你还可以统计因为标签错误所占的百分比,你的开发集里的 yy 值是错的,这就解释了为什么你的学习算法做出和数据集里的标记不一样的预测1。

    所以现在问题是,是否值得修正这6%标记出错的样本,我的建议是,如果这些标记错误严重影响了你在开发集上评估算法的能力,那么就应该去花时间修正错误的标签。但是,如果它们没有严重影响到你用开发集评估成本偏差的能力,那么可能就不应该花宝贵的时间去处理。

    我给你看一个样本,解释清楚我的意思。所以我建议你看3个数字来确定是否值得去人工修正标记出错的数据,我建议你看看整体的开发集错误率,在我们以前的视频中的样本,我们说也许我们的系统达到了90%整体准确度,所以有10%错误率,那么你应该看看错误标记引起的错误的数量或者百分比。所以在这种情况下,6%的错误来自标记出错,所以10%的6%就是0.6%。也许你应该看看其他原因导致的错误,如果你的开发集上有10%错误,其中0.6%是因为标记出错,剩下的占9.4%,是其他原因导致的,比如把狗误认为猫,大猫图片。所以在这种情况下,我说有9.4%错误率需要集中精力修正,而标记出错导致的错误是总体错误的一小部分而已,所以如果你一定要这么做,你也可以手工修正各种错误标签,但也许这不是当下最重要的任务。

    在这里插入图片描述

    我们再看另一个样本,假设你在学习问题上取得了很大进展,所以现在错误率不再是10%了,假设你把错误率降到了2%,但总体错误中的0.6%还是标记出错导致的。所以现在,如果你想检查一组标记出错的开发集图片,开发集数据有2%标记错误了,那么其中很大一部分,0.6%除以2%,实际上变成30%标签而不是6%标签了。有那么多错误样本其实是因为标记出错导致的,所以现在其他原因导致的错误是1.4%。当测得的那么大一部分的错误都是开发集标记出错导致的,那似乎修正开发集里的错误标签似乎更有价值。

    在这里插入图片描述

    如果你还记得设立开发集的目标的话,开发集的主要目的是,你希望用它来从两个分类器 AABB 中选择一个。所以当你测试两个分类器 AABB 时,在开发集上一个有2.1%错误率,另一个有1.9%错误率,但是你不能再信任开发集了,因为它无法告诉你这个分类器是否比这个好,因为0.6%的错误率是标记出错导致的。那么现在你就有很好的理由去修正开发集里的错误标签,因为在右边这个样本中,标记出错对算法错误的整体评估标准有严重的影响。而左边的样本中,标记出错对你算法影响的百分比还是相对较小的。

    现在如果你决定要去修正开发集数据,手动重新检查标签,并尝试修正一些标签,这里还有一些额外的方针和原则需要考虑。首先,我鼓励你不管用什么修正手段,都要同时作用到开发集和测试集上,我们之前讨论过为什么,开发和测试集必须来自相同的分布。开发集确定了你的目标,当你击中目标后,你希望算法能够推广到测试集上,这样你的团队能够更高效的在来自同一分布的开发集和测试集上迭代。如果你打算修正开发集上的部分数据,那么最好也对测试集做同样的修正以确保它们继续来自相同的分布。所以我们雇佣了一个人来仔细检查这些标签,但必须同时检查开发集和测试集。

    在这里插入图片描述

    其次,我强烈建议你要考虑同时检验算法判断正确和判断错误的样本,要检查算法出错的样本很容易,只需要看看那些样本是否需要修正,但还有可能有些样本算法判断正确,那些也需要修正。如果你只修正算法出错的样本,你对算法的偏差估计可能会变大,这会让你的算法有一点不公平的优势,我们就需要再次检查出错的样本,但也需要再次检查做对的样本,因为算法有可能因为运气好把某个东西判断对了。在那个特例里,修正那些标签可能会让算法从判断对变成判断错。这第二点不是很容易做,所以通常不会这么做。通常不会这么做的原因是,如果你的分类器很准确,那么判断错的次数比判断正确的次数要少得多。那么就有2%出错,98%都是对的,所以更容易检查2%数据上的标签,然而检查98%数据上的标签要花的时间长得多,所以通常不这么做,但也是要考虑到的。

    在这里插入图片描述

    最后,如果你进入到一个开发集和测试集去修正这里的部分标签,你可能会,也可能不会去对训练集做同样的事情,还记得我们在其他视频里讲过,修正训练集中的标签其实相对没那么重要,你可能决定只修正开发集和测试集中的标签,因为它们通常比训练集小得多,你可能不想把所有额外的精力投入到修正大得多的训练集中的标签,所以这样其实是可以的。我们将在本周晚些时候讨论一些步骤,用于处理你的训练数据分布和开发与测试数据不同的情况,对于这种情况学习算法其实相当健壮,你的开发集和测试集来自同一分布非常重要。但如果你的训练集来自稍微不同的分布,通常这是一件很合理的事情,我会在本周晚些时候谈谈如何处理这个问题。

    最后我讲几个建议:

    首先,深度学习研究人员有时会喜欢这样说:“我只是把数据提供给算法,我训练过了,效果拔群”。这话说出了很多深度学习错误的真相,更多时候,我们把数据喂给算法,然后训练它,并减少人工干预,减少使用人类的见解。但我认为,在构造实际系统时,通常需要更多的人工错误分析,更多的人类见解来架构这些系统,尽管深度学习的研究人员不愿意承认这点。

    其次,不知道为什么,我看一些工程师和研究人员不愿意亲自去看这些样本,也许做这些事情很无聊,坐下来看100或几百个样本来统计错误数量,但我经常亲自这么做。当我带领一个机器学习团队时,我想知道它所犯的错误,我会亲自去看看这些数据,尝试和一部分错误作斗争。我想就因为花了这几分钟,或者几个小时去亲自统计数据,真的可以帮你找到需要优先处理的任务,我发现花时间亲自检查数据非常值得,所以我强烈建议你们这样做,如果你在搭建你的机器学习系统的话,然后你想确定应该优先尝试哪些想法,或者哪些方向。

    这就是错误分析过程,在下一个视频中,我想分享一下错误分析是如何在启动新的机器学习项目中发挥作用的。

    课程板书

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    ←上一篇 ↓↑ 下一篇→
    2.1 误差分析 回到目录 2.3 快速搭建你的第一个系统,并进行迭代

    展开全文
  • 本发明涉及计算机技术领域,具体涉及一种基于深度学习的音乐个性分 类推荐方法。背景技术:在互联网技术的迅速发展,人们可以通过手机等等终端享受音乐。网络上 存有海量的音乐数据,为了方便用户发现合适的歌,...

    本发明涉及计算机技术领域,具体涉及一种基于深度学习的音乐个性化分 类推荐方法。

    背景技术:

    在互联网技术的迅速发展,人们可以通过手机等等终端享受音乐。网络上 存有海量的音乐数据,为了方便用户发现合适的歌,传统音乐曲库需要人工为 音乐本身录入流派,年代,作者等标签,然后再给用户推荐相同标签的歌曲。

    然而,在实践中发现,以曲库录入的标签需要专业人工录入,进行结构化, 工作量巨大。且同一首音乐,不同的听众也会有不同的感受,根据曲库固定的 标签对音乐进行分类没有考虑到大部分用户自身的实际收听感受,推荐不够灵 活和准确。

    近年来,出现了深度学习的方法,其在特征学习方面有突出的贡献。与传 统的机器学习方法不同,深度学习其网络可以根据输入自动学习特征,适于解 决大数据分析问题。

    技术实现要素:

    为了克服现有音乐推荐技术中存在的数据标签模型构造成本高的问题,推 荐结果不过灵活和准确,提供一种基于深度学习的音乐个性化分类推荐方法, 在大数据下按用户喜好分类推荐音乐的方法。

    本发明至少通过如下技术方案之一实现。

    通过记录用户收听过程中对音乐表示收听感受的操作,例如“收藏”、“喜 欢”等,生成每个用户的喜欢音乐列表。在音乐列表中,邻近的音乐表示了用 户对音乐由相似的喜好。把局部的音乐列表作为深度神经网络的输入,可以把 大数据下用户表现出相似喜好的音乐映射到向量空间中相近的位置。对音乐向 量进行聚类可以获得多个按用户喜好分类的音乐集合。

    同时,因为音乐的频谱可以有效的表示出音乐的一些特征,通过训练深度 神经网络学习音乐的频谱特征分类音乐,获得音乐所属的用户喜好类别,再把 音乐推荐给有同类喜好的用户。

    本发明采用如下技术方案。

    一种基于深度学习的音乐个性化分类推荐方法,包括如下步骤:

    S1获得表示用户喜好的歌曲列表;

    S2筛选出收听操作数多的高频次音乐列表,训练音乐向量模型;

    S3对音乐向量模型进行用户喜好聚类;

    S4训练深度网络对频谱图进行用户喜好分类;

    S5计算具体用户的喜好类别并为其推荐同类相似歌曲;

    进一步的,所述S1具体为:记录用户收听音乐过程中表示收听感受的操作, 例如表示喜好的操作“收藏”、“喜欢”等,由此获得该用户一组喜欢的歌曲列 表。

    进一步的,所述S2具体如下:

    S2.1统计所有音乐的操作频次,筛选出高频次音乐集合VH和低频次音乐集 合VL。筛选出每个用户列表中属于VH的高频次音乐构成列表l,作为音乐向量 模型的训练数据;

    S2.2给定一个音乐列表l,由音乐s1,s2,…,sT构成,以概率形式表示为

    其中的Contexti表示的音乐si的上下文,基于一段时间内用户喜好的音乐相似 的假设,此处视为列表内该音乐前后w首音乐,w根据实验效果调整得出。

    首先将每首音乐按均匀分布初始化为统一维度的向量,然后构建一个只有 一个隐层的全连接神经网络神经网络,输入为音乐向量,输出为Contexti包含的 2w个音乐向量。

    根据所述概率模型,设计一个三层的神经网络学习音乐之间的关系;将每 首音乐按均匀分布初始化为统一维度的向量,第一层输入层为Contexti包含的音 乐向量,第二层投影层将音乐向量相加,第三层输出层为音乐向量;

    S2.3以xi输入为例,对应一组训练样本,

    xi为输入,为正样本,其余为k-1个负样本,根据歌曲出现频率 随机采样负样本。

    目标函数为噪声对比估计函数(noise-contrastive estimation(NCE)):

    其中,为正例的概率,为负例的概率,目标函数的意义 是尽可能让真实的正例目标词获得高概率,而k个负例噪声词获得低概率。

    使用随机梯度上升训练S2.2中的神经网络模型,并得到相应的VH音乐向 量。

    所述S3具体为:对S2获得的音乐向量进行T-SNE降维。然后使用常见聚 类方法,如KMeans方法,对降维后的歌曲聚集成k簇,表示k个依据用户喜好 划分的音乐种类。

    所述S4具体为:由于用户操作记录少的音乐通过S2的步骤获得描述自身 的音乐向量模型不够准确,为提高准确性,将利用频谱图和S3中的聚类结果进 行音乐分析,包括如下步骤:

    S4.1将音乐文件统一混音为单声道进行分析,对音频信号进行短时傅里叶 变换获得频谱,然后将普通的频率标度转化为更适应人耳感知的梅尔频率标度, 映射关系如下式所示:

    mel(f)=2595*log(1+f/700)

    每首音乐可以获得宽度固定,长度与音乐时间正相关的梅尔频谱图;

    S4.2构造卷积神经网络模型,典型的卷积神经网络包括输入层、卷积层、 子采样层、全连接层和输出层;如图3构建卷积神经网络结构。为S3中获得的 音乐分类构建训练集和测试集,为训练集中的音乐按照S4中的方法生成频谱图 并切割成合适大小的片段输入网络以进行训练至参数稳定。测试集中每首歌曲 按同样方法生成一组频谱图片段输入,统计每个片段通过网络后输出的分类, 计数最大的判别为音乐的分类。

    进一步的,所述S5具体为:综合前几步结果,由S2可以获得VH高频次音乐 集合的音乐向量,且根据S3至S4,可以获得VL低频次音乐集合所属的用户喜好 分类;参考用户喜欢列表中最新加入列表的n首音乐,对n首音乐中存在高频 次子列表,即子列表的音乐包含于高频次音乐集合VH中,则按S2获得的向量模 型寻找其最近的m首音乐作为推荐,其中m,n按实际推荐效果选择合适的参数。 对其余低频音乐,则按S4获得的分类为其推荐分类中的音乐。

    与现有技术相比,本发明的有益效果和优点如下:

    (1)本发明能自动对音乐按用户喜好分类,减少了推荐系统中人工建立分 类标签的工作。

    (2)本发明结合了用户喜好和歌曲本身音频特征,在大数据下能有效的建 立歌曲间的相似关系使推荐更为准确。

    (3)本发明针对冷启动的情形做了优化,在新入乐库的音乐未有足够用户 喜好数据支撑时,通过深度学习分析频谱依然能找到相似的音乐进行推荐。

    附图说明

    图1是本发明的工作流程图;

    图2是实施例中音乐生成的梅尔频谱图片段;

    图3是实施例基于深度卷积神经网络的框架图。

    具体实施方式

    下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施 方式不限于此,需指出的是,以下若有未特别详细说明之过程或符号,均是本 领域技术人员可参照现有技术实现或理解的(如概率模型)。

    实施例

    一种基于深度学习的音乐个性化分类推荐方法,包括如下步骤:

    S1通过音乐播放客户端上传并记录每个用户收听音乐过程中表示收听感 受的操作,例如对某些音乐点击“喜欢”、“收藏”等按钮,由此获得表示该用 户喜好的音乐列表。

    S2筛选出收听操作数多的高频次音乐列表,用大量(理论上越多越好)用 户的高频次音乐列表训练音乐向量模型,具体包含如下步骤:

    S2.1后台根据S1中上传的所有用户对音乐的操作统计每首音乐被“喜欢” 的频次,设定阈值MIN_LIKE,筛选出喜欢频次高于MIN_LIKE的高频次音 乐集合VH,频次低于MIN_LIKE的音乐归为低频音乐集合VL。筛选出每个用 户列表中的高频次音乐构成列表l作为音乐向量模型的训练数据;

    S2.2给定一个音乐列表l,由音乐s1,s2,…,sT构成,其概率模型可表示为

    其中的Contexti表示的音乐si的上下文,基于一段时间内用户喜好的音乐相似 的假设,此处可视为列表内该音乐前后w首音乐,w根据实验效果调整得出。

    根据上述概率模型,设计一个三层的神经网络学习音乐之间的关系。将每 首音乐按均匀分布初始化为统一维度的向量,第一层输入层为Contexti包含的音 乐向量,第二层投影层将音乐向量相加,第三层输出层为音乐向量;

    S2.3以xi输入为例,对应一组训练样本,

    xi为输入,为正样本,其余为k-1个负样本,根据歌曲出现频率 随机采样负样本。

    目标函数为噪声对比估计函数(noise-contrastive estimation(NCE)):

    其中,为正例的概率,为负例的概率,目标函数的意义 是尽可能让真实的正例目标词获得高概率,而k个负例噪声词获得低概率。

    使用随机梯度上升训练S2.2中的神经网络模型,并得到相应的VH音乐向 量。

    S3对S2获得的音乐向量进行T-SNE降维,然后使用KMeans方法对降维 后的歌曲聚类成k簇,表示k个依据用户喜好划分的音乐种类,k根据分类精度 需求适当调整。

    S4由于用户操作记录少的音乐集合VL通过S2的步骤获得描述自身的音乐 向量模型不够准确,为提高准确性,将利用频谱图和S3中的聚类结果进行音乐 分析,包括如下步骤:

    S4.1生成音乐频谱图:将音乐文件统一混音为单声道进行分析,对音频信 号进行短时傅里叶变换获得频谱,然后将频率标度转化为更适应人耳感知的梅 尔频率标度,映射关系如下式所示:

    mel(f)=2595*log(1+f/700)

    每首音乐可以获得宽度固定,长度与音乐时间正相关的梅尔频谱图;

    S4.2如图3所示,构建结构卷积神经网络模型。为S3中获得的音乐分类 构建训练集和测试集。为训练集中的音乐按照S4.1中的方法生成频谱图并切割 成合适大小的片段输入网络以进行训练至参数稳定。测试集中每首歌曲按同样 方法生成一组频谱图片段输入,统计每个片段通过网络后输出的分类,计数最 大的判别为音乐的分类。

    S5由S2可以获得VH高频次音乐集合的音乐向量,且根据S3和S4,可以 获得VL低频次音乐集合所属的用户喜好分类。参考用户喜欢列表中最新加入列 表的n首音乐,对n首音乐中存在高频次子列表,则按S2获得的向量模型寻找 其最近的m首音乐作为推荐,其中m,n按实际推荐效果选择合适的参数。对其 余低频音乐,则按S4获得的分类为其推荐分类中的音乐。

    上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实 施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、 替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

    展开全文
  • 深度学习系统对训练集中的随机误差是非常健壮的 数据集中偶尔有错误标记的数据不会影响到整体 深度学习系统中的系统误差是很致命的 把白色的图片总分类到狗,那肯定不对 上面提到的是训练集,如果是开发集/测试集中...
  • 例:猫的分类器train结果的正确率为90%(10%的误差),对结果进行人工分析,如果发现有些狗被识别为猫导致错误,考虑怎么来减少这种错误? 如何通过人工误差分析来提高算法性能 列出一些可能的错误...
  • 我们从一个启发性的例子开始讲,假设你正在调试你的猫分类器,经过一段时间的调整, 你的系统达到了 90%准确率,但对你的应用程序来说还不够好。 你可能有很多想法去改善你的系统,比如, 你可能想我们去收集更...
  • 1.ResNet简介 梯度消失与梯度爆炸问题 如何解决梯度消失和梯度爆炸?...1.数据标准 2.权重初始 3.BN 使用残差模块解决退化问题。 残差模块 五种ResNet网络结构 34层ResNet结构分析 ...
  • AlexNet结构 input是224×224x3,此处padding应为[1,2],即在特征矩阵左边加上一列0,右边加上两列0,上面加上一列0,下面加上两列0 特点 使用Relu替换之前的sigmoid的作为激活函数 使用数据增强Data Augmentation抑制...
  • 一、非结构化建模的挑战 我们也可以使用概率模型完成许多其他的任务。这些任务通常相比于分类成本更高。其中的一些任务需要产生多个输出。大部分任务需要对输入数据整个结构的完整理解,所以并不能舍弃数据的一部分...
  • 数据不匹配时,偏差和方差的分析 (Bias and Variance with Mismatched Data Distribution) 估计学习算法的偏差和方差真的可以帮你确定接下来应该优先做的方向,但是,当你的训练集来自和开发集、测试集不同分布时,...
  • 导语: ...七行代码体验深度学习的发现 Epochs 一个eposh就是一遍完整数据集的过程。 运行多个epoch可以提升准确度。 运行多个epoch的时候,分开监测他们的训练结果。 如果你的精确度收拢的并不...
  • 伴随着今日阿里云机器学习...首先,解决非结构化数据常常要使用深度学习算法,上手门槛高。其次,对于这部分数据的处理,往往需要依赖GPU计算引擎,计算资源代价大。本文将介绍一种利用深度学习实现的图片识别案例,这
  • 伴随着今日阿里云机器...首先,解决非结构化数据常常要使用深度学习算法,上手门槛高。其次,对于这部分数据的处理,往往需要依赖GPU计算引擎,计算资源代价大。本文将介绍一种利用深度学习实现的图片识别案例,这...
  • 16.1 非结构化建模的挑战 在深度学习中,我们训练AI模型去理解自然图片,声波代表的演讲,或包含很多单词的文档。这些通常需要深度学习模型将一个高维度的数据作为输入,并将这个输入概括到一个特定的类别。但在...
  • 专栏目录:任妍Carol:机器学习小白笔记目录吴恩达课程链接:网易云课堂《神经网络和深度学习》本节链接:2.1 二分分类 2.2 Logistic函数如何表示一张图片?上节我们讲到了结构化数据和非结构化数据,如图中的音频、...
  • 在这篇论文中,我们提出了一种新颖的方法来利用结构化数据进行机器学习。我们所提出的方法主要基于以图形式构造神经网络的模型表示和计算主题,这使得从具有显式和隐式模块结构的数据学习时可以改进泛化性能。 我们...
  • 伴随着今日阿里云机器学习PAI在云栖大会的重磅发布,快来感受下...首先,解决非结构化数据常常要使用深度学习算法,上手门槛高。其次,对于这部分数据的处理,往往需要依赖GPU计算引擎,计算资源代价大。本文将介...
  • 选择预训练模型将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络。预训练网络(pretrained network)是一个保存好的网络,之前已在大型数据集(通常是大规模图 像分类任务)上训练好。这个...
  • 基础数据准备训练所需要的数据集合都存储在数据库中,还有部分文本文件首先对数据进行分类结构化存储[因为涉及到的是多分类问题]整理并存储原始数据集使用numpy将所有需要数据读取出来splitlines() ==>...
  • 深度学习第一课

    2019-09-28 14:51:22
    ML适合处理结构化数据,DL适合处理非结构化数据  什么是结构化数据,非结构化数据? 行与列之间有关系的叫结构化数据;没有关系的例如图片视频文本等,就是非结构化数据 深度学习应用领域广泛,比如计算机视觉...
  • 通过深度学习的神经网络模型,可以将图片、视频、语音、还有文本等非结构化数据转换为特征向量。除了结构化的向量,这些数据往往也需添加其他属性。如人脸图片,可以添加性别、是否戴眼镜、图片抓取时间等标签;文本...
  • 本文在深度学习框架的基础上对特征提取方法进行了研究,并通过医学图像、人脸表情的检测和分类对其效果进行了验证。本文的研究内容主要包括以下三点:1)提出有约束的高分散主成分分析网络(Constrained High Dispersal ...
  • 专栏目录:任妍Carol:机器学习小白笔记目录 吴恩达课程链接:网易云课堂《神经网络和深度学习》 本节链接:2.1 二分分类 ...上节我们讲到了结构化数据和非结构化数据,如图中的音频、图片和文本就是非结构化数据。 ...
  • 文本是一类非结构化数据,文本表示模型有词袋模型(Bag of Words)、主题模型(Topic Model)、词嵌入模型(Word Embedding)。 词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间上的一个...
  • 摘要: 随着互联网的发展,产生了大量的图片以及语音数据,如何对这部分非结构化数据行之有效的利用起来,一直是困扰数据挖掘工程师的一到难题。本期云周刊头条就为大家介绍了如何利用阿里云机器学习在深度学习框架...
  • 机器学习一般用来处理结构化数据深度学习一般用来处理非结构化数据,例如图像、视频、文字等。 、
  • 归一;大小调整 2. 模型设计 任务类型 分类 表情+程度 多目标分类 现有模型 已有的方案能否/怎样借鉴 局部更改-从头设计 更改:哪里 设计:新结构特点,为什么可行 3. 训练细节 GPU-Batch ...
  • 本期头条 利用阿里云机器学习在深度学习...首先,解决非结构化数据常常要使用深度学习算法,上手门槛高。其次,对于这部分数据的处理,往往需要依赖GPU计算引擎,计算资源代价大。本文将介绍一种利用深度学习实现的...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 271
精华内容 108
关键字:

结构化数据深度学习分类