推荐系统与深度学习关联

news2024/9/20 8:11:26

6.1 推荐系统与深度学习关联

学习目标

  • 目标
  • 应用

6.1.1 深度学习到推荐系统

深度学习发展成功与局限

最近几年深度学习的流行,大家一般认为是从2012年 AlexNet 在图像识别领域的成功作为一个里程碑。AlexNet 提升了整个业界对机器学习的接受程度:以前很多机器学习算法都处在“差不多能做 demo ”的程度,但是 AlexNet 的效果跨过了很多应用的门槛,造成了应用领域井喷式的兴趣。

  • 成功的原因:是大数据,是高性能计算。

    • 大量的数据,比如说移动互联网的兴起,以及 AWS 这样低成本获得标注数据的平台,使机器学习算法得以打破数据的限制;
    • 由于 GPGPU 等高性能运算的兴起,又使得我们可以在可以控制的时间内(以天为单位甚至更短)进行 exaflop 级别的计算,从而使得训练复杂网络变得可能。
  • 局限的地方:一点是结构化的理解,一点是小数据上的有效学习算法。

    • 很多深度学习的算法还是在感知这个层面上形成了突破,可以从语音、图像,这些非结构化的数据中进行识别的工作。面对更加结构化的问题的时候,简单地套用深度学习算法可能并不能达到很好的效果
    • 在数据量非常小的时候,深度学习的复杂网络往往无法取得很好的效果,但是很多领域,特别是类似医疗这样的领域,数据是非常难获得的。

推荐系统的应用需求

  • 实际上深度学习在自然语言处理,图像处理,图像识别等领域迅猛发展的近4年来,深度学习在其他领域,例如推荐系统也得到快速的发展。除了语音和图像之外,如何解决更多问题。在阿里、美团等很多互联网企业中有一个“沉默的大多数”的应用,就是推荐系统:它常常占据了超过80%甚至90%的机器学习算力,如何将深度学习和传统推荐系统进一步整合,如何寻找新的模型,如何对搜索和推荐的效果建模,也是公司不可缺少的技能。

6.1.2 推荐系统为什么加入深度学习?

为什么我们会想到使用深度学习去处理推荐系统里面的事情呢,推荐系统从基于内容的推荐,到协同过滤的推荐,协同过滤的推荐在整个推荐算法领域里独领风烧了多年。或许深度学习在推荐系统里面没有像图像处理算法那样一枝独秀,但是深度学习对于推荐系统的帮助确实起到了,推波助澜的功效。

  • 能够直接从内容中提取特征,表征能力强
  • 容易对噪声数据进行处理,抗噪能量强
  • 深度学习便于对负责数据进行统一处理

6.2 深度学习应用简介

学习目标

  • 目标
  • 应用

6.2.1 区别

 

 

特征提取方面

  • 机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识
  • 深度学习通常由多个层组成,它们通常将更简单的模型组合在一起,通过将数据从一层传递到另一层来构建更复杂的模型。通过大量数据的训练自动得到模型,不需要人工设计特征提取环节

深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特的部分。因此,减少了为每个问题开发新特征提取器的任务。适合用在难提取特征的图像、语音、自然语言领域

数据量

机器学习需要的执行时间远少于深度学习,深度学习参数往往很庞大,需要通过大量数据的多次优化来训练参数。

 

 

第一、它们需要大量的训练数据集

第二、是训练深度神经网络需要大量的算力

可能要花费数天、甚至数周的时间,才能使用数百万张图像的数据集训练出一个深度网络。所以以后

  • 需要强大对的GPU服务器来进行计算
  • 全面管理的分布式训练与预测服务——比如谷歌 TensorFlow 云机器学习平台——可能会解决这些问题,为大家提供成本合理的基于云的 CPU 和 GPU

算法代表

  • 机器学习
    • 朴素贝叶斯、决策树等
  • 深度学习
    • 神经网络

6.2.2 深度学习主要应用

  • 图像识别
    • 物体识别
    • 场景识别
    • 车型识别
    • 人脸检测跟踪
    • 人脸关键点定位
    • 人脸身份认证
  • 自然语言处理技术
    • 机器翻译
    • 文本识别
    • 聊天对话
  • 语音技术
    • 语音识别
  • 推荐系统

前几年一直关注AI框架,但是近年来框架的同质化说明了它不再是一个需要花大精力解决的问题,TensorFlow、Pytorch这样的框架在工业界的广泛应用,以及各种框架利用 Python 在建模领域的优秀表现,已经可以帮助我们解决很多以前需要自己编程实现的问题,如果作为 AI 工程师,我们应该跳出框架的桎梏,往更广泛的领域寻找价值。

6.2.3 常见深度学习框架对比

 

 

tensorflow的github:

 

 

1.2.2 TensorFlow的特点

官网:https://www.tensorflow.org/

  • 语言多样(Language Options)

    • TensorFlow使用C++实现的,然后用Python封装。谷歌号召社区通过SWIG开发更多的语言接口来支持TensorFlow
  • 使用分发策略进行分发训练

    • 对于大型 ML 训练任务,分发策略 API使在不更改模型定义的情况下,可以轻松地在不同的硬件配置上分发和训练模型。由于 TensorFlow 支持一系列硬件加速器,如 CPU、GPU 和 TPU
  • Tensorboard可视化

    • TensorBoard是TensorFlow的一组Web应用,用来监控TensorFlow运行过程
  • 在任何平台上的生产中进行强大的模型部署

    一旦您训练并保存了模型,就可以直接在应用程序中执行它,或者使用部署库为其提供服务:

    • TensorFlow 服务:允许模型通过 HTTP/REST 或 GRPC/协议缓冲区提供服务的 TensorFlow 库构建。
    • TensorFlow Lite:TensorFlow 针对移动和嵌入式设备的轻量级解决方案提供了在 Android、iOS 和嵌入式系统上部署模型的能力。
    • tensorflow.js:支持在 JavaScript 环境中部署模型,例如在 Web 浏览器或服务器端通过 Node.js 部署模型。TensorFlow.js 还支持在 JavaScript 中定义模型,并使用类似于 Kera 的 API 直接在 Web 浏览器中进行训练。

1.2.3 TensorFlow的安装

安装 TensorFlow在64 位系统上测试这些系统支持 TensorFlow:

  • Ubuntu 16.04 或更高版本
  • Windows 7 或更高版本
  • macOS 10.12.6 (Sierra) 或更高版本(不支持 GPU)

进入虚拟环境当中再安装。刚开始的环境比较简单,只要下载tensorflow即可

  • 环境包:

安装较慢,指定镜像源,请在带有numpy等库的虚拟环境中安装

  • ubuntu安装
pip install tensorflow==1.13 -i https://mirrors.aliyun.com/pypi/simple
  • MacOS安装
pip install tensorflow==1.13 -i https://mirrors.aliyun.com/pypi/simple

注:如果需要下载GPU版本的(TensorFlow只提供windows和linux版本的,没有Macos版本的)参考官网https://www.tensorflow.org/install/gpu?hl=zh-cn,

1、虚拟机下linux也是用不了GPU版本TensorFlow

2、本机单独的windows和本机单独的unbuntu可以使用GPU版本TensorFlow,需要安装相关驱动

1.2.4 Tenssorlfow使用技巧

  • 使用 tf.keras 构建、训练和验证您的模型,tf相关API用于损失计算修改等
  • tensorflow提供模型训练模型部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如果把小程序业务和研发管理都放到一个平台

伴随着互联网在中国进程的发展,线上研发效能及业务应用软件也不落后于时代进步的脚步,中国软件行业从未停止过持续的创新。 2022年,业务应用开发正在简化,研发效能也在提升,其中不得不提软件在协同促进、研发一体化管…

MyBatis 一级二级缓存【学习记录】

一级缓存 1&#xff09;首先做个测试&#xff0c;创建一个mapper配置文件和mapper接口&#xff0c;我这里用了最简单的查询来演示。 <mapper namespace"cn.elinzhou.mybatisTest.mapper.UserMapper"><select id"findUsers" resultType"cn.…

Linux关于执行文件路径的变量:$PATH

目录 前言 环境变量PATH 问题思考 总结 前言 Linux目录的配置都是依据FHS&#xff0c;FHS的标准文件指出&#xff0c;它们的主要目的是希望让用户可以了解到已安装软件通常放置于哪个目录下。也就是说&#xff0c;FHS的重点在于规范每个特定的目录下应该要放置什么样子的数…

Docker搭建私有仓库

搭建私有仓库 参考地址&#xff1a;搭建私有仓库 安装运行 docker-registry 查看docker存储路径与对应路径下的大小 docker info | grep Dir查看对应路径下的大小 du -sh /var/lib/docker如果大小没有问题的话就可以直接安装了 拉取registry镜像并运行 docker run -d \-…

数据库常用语句练习总结

show databases; 显示数据库 use student; 使用该数据库 3.show full columns from student; 展示数据库所有的字段 show columns from student; 展示数据库添加的字段 alter table student change column Sname Snames char(200); 添加 student表中的字段 alter tabl…

手写智能识别:SmartZoneOCR/SmartZoneICR Crack

Accusoft.SmartZoneOCR/Accusoft.SmartZoneICR 智能区 OCR/ICR 在您的应用程序中使用自动区域数据捕获技术消除手动数据输入。 概述 使用我们强大的 ICR 和 OCR SDK 改进字符识别。 SmartZone 先进的区域字符识别技术允许您从文档图像中的指定字段捕获打字 (OCR) 或手写 (ICR)…

24种设计模式之单例模式(饿汉式、懒汉式)

一、单例模式单例模式( Singleton Pattern &#xff09;是指确保一个类在任何情况下都绝对只有一个实例&#xff0c;并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛&#xff0c;例如,总统&#xff0c;班主任等。J2EE标准中的ServletContext …

反对称矩阵乘任意矩阵满足交换性?

看论文的时候有疑惑 R˙R[ω]\dot{\mathbf{R}}\mathbf{R}[\omega]_{\times}R˙R[ω]​ R˙[ω]R\dot{\mathbf{R}}[\omega]_{\times}\mathbf{R}R˙[ω]​R 难道反对称矩阵乘任意矩阵满足交换性&#xff1f; 在maple里面验证一下吧&#xff1a; 很明显是不一样的&#xff0c;一…

字节二面:100Wqps短链系统,如何设计?

前段时间&#xff0c;社群小伙伴&#xff0c;在交流一个字节的二面真题&#xff1a; 100Wqps短链系统&#xff0c;怎么设计&#xff1f; 这道题&#xff0c;看上去业务简单&#xff0c;其实&#xff0c;覆盖的知识点非常多&#xff1a; 高并发、高性能分布式 IDRedis Bloom …

考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Qt】2.Qt坐标系、信号和槽、Lambda表达式

目录 Qt坐标系 信号和槽 需求 优点 自定义信号 自定义槽函数 触发自定义信号 代码 main.cpp widget.h widget.cpp teachar.h teachar.cpp student.h student.cpp 结果 重载 解决方法 信号和槽拓展 断开信号和槽 触发多个槽函数 Lambda表达式 [] () {}…

【数据结构与算法】DP路径问题

问题&#xff1a;最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,…

二叉树28:二叉搜索树的最近公共祖先

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;235. 二叉搜索树的最近公共祖先 题目&#xff1a; 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。…

对于Go 语言的进阶与依赖管理| 青训营笔记

一.Go 语言进阶与依赖管理 1.1并发和并行 Go可以充分发挥多核优势&#xff0c;高效运行。 多线程程序在单核心的 cpu 上运行&#xff0c;称为并发&#xff1b; 多线程程序在多核心的 cpu 上运行&#xff0c;称为并行。 并发与并行并不相同&#xff0c;并发主要由切换时间片…

2016年专业408算法题

文章目录0 结果1 题目2 思路2.1 思路1&#xff08;较优解&#xff1a;排序&#xff09;2.2 思路2&#xff08;最优解&#xff1a;类快排思想排序&#xff09;附录0 结果 较优解&#xff1a; 最优解&#xff1a; 1 题目 2 思路 为了使&#xff5c;n1−n2&#xff5c;&#…

1.2.3存储结构:主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量

1.2.3存储结构&#xff1a;主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量主存编址的过程存储单元主存编址存储单元编址内容存储总容量例题主存编址的过程 计算机是一个机器&#xff0c;它能够识别的是机器语言&#xff0c;电器信号。因此计算机当中所有的数据…

英语学习 2

1 词汇积累 1、imply and infer 暗示和推断 2、indicate 显示、指出 3、outgoing 外向的 4、sympathy 同情心 5、sympathetic 有同情心的 6、evolution 进化 8、agreement 一致 10、resourceful 足智多谋的 11、appear 似乎 12、manufacturers 厂家、制造商 13、toilet paper …

linux定时器crond使用方式简介

文章目录一、简介二、cron.d下文件示例三、被调用的脚本文件四、检查脚本是否执行五、遇到的脚本未执行的情况一、简介 一般来说在/etc目录下&#xff0c;有5个以cron开头的目录&#xff0c;分别是/etc/cron.hourly&#xff0c;/etc/cron.daily&#xff0c;/etc/cron.weekly&a…

java泛型6

到底何时使用泛型方法&#xff1f;何时使用类型通配符呢&#xff1f;大多数时候都可以使用泛型方法来代替类型通配符。 这种场景下效果一样。 上面方法使用了泛型形式&#xff0c;这时定义泛型形参时设定上限&#xff08;其中E是Collection接口里定义的泛型&#xff0c;在该接…

搭建企业知识库的意义

当客户跟你达成合作关系后&#xff0c;需要持续的关系维护&#xff0c;在一定的销售点&#xff0c;定期和客户沟通&#xff0c;据调查&#xff0c;赢得一个新客户的成本可能是保留一个现有客户的5到25倍&#xff0c;作为营销策略&#xff0c;客户服务支持必须满足他们的期望。建…