内容简介

从年初起,几家国际大厂的开发者大会,无论是微软 Build、Facebook F8还是稍后的 Google I/O,莫不把“ AI 优先”的大旗扯上云霄。

如果这一波 AI 大潮只是空喊几句口号,空提几个战略,空有几家炙手可热的创业公司,那当然成不了什么大气候。但风浪之下,我们看到的却是,Google 一线的各大业务纷纷改用深度学习,落伍移动时代的微软则已拉起一支近万人的 AI 队伍。而国内一线大厂的情况,恐怕也是差不多的。

这一迹象,对于广大程序员来说,特别是对即将走向技术一线的准程序员而言,还是值得重点关注的。回顾一下移动互联网所带来的机遇,很容易就能算清,掌握深度学习能为一线工作带来怎样的优势。不过,跟移动开发不同,要求严苛的数学门槛,成本高昂的实战训练,令 AI 人才的培养周期猛增至5年以上……似乎没有硕士、博士的知识储备,就一定要跟 AI 相关的技术工作说再见了。实情果真如此吗?

我们请来商汤、杜邦、声智、希为、58同城、爱因互动、中科视拓、鲁朗软件等公司 AI 技术一线的专家,请他们从实践的角度来解析 AI 领域各技术岗位的合格工程师都是怎样炼成的。你将了解到什么样的 AI 技能树能够满足他们一线业务的用人需求,数据科学、机器学习算法、异构并行计算以及语音识别、推荐系统与对话系统等领域的技能进阶又该如何展开,特别是其中的学院派路径与实战派方法又当如何取舍。

本书内容

如何成为一名机器学习算法工程师

成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能 力,这些能力中的每一项掌握起来都需要足够的努力和经验。而要成为一名合格的机器学习算法工程师(以下简称算法工程师)更是难上加难,因为在掌握工程师的通用技能以外,还需要掌握一张不算小的机器学习算法知识网络。下面我们就将成为一名合格的算法工程师所需的技能进行拆分,一起来看一下究竟需要掌握哪些技能才能算是一名合格的算法工程师。

enter image description here

基础开发能力

所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。有些同学对于这一点存在一些误解,认为所谓算法工程师就只需要思考和设计算法,不用在乎这些算法如何实现,而且会有人帮你来实现你想出来的算法方案。这种思想是错误的,在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。

笔者曾经见过一些企业实行过算法设计与算法实现相分离的组织架构,但是在这种架构下,说不清楚谁该为算法效果负责,算法设计者和算法开发者都有一肚子的苦水,具体原因不在本文的讨论范畴中,但希望大家记住的是,基础的开发技能是所有算法工程师都需要掌握的。

基础开发所涉及到的技能非常的多,在这里只挑选了两个比较重要的点来做阐述。

单元测试

在企业应用中,一个问题的完整解决方案通常包括很多的流程,这其中每个环节都需要反复迭代 优化调试,如何能够将复杂任务进行模块划分,并且保证整体流程的正确性呢?最实用的方法就是单元测试。

单元测试并不只是简单的一种测试技能,它首先是一种设计能力。并不是每份代码都可以做单元测试,能做单元测试的前提是代码首先是可以划分为多个单元——也就是模块的。在把项目拆解成可独立开发和测试的模块之后,再加上对每个模块的独立的、可重复的单元测试,就可以保证每个模块的正确性,如果每个模块的正确性都可以保证,那么整体流程的正确性就可以得到保证。

对于算法开发这种流程变动频繁的开发活动来讲,做好模块设计和单元测试是不给自己和他人挖坑的重要保证。也是能让自己放心地对代码做各种改动优化的重要前提。

逻辑抽象复用

逻辑的抽象复用可以说是所有软件开发活动中最为重要的一条原则,衡量一个程序员代码水平的重要原则之一就是看他代码中重复代码和相似代码的比例。大量重复代码或相似代码背后反映的是工程师思维的懒惰,因为他觉得复制粘贴或者直接照着抄是最省事的做法。这样做不仅看上去非常的丑陋,而且也非常容易出错,更不用提维护起来的难度。

算法开发的项目中经常会有很多类似逻辑的出现,例如对多个特征使用类似的处理方法,还有原始数据 ETL 中的很多类似处理方法。如果不对重复逻辑做好抽象,代码看上去全是一行行的重复代码,无论是阅读起来还是维护起来都会非常麻烦。

概率和统计基础

概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。学会用概率的视角看待问题,用概率的语言描述问题,是深入理解和熟练运用机器学习技术的最重要基础之一。

概率论内容很多,但都是以具体的一个个分布为具体表现载体体现出来的,所以学好常用的概率分布及其各种性质对于学好概率非常重要。对于离散数据,伯努利分布、二项分布、多项分布、Beta 分布、狄里克莱分布以及泊松分布都是需要 理解掌握的内容;对于离线数据,高斯分布和指数分布族是比较重要的分布。这些分布贯穿着机器学习的各种模型之中,也存在于互联网和真实世界的各种数据之中,理解了数据的分布,才能知道该对它们做什么样的处理。

此外,假设检验的相关理论也需要掌握。在这个所谓的大数据时代,最能骗人的大概就是数据了,掌握了假设检验和置信区间等相关理论,才能具备分辨数据结论真伪的能力。例如两组数据是否真的存在差异,上线一个策略之后指标是否真的有提升等等。这种问题在实际工作中非常常见,不掌握相关能力的话相当于就是大数据时代的睁眼瞎。

在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM 算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。

机器学习理论

虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义:

  • 掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。只有在这个基础上才能够真正具备搭建一套机器学习系统的能力,并对其进行持续优化。否则只能算是机器学习搬砖工人,算不得合格的工程师。出了问题也不会解决,更谈不上对系统做优化。

  • 学习机器学习的基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是,这些基础理论里面体现的是一套思想和思维模式,其内涵包括概率性思维、矩阵化思维、最优化思维等多个子领域,这一套思维模式对于在当今这个大数据时代做数据的处理、分析和建模是非常有帮助的。如果你脑子里没有这套思维,面对大数据环境还在用老一套非概率的、标量式的思维去思考问题,那么思考的效率和深度都会非常受限。

机器学习的理论内涵和外延非常之广,绝非一篇文章可以穷尽,所以在这里我列举了一些比较核心,同时对于实际工作比较有帮助的内容进行介绍,大家可在掌握了这些基础内容之后,再不断探索学习。

基础理论

所谓基础理论,指的是不涉及任何具体模型,而只关注“学习”这件事本身的一些理论。以下是一些比较有用的基础概念:

  • VC 维。VC 维是一个很有趣的概念,它的主体是一类函数,描述的是这类函数能够把多少个样本 的所有组合都划分开来。VC 维的意义在哪里呢? 它在于当你选定了一个模型以及它对应的特征之后,你是大概可以知道这组模型和特征的选择能 够对多大的数据集进行分类的。此外,一类函数的 VC 维的大小,还可以反应出这类函数过拟合的可能性。

  • 信息论。从某种角度来讲,机器学习和信息论是同一个问题的两个侧面,机器学习模型的优化过程同时也可以看作是最小化数据集中信息量的过程。对信息论中基本概念的了解,对于机器学习理论的学习是大有裨益的。例如决策树中用来做分裂决策依据的信息增益,衡量数据信息量的信息熵等等,这些概念的理解对于机器学习问 题神本的理解都很有帮助。这部分内容可参考《 Elements of Information Theory 》这本书。

  • 正则化和 bias-variance tradeoff。如果说现阶段我国的主要矛盾是“人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾”,那么机器学习中的主要矛盾就是模型要尽量拟合数据和模型不能过度拟合数据之间的矛盾。而化解这一矛盾的核心技术之一就是正则化。正则化的具体方法不在此讨论,但需要理解的,是各种正则化方法背后透露出的思想:bias-variance tradoff。在不同利益点之间的平衡与取舍是各种算法之间的 重要差异,理解这一点对于理解不同算法之间的核心差异有着非常重要的作用。

  • 最优化理论。绝大多数机器学习问题的解决,都可以划分为两个阶段:建模和优化。所谓建模就是后面我们会提到的各种用模型来描述问题的方法,而优化就是建模完成之后求得模型的最优参数的过程。机器学习中常用的模型有很多, 但背后用到的优化方法却并没有那么多。换句话说,很多模型都是用的同一套优化方法,而同一个优化方法也可以用来优化很多不同模型。对各种常用优化方法的和思想有所有了解非常有必要,对于理解模型训练的过程,以及解释各种 情况下模型训练的效果都很有帮助。这里面包括最大似然、最大后验、梯度下降、拟牛顿法、L-BFGS 等。

机器学习的基础理论还有很多,可以先从上面的概念学起,把它们当做学习的起点,在学习过程中 还会遇到其他需要学习的内容,就像一张网络慢慢铺开一样,不断积累自己的知识。这方面基础理论的学习,除了 Andrew Ng 的著名课程以外,《 Learning from Data 》这门公开课也非常值得大家学习,这门课没有任何背景要求,讲授的内 容是在所有模型之下的基础中的基础,非常地靠近机器学习的内核本质。这门课的中文版本叫做 《机器学习基石》,也可以在网上找到,其讲授者是上面英文版本讲授者的学生。

有监督学习

在了解了机器学习的基本概念之后,就可以进入到一些具体模型的学习中了。在目前的工业实践中,有监督学习的应用面仍然是最广泛的,这是因为我们现实中遇到的很多问题都是希望对某个事物的某个属性做出预测,而这些问题通过合理的抽象和变换,都可以转化为有监督学习的问题。

在学习复杂模型之前,我建议大家都先学习几个最简单的模型,典型的如朴素贝叶斯。朴素贝叶斯有很强的假设,这个假设很多问题都不满足,模型结构也很简单,所以其优化效果并不是最好的。但也正是由于其简单的形式,非常利于学习者深入理解整个模型在建模和优化过程中的每一步,这对于搞清楚机器学习是怎么一回事情是非常有用的。

同时,朴素贝叶斯的模型形式通过一番巧妙的变换之后,可以得到和逻辑回归形式上非常统一的结果,这无疑提供了对逻辑回归另外一个角度的解释,对于更加深刻理解逻辑回归这一最常用模型有着非常重要的作用。

在掌握了机器学习模型的基础流程之后,需要学习两种最基础的模型形式:线性模型和树形模型,分别对应着线性回归/逻辑回归和决策回归/分类树。现在常用的模型,无论是浅层模型还是深度学习的深层模型,都是基于这两种基础模型形式变幻而来。而学习这两种模型的时候需要仔细思考的问题是:这两种模型的本质差异是什么?为什么需要有这两种模型?他们在训练和预测的精度、效率、复杂度等方面有什么差异?了解清楚这些本质的差异之后,才可以做到根据问题和数据的具体情况对模型自如运用。

在掌握了线性模型和树形模型这两种基础形式之后,下一步需要掌握的是这两种基础模型的复杂形式。其中线性模型的复杂形式就是多层线性模型,也就是神经网络。树模型的复杂形式包括以 GDBT 为代表的 boosting 组合,以及以随机森林为代表的 bagging 组合。

这两种组合模型的意义不仅在于模型本身,boosting 和 bagging 这两种组合思 想本身也非常值得学习和理解,这代表了两种一般性的强化方法:boosting 的思想是精益求精,不断在之前的基础上继续优化;而 bagging 的思想是 “三个臭裨将顶一个诸葛亮”,是通过多个弱分类器的组合来得到一个强分类器。这两种组合方法各有优劣,但都是在日常工作中可以借鉴的思想。例如在推荐系统中所我们经常会使用多个维度的数据做召回源,从某个角度来看就是一种bagging的思想:每个单独召回源并不能给出最好表现,但是多个召回源组合之后,就可以得到比每个单独召回源都要好的结果。所以说思想比模型本身更重要。

无监督学习

有监督学习虽然目前占了机器学习应用的大多数场景,但是无监督学习无论从数据规模还是作用上来讲也都非常的重要。无监督学习的一大类内容是在做聚类,做聚类的意义通常可以分为两类:一类是将聚类结果本身当做最终的目标,另一类是将聚类的结果再作为特征用到有监督学习中。但这两种意义并不是和某种聚类方法具体绑定,而只是聚类之后结果的不同使用方式,这需要在工作中不断学习、积累和思考。而在入门学习阶段需要掌握的,是不同聚类算法的核心差异在哪里。

例如最常用的聚类方法中,kmeans 和 DBSCAN 分别适合处理什么样的问题?高斯混合模型有着什么样的假设?LDA 中文档、主题和词之间是什么关系?这些模型最好能够放到一起来学习,从而掌握它们之间的联系和差异,而不是把他们当做一个个孤立的东西来看待。

除 了 聚 类 以 外 ,近 年 来 兴 起 的 嵌 入 表 示( embedding representation )也是无监督学习的一种重要方法。这种方法和聚类的差异在于,聚 类的方法是使用已有特征对数据进行划分,而嵌入表示则是创造新的特征,这种新的特征是对样 本的一种全新的表示方式。这种新的表示方法提供了对数据全新的观察视角,这种视角提供了数据处理的全新的可能性。此外,这种做法虽然是从 NLP 领域中兴起,但却具有很强的普适性,可用来处理多种多样的数据,都可以得到不错的结果,所以现在已经成为一种必备的技能。

机器学习理论方面的学习可以从《 An Introduction to Statistical Learning with Application in R 》开始,这本书对一些常用模型和理论基础提供了很好的讲解,同时也有适量的习题用来巩固所学知识。进阶学习可使用上面这本书的升级版《 Elements of Statistical Learning 》和著名的《 Pattern Recognition and Machine Learning 》。

开发语言和开发工具

掌握了足够的理论知识,还需要足够的工具来将这些理论落地,这部分我们介绍一些常用的语言和工具。

开发语言

近年来 Python 可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。所以 Python 方面我就不再赘述。但是在学习 Python 以外,我建议大家可以再学习一下 R 语言,主要原因有以下几点:

  • R 语言具有最完备的统计学工具链。我们在上面介绍了概率和统计的重要性,R 语言在这方面提供的支持是最全面的,日常的一些统计方面的需求,用 R 来做可能要比用Python 来做还要更快。 Python 的统计科学工具虽然也在不断完善,但是 R 仍然是统计科学最大最活跃的社区。

  • 向量化、矩阵化和表格化思维的培养。R 中的所有数据类型都是向量化的,一个整形的变量本质上是一个长度为一的一维向量。在此基础上 R 语言构建了高效的矩阵和( DataFrame )数据类型,并且在上面支持了非常复杂而又直观的操作方法。这套数据类型和思考方式也在被很多更现代化的语言和工具所采纳,例如 Numpy 中的 ndarray,以 及 Spark 最新版本中引入的 DataFrame,可以说都是直接或间接从 R 语言得到的灵感,定义在上面的数据操作也和 R中对 DataFrame 和向量的操作如出一辙。就像学编程都要从 C 语言学起一样,学数据科学和算法开发我建议大家都学一下 R,学的既是它的语言本身,更是它的内涵思想,对大家掌握和理解现代化工具都大有裨益。

除了 R 以外,Scala 也是一门值得学习的语言。原因在于它是目前将面向对象和函数式两种编程范式结合得比较好的一种语言,因为它不强求你一定要用函数式去写代码,同时还能够在能够利用函数式的地方给予了足够的支持。这使得它的使用门槛并不高,但是随着经验和知识的不断积累,你可以用它写出越来越高级、优雅的代码。

开发工具

开发工具方面,Python 系的工具无疑是实用性最高的,具体来说,Numpy、Scipy、sklearn、pandas、Matplotlib 组成的套件可以满足单机上绝大多数的分析和训练工作。但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如 LibSVM、Liblinear、XGBoost 等。

大数据工具方面,目前离线计算的主流工具仍然是Hadoop和Spark,实时计算方面 Spark Streaming 和 Storm 也是比较主流的选择。近年来兴起的新平台也比较多,例如 Flink 和 Tensorflow 都是值得关注的。值得一提的是,对于 Hadoop 和 Spark 的掌握,不仅要掌握其编码技术,同时还要对其运行原理有一定理解,例如,Map-Reduce 的流程在 Hadoop 上是如何实现的,Spark 上什么操作比较耗时,aggregateByKey 和 groupByKey 在运 行原理上有什么差异,等等。只有掌握了这些,才能对这些大数据平台运用自如,否则很容易出现程序耗时过长、跑不动、内存爆掉等等问题。

架构设计

最后我们花一些篇幅来谈一下机器学习系统的架构设计。所谓机器学习系统的架构,指的是一套能够支持机器学习训练、预测、服务稳定高效运行的整体系统以及他们之间的关系。在业务规模和复杂度发展到一定程度的时候,机器学习一定会走向系统化、平台化这个方向。这个时候就 需要根据业务特点以及机器学习本身的特点来设计一套整体架构,这里面包括上游数据仓库和数据流的架构设计,以及模型训练的架构,还有线上服务的架构等等。

这一套架构的学习就不像前面的内容那么简单了,没有太多现成教材可以学习,更多的是在大量实践的基础上进行抽象总结,对当前系统不断进行演化和改进。但这无疑是算法工程师职业道路上最值得为之奋斗的工作。在这里能给的建议就是多实践,多总结,多抽象,多迭代。

机器学习算法工程师领域现状

现在可以说是机器学习算法工程师最好的时代,各行各业对这类人才的需求都非常旺盛。典型的包括以下一些细分行业:

  • 推荐系统。推荐系统解决的是海量数据场景下信息高效匹配分发的问题,在这个过程中,无论是候选集召回,还是结果排序,以及用户画像等等方面,机器学习都起着重要的作用。

  • 广告系统。广告系统和推荐系统有很多类似的地方,但也有着很显著的差异,需要在考虑平台和用户之外同时考虑广告主的利益,两方变成了三方,使得一些问题变复杂了很多。它在对机器学习的利用方面也和推荐类似。

  • 搜索系统。搜索系统的很多基础建设和上层排序方面都大量使用了机器学习技术,而且在很多网站和 App 中,搜索都是非常重要的流量入口,机器学习对搜索系统的优化会直接影响到整个网站的效率。

  • 风控系统。风控,尤其是互联网金融风控是近年来兴起的机器学习的又一重要战场。不夸张地说,运用机器学习的能力可以很大程度上决定一家互联网金融企业的风控能力,而风控能力本身又是这些企业业务保障的核心竞争力,这其中的关系大家可以感受一下。

但是所谓“工资越高,责任越大”,企业对于算法工程师的要求也在逐渐提高。整体来说,一名高级别的算法工程师应该能够处理“数据获取→数据分析→模型训练调优→模型上线”这一完整流程,并对流程中的各种环节做不断优化。一名工程师入门时可能会从上面流程中的某一个环节做起,不断扩大自己的能力范围。除了上面列出的领域以外,还有很多传统行业也在不断挖掘机器学习解决传统问题的能力,行业的未来可谓潜力巨大。

参考文献:

  • 朴素贝叶斯和逻辑回归之间的关系
  • 《learningfromdata》
  • 《An Introduction to Statistical Learning with Application in R》英文版下载
  • 《Elements of Statistical Learning》
  • 《Elements of Information Theory》
文 / 张相於

二手交易平台转转推荐算法部负责人,算法架构师,负责转转的推荐系统以及其他算法相关工作,邮箱:zhangxy@live.com

如何成为一名推荐系统工程师

推荐系统工程师成长路线图

enter image description here

《Item-based collaborative filtering recommendation algorithms》这篇文章发表于2001年,在 Google 学术上显示,其被引用次数已经是6599了,可见其给推荐系统带来的影响之大。经过20多年的发展,item-based 已经成为推荐系统的标配,而推荐系统已经成为互联网产品的标配。很多产品甚至在第一版就要被投资人或者创始人要求必须“个性化”,可见,推荐系统已经飞入寻常百姓家,作为推荐系统工程师的成长也要比从前更容易,要知道我刚工作时,即使跟同为研发工程师的其他人如 PHP 工程师(绝无黑的意思,是真的)说“我是做推荐的”,他们也一脸茫然,不知道“推荐”为什么是一个工程师岗位。如今纵然“大数据”,“AI”,这些词每天360度无死角轰炸我们,让我们很容易浮躁异常焦虑不堪,但不得不承认,这是作为推荐系统工程师的一个好时代。

推荐系统工程师和正常码农们相比,无需把 PM 们扔过来的需求给像素级实现,从而堆码成山;和机器学习研究员相比,又无需沉迷数学推导,憋出一个漂亮自洽的模型,一统学术界的争论;和数据分析师相比,也不需绘制漂亮的图表,做出酷炫的 PPT 能给 CEO 汇报,走上人生巅峰。那推荐系统工程师的定位是什么呢?为什么需要前面提到的那些技能呢?容我结合自身经历来一一解答。

我把推荐系统工程师的技能分为四个维度:

  1. 掌握核心原理的技能,是一种知其所以然的基础技能;

  2. 动手能力:实现系统,检验想法,都需要扎实的工程能力;

  3. 为效果负责的能力:这是推荐系统工程师和其他工种的最大区别;

  4. 软技能:任何工程师都需要自我成长,需要团队协作。

  • 英文阅读:读顶级会议的论文、一流公司和行业前辈的经典论文和技术博客,在Quora 和 Stack Overflow 上和人交流探讨;
  • 代码阅读:能阅读开源代码,从中学习优秀项目对经典算法的实现;
  • 沟通表达:能够和其他岗位的人员沟通交流,讲明白所负责模块的原理和方法,能听懂非技术人员的要求和思维,能分别真伪需求并且能达成一致。

掌握最最基础的原理

托开源的福气,现在有很多开箱即用的工具让我们很容易搭建起一个推荐系统。但是浮沙上面筑不起高塔,基础知识必须要有,否则就会在行业里面,被一轮轮概念旋风吹得找不着北。所有基础里面,最最基础的当然就是数学了。

能够看懂一些经典论文对于实现系统非常有帮助:从基本假设到形式化定义,从推导到算法流程,从实验设计到结果分析。这些要求我们对于微积分有基本的知识,有了基本的微积分知识才能看懂梯度下降等基本的优化方法。概率和统计知识给我们建立起一个推荐系统工程师最基本的三观:不要以是非绝对的眼光看待事物,要有用不确定性思维去思考产品中的每一个事件,因为实现推荐系统,并不是像实现界面上一个按钮的响应事件那样明确可检验。

大数据构建了一个高维的数据空间,从数据到推荐目标基本上都可以用矩阵的角度去形式化,比如常见的推荐算法:协同过滤、矩阵分解。而机器学习算法,如果用矩阵运算角度去看,会让我们更加能够理解“向量化计算”和传统软件工程里面的循环之间的巨大差异。高维向量之间的点积,矩阵之间的运算,如果用向量化方式实现比用循环方式实现,高效不少。建立这样的思维模式,也需要学好线性代数。

学好基础的数学知识之外,我们要稍微延伸学习一些信息科学的基础学科,尤其是信息论。信息论是构建在概率基础上的,信息论给了很多计算机领域问题一个基本的框架:把问题看做是通信问题。推荐系统要解决的问题也是一个通信问题:用户在以很不明确的方式向我们的产品发报,告诉我们他最喜欢/讨厌的是什么,我们在收到了之后要解码,并且还要给他们回信,如果沟通不顺畅,那用户就会失联。我的专业是信息与通信工程。读研时从事过 NLP 相关的课题研究,NLP 里面很多问题和方法都用到了信息论知识,这样让我深受信息论影响。有了这些基础知识,再去跟踪不断涌现的新算法新模型,就会容易得多。

推荐系统会用到很多传统数据挖掘和机器学习方法。掌握经典的机器学习算法是一个事半功倍的事情,比如逻辑回归,是一个很简单的分类算法,但它在推荐领域应用之广,其他算法无出其右。在吴恩达的深度学习课程里,从逻辑回归入手逐渐讲到多层神经网络,讲到更复杂的 RNN 等。应该怎么掌握这些经典的算法呢?最直接的办法是:自己从0实现一遍。

推荐系统不只是模型,推荐系统是一整个数据处理流程,所以模型的上游,就是一些数据挖掘的知识也需要掌握,基本的分类聚类知识,降维知识,都要有所掌握。

锻炼扎实的工程能力

前面强调自己实现算法对于掌握算法的必要性,但在实际开发推荐系统的时候,如无必要,一定不要重复造轮子。推荐系统也是一个软件系统,当然要稳定要高效。开源成熟的轮子当然是首选。实现推荐系统,有一些东西是 commonsense,有一些是好用的工具,都有必要列出来。

首当其冲的常识就是 Linux 操作系统。由于 Windows 在 PC 的市场占率的垄断地位,导致很多软件工程师只会在 Windows 下开发,这是一个非常普遍、严重、又容易被忽视的短板。

我自己深有体会,一定要熟练地在 Linux 下的用命令行编程,如果你的个人电脑是 Mac,会好很多,因为 macOS 底层是 Unix 操作系统,和 Linux 是近亲,用 Mac 的终端基本上类似在 Linux 下的命令行,如果不是则一定要有自己的 Linux 环境供自己平时练习,买一台常备的云服务器是一个不错的选择。这里有两个关键点:

  • 用 Linux 操作系统;

  • 多用命令行而少用 IDE( Eclipse、VS等)。

为什么呢?有以下三点原因:

  • 几乎所有推荐系统要用到的开源工具都是首先在 Linux 下开发测试完成的,最后再考虑移植到 Windows 平台上(测试不充分或者根本不移植);

  • 键盘比鼠标快,用命令行编程会多用键盘,少用鼠标,熟悉之后效率大大提升。而且Linux 下的命令非常丰富,处理的也都是标准文本,掌握之后很多时候根本不用写程序就能做很多数据处理工作。

  • 几乎 Linux 是互联网公司的服务器操作系统标配,不会 Linux 下的开发,就找不着工作,就问你怕不怕?

常常有人问我,实现推荐系统用什么编程语言比较好。标准的官方回答是:用你擅长的语言。但我深知这个回答不会解决提问者的疑问。实际上我的建议是:你需要掌握一门编译型语言:C++ 或者 Java,然后掌握一门解释型语言,推荐 Python 或者 R。原因如下:

  • 推荐系统的开源项目中以这几种语言最常见;

  • 快速的数据分析和处理、模型调试、结果可视化、系统原型实现等,Python 和 R 是不错的选择,尤其是 Python;

  • 当Python在一些地方有效率瓶颈时,通常是用C++实现,再用Python调用;

  • Java在构建后台服务时很有优势,一些大数据开源项目也多用Java来实现;

如果时间有限,只想掌握一门语言的话,推荐 Python。从模型到后端服务到 web 端,都可以用 Python,毋庸置疑,Python 是 AI 时代第一编程语言。

推荐系统是一个线上的产品,无论离线时的模型跑得多么爽,可视化多么酷炫,最终一定要做成在线服务才完整。这就涉及到两方面的工作:1.系统原型;2.算法服务化。这涉及到:

  • 数据存储。包括存储模型用于在线实时计算,存储离线计算好的推荐结果。除了传统的关系型数据库 MySQL 之外,还需要掌握非关系型数据库,如 KV 数据库 Redis,列式数据库 Cassandra 和 HBase 常常用来存储推荐结果或模型参数。推荐的候选 Item 也可能存在 MongoDB 中。

  • RPC 和 web。需要将自己的算法计算模块以服务的形式提供给别人跨进程跨服务器调用,因此 RPC 框架就很重要,最流行如 thrift 或者 dubbo。在 RPC 服务之上,再做原型还需要会一点基本的 web 开发知识,Python、PHP、Java 都有相应的 web 框架来迅速的完成最基本的推荐结果展示。

当然,最核心的是算法实现。以机器学习算法为主。下面详细列举一下常见的机器学习/深度学习工具:

  • Spark MLib:大概是使用最广的机器学习工具了,因为 Spark 普及很广,带动了一个并非其最核心功能的 MLib,MLib 实现了常见的线性模型、树模型和矩阵分解模型等。提供 Scala、Java 和 Python 接口,提供了很多例子,学习 Spark MLib 很值得自己运行它提供的例子,结合文档和源代码学习接口的使用,模型的序列化和反序列化。

  • GraphLab/GraphCHI:GraphCHI 是开源的单机版,GraphLab 是分布式的,但并不开源。所以建议推荐系统工程师重点学习一下 GraphCHI,它有 Java 和 C++两个版本,实现了常见的推荐算法,并在单机上能跑出很高的结果。有一个不得不承认的事实是:GraphCHI 和 GraphLab 在业界应用得并不广泛。

  • Angel:腾讯在2017年开源的分布式机器学习平台,Java 和 Scala 开发而成,已经在腾讯的10亿维度下有工业级别的应用,最终的是填补了专注传统机器学习(相对于深度学习)分布式计算的空白,值得去学习一下;由于开发团队是中国人,所以文档以中文为主,学习的时候多多和开发团队交流会受益良多,进步神速。

  • VW:这是 Yahoo 开源的一个分布式机器学工具,也支持单机,分布式需要借助Hadoop 实现。由于主要开发者后来跳槽去了微软,所以还支持 Windows 平台。阅读这个工具的源码,非常有助于理解逻辑回归的训练,微博推荐团队和广告团队第一版模型训练都采用了 VW,其开发者在 Yahoo Group 中回答问题很积极,使用期间,我在这个group 里面提了大大小小十几个问题,基本上都得到解答,这是一个学习成长方法,建议新学者常常在邮件组或者讨论组里提问题,不要在乎问题是否愚蠢,不要在意别人的取笑。

  • Xgboost:这个号称 kaggle 神器的机器学习工具,非常值得学习和使用,尤其是对于理解 Boosting 和树模型很有帮助。网上有很多教程,主要开发者陈天奇也是中国人,所以遇到问题是非常容易找到交流的人的。

  • libxxx:这里的xxx是一个通配符,包括以 lib 开头的各种机器学习工具,如liblinear、libsvm、libfm、libmf。都是单机版的工具,虽然是单机版,但足够解决很多中小型数据集的推荐问题了,著名的 scikit-learn 中的一些分类算法就是封装的libsvm 等工具。另外,libsvm 不但是一个机器学习工具,而且它还定义了一种应用广泛,成为事实标准的机器学习训练数据格式:libsvm。

  • MXNet,TensorFlow,Caffe:深度学习大行其道,并且在识别问题上取到了惊人的效果,自然也间接推动了推荐系统的算法升级,因此,掌握深度学习工具的就很必要,其中尤其以 TensorFlow 为主,它不但有深度学习模型的实现,还有传统机器学习模型的实现,Python 接口,对于掌握 Python 的人来说学习门槛很低。深度学习工具仍然建议去跑几个例子,玩一些有趣的东西会快速入门,如给照片换风格,或者训练一个动物/人脸识别器,可以有一些粗浅的认识。再系统地学习一下吴恩达的在线课程,他的课程对TensorFlow 的使用也有讲解,课后编程作业设计得也很好。

为最终效果负责的能力

推荐系统最终要为产品效果负责。衡量推荐系统效果,分为离线和在线两个阶段。

  • 离线阶段。跑出一些模型,会有定义清晰的指标去衡量模型本身对假设的验证情况,如准确率、召回率、AUC 等。这个阶段的效果好,只能说明符合预期假设,但不能保证符合产品最终效果,因此还要有线上实际的检验。

  • 在线阶段:除了有一些相对通用的指标,如用户留存率、使用时长、点击率等,更多的是和产品本身的定位息息相关,如短视频推荐关注 vv,新闻推荐关注 CTR 等,这些和商业利益结合更紧密的指标才是最终检验推荐系统效果的指标,推荐系统工程师要为这个负责,而不能仅仅盯着离线部分和技术层面的效果。

了解不同产品的展现形式对推荐系统实现的要求,feed 流、相关推荐、猜你喜欢等不同产品背后技术要求不同,效果考核不同,多观察、多使用、多思考。

最后,要学会用产品语言理解产品本身,将技术能力作为一种服务输出给团队其他成员是一项软技能。

推荐系统领域现状

协同过滤提出于90年代,至今二十几年,推荐系统技术上先后采用过近邻推荐、基于内容的推荐,以矩阵分解为代表的机器学习方法推荐,最近几年深度学习的火热自然也给推荐系统带来了明显的提升。推荐系统的作用无人质疑,简单举几个例子,80%的 Netflix 电影都是经由推荐系统被观众观看的,YouTube 上60%的点击事件是由推荐系统贡献的。

推荐系统领域现状是怎么样的呢?这里分别从技术上和产品上来看一看。先看技术上,推荐系统所依赖的技术分为三类:传统的推荐技术、深度学习、强化学习。

首先,传统的推荐技术仍然非常有效。构建第一版推荐系统仍然需要这些传统推荐系统技术,这包括:User-based 和 Item-based 近邻方法,以文本为主要特征来源的基于内容推荐,以矩阵分解为代表的传统机器学习算法。当一个互联网产品的用户行为数据积累到一定程度,我们用这些传统推荐算法来构建第一版推荐系统,大概率上会取得不俗的成绩,实现0的突破。这类传统的推荐算法已经积累了足够多的实践经验和开源实现。由于对推荐系统的需求比以往更广泛,并且这些技术足够成熟,所以这类技术有 SaaS 化的趋势,逐渐交给专门的第三方公司来做,中小型、垂直公司不会自建团队来完成。

深度学习在识别问题上取得了不俗的成绩,自然就被推荐系统工程师们盯上了,已经结合到推荐系统中,比如 YouTube 用 DNN 构建了他们的视频推荐系统,Google 在Google Play 中使用 Wide & Deep 模型,结合了浅层的 logisticregression 模型和深层模型进行 CTR 预估,取得了比单用浅层模型或者单独的深层模型更好的效果,Wide & Deep 模型也以开源的方式集成在了 TensorFlow 中,如今很多互联网公司,都在广泛使用这一深度学习和浅层模型结合的模型。在2014年,Spotify 就尝试了 RNN 在序列推荐上,后来 RNN 又被 Yahoo News 的推荐系统。传统推荐算法中有一个经典的算法叫做 FM,常用于做 CTR 预估,算是一种浅层模型,最近也有人尝试了结合深度学习,提出 DeepFM 模型用于 CTR 预估。

AlphaGo、AlphaMaster、AlphaZero一个比一个厉害,其开挂的对弈能力,让强化学习进入大众视线。强化学习用于推荐系统是一件很自然的事情,把用户看做变化的环境,而推荐系统是 Agent,在和用户的不断交互之间,推荐系统就从一脸懵逼到逐渐“找到北”,迎合了用户兴趣。业界已有应用案例,阿里的研究员仁基就公开分享过淘宝把强化学习应用在搜索推荐上的效果。强化学习还以 bandit 算法这种相对简单的形式应用在推荐系统很多地方,解决新用户和新物品的冷启动,以及取代 ABTest 成为另一种在线实验的框架。

除了技术上推荐系统有不同侧重,产品形式上也有不同的呈现。最初的推荐系统产品总是存活在产品的边角上,如相关推荐,这种产品形式只能算是“锦上添花”,如果推荐系统不小心开了天窗,也不是性命攸关的问题。如今推荐产品已经演化成互联网产品的主要承载形式:信息流。从最早的社交网站动态,到图文信息流,到如今的短视频。信息流是一种推荐系统产品形式,和相关推荐形式比起来,不再是锦上添花,而是注意力收割利器。

推荐系统产品形式的演进,背景是互联网从 PC 到移动的演进,PC 上是搜索为王,移动下是推荐为王,自然越来越重要。随着各种可穿戴设备的丰富,越来越多的推荐产品还会涌现出来。产品和技术相互协同发展,未来会有更多有意思的推荐算法和产品形式问世,成为一名推荐系统工程师永远都不晚。

文 / 陈开江

希为科技 CTO,曾任新浪微博资深算法工程师,考拉FM算法主管,个性化导购App《Wave》和《边逛边聊》联合创始人,多年推荐系统从业经历,在算法、架构、产品方面均有丰富的实践经验。

如何成为一名对话系统工程师
如何成为一名数据科学家
如何成为一名异构并行计算工程师
如何成为一名语音识别工程师
如何成为一名自然语言处理工程师
求取技术突破:深度学习的专业路径
实战路径:程序员的机器学习进阶方法

阅读全文: http://gitbook.cn/gitchat/geekbook/5a3c7879902f0f2223e2526d

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. PTA7-3 括号匹配 (25 分)

    给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。输入格式:输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。输出格式:如果括号配对,输出yes,否则输出no。…...

    2024/4/12 5:05:58
  2. 开源!《AI 算法工程师手册》中文教程正式发布!

    作者 | 红色石头转载自 AI有道(id:redstonewill)最近红色石头在浏览网页的时候,偶然发现一份非常不错的 AI 资源,就是这本《AI 算法工程师手册》 。本文将给大家推荐这本优秀教材,并作详细的介绍。这本《AI 算法工程师手册》已正式开源,无需购买纸质书籍,可以直接在线阅…...

    2024/4/18 22:44:17
  3. YSlow 规则中13 条解释 (节选)

    YSlow 规则中一共有13条,其中比较重要的有11条,先简单说说各自的大概解释: 1、Make fewer HTTP requests--更少的http请求,也就是说页面中尽量少的引用外部静态资源,js、css以及图片 2、Use a CDN--使用CDN网络,将页面中的静态资源分布到离用户最近的网络节点上 3、Add a…...

    2024/4/12 5:05:46
  4. C++括号匹配的检验

    假设表达式中包含三种括号,其嵌套顺序任意,即[]({[]})、([({})])为正确格式,{{[])、}()[]为不正确的格式,检查括号是否匹配,基于C++实现,使用STL实现的stack进行实现;#include <iostream> #include <vector> #include <stack> #include <string>…...

    2024/4/16 11:53:39
  5. bootstrap4 常用样式类名

    1、容器和网格系统 容器 container 固定宽度,不同尺寸固定了不同的宽度 container-fluid 100%宽度 栅格系统 cal-xs//<768px cal-sm //>=768px cal-md //>=992px cal-lg //>=1200px 2、字体颜色及背景颜色 字体 text-muted 柔和 text-primary 重要 text-success 成…...

    2024/4/12 5:06:34
  6. Davinci调试环境的搭建(三)

    Davinci调试环境的搭建(三)2009-08-28 21:12 2073人阅读 评论(5) 收藏 举报 Davinci调试环境的搭建(三)五、安装DSP程序的编译环境 TI公司提供了高效的C编译器和集成开发环境Code Composer Studio ,可以方便的编译调试DSP程序,同时CCS的帮助文档也是十分全面。 1、安装C…...

    2024/4/15 5:37:17
  7. layui三方插件multiSelect实现下拉框多选踩坑纪实

    今天在使用一个插件:multiSelect【多选列表】的时候,按照API操作,并封装成动态tpl组件后,显示结果却一直在报错。场景:如下格式的对象的数组[{"active": true,"avatarUrls": {"48x48": "https://www.gravatar.com/avatar/64e1b8d34f42…...

    2024/4/12 21:40:15
  8. Davinci DM6446开发攻略——linux-2.6.18移植

    【原文:http://zjbintsystem.blog.51cto.com/964211/284468】 TI DAVINCI 使用最新的内核是montavista linux-2.6.18,之前说过,国内很多公司,包括开发板的软件包,一直在使用montavista linux-2.6.10,这个版本准确来说是比较低的,实时性肯定没2.6.18好(MontaVistaLinux …...

    2024/5/6 6:03:10
  9. 网络工程师必备的好帮手usb转console调试线

    如果你想励志成为一名网络工程师、通讯工程师或者网络管理员的话,那么你必须要会使用usb转console调试线这款网络工具,因为只要你出来工作了,你一定会使用到这个工具,这个工具非常的实用,为什么要写这篇文章呢?首先我觉得有实际的应用价值,其二是因为毕竟人的记忆力是有…...

    2024/4/12 5:06:46
  10. vim括号匹配和跳转技巧

    vim 括号匹配跳转操作: % 跳转到相配对的括号 gD 跳转到局部变量的定义处跳转到光标上次停靠的地方, 是两个, 而不是一个" mx 设置书签,x只能是a-z的26个字母 `x 跳转到书签处("`"是1左边的键) > 增加缩进,"x>"表示增加以下x行的缩进 < 减…...

    2024/4/12 5:06:34
  11. 学习资料汇总

    B站: Unity官方 Unity模型连斩 LOL美术资源提取 Cocos Creator|Cocos2dx 爆款微信小游戏开发 入门教程 代码钢琴 图形学教程 人工智能教程 黑马Python教程 人工智能Python大数据基础 Unity 多镜头分镜攻击效果的实现 Pr教程1 Pr教程2 AE+C4D教程 WeChat收藏: AR+GPS 在Unity中…...

    2024/4/13 8:07:45
  12. YSLOW性能测试前端调优23大规则(19)使用一些无cookie的域

    在之前章节中我们介绍了如何通过减少cookie的大小来提升性能,cookie虽然有很多的优势,但并不是说cookie是万能的。 当我们浏览器向服务器发送一些静态文件时,如图片、CSS样式等,在发送请求的同时会将cookie也同时发送到服务器,如图所示。上图中发送的cookie是和图片的请求…...

    2024/5/6 5:25:18
  13. 简单了解APP黑暗模式

    本文转载: 关于APP黑暗模式的设计探索前不久苹果发布会IOS13系统和大家见面了,其中的黑暗模式是一项比较大功能性更新,黑暗模式倒也并不是什么新奇的功能,国内的很多APP早就进行了开发,包括一些国产手机厂商也做了类似了夜间模式或是护眼模式。目前公司产品要适配IOS13,计…...

    2024/4/12 19:04:04
  14. python的栈实现及括号匹配问题

    栈是一种先进后出(FIFO)的数据结构,是一种特殊的列表,只能访问栈顶元素。 栈通常的操作 Stack() //创建一个栈 isEmpty() //判断栈是否为空,是则返回True,否则返回False peek() //返回栈顶元素 size() //返回栈的大小 push() //往栈中添加元素,也叫入栈 …...

    2024/4/20 15:28:19
  15. Davinci 开发心得点滴

    1. 用eclipse辅助开发,可节省不少开发时间。 1.1 在eclipse.org下载Eclipse IDE for Java EE Developers(目前最新版本helios,即v3.6),以及相应版本的CDT(目前最新版本7.0.0)。安装之后,通过eclipse的菜单“Window->Preferences”调出窗口后,在“General->Edito…...

    2024/3/31 16:25:17
  16. 使用layui快速实现登陆页面

    <?phpsession_start();if (isset($_POST[user])) {$user = $_POST[user];$password = $_POST[password];if ($user == admin && $password == 123456) { //验证正确$_SESSION[user] = $user;//跳转到首页header(location:http://127.0.0.1/daohang/admin/in…...

    2024/4/12 5:06:34
  17. Android 10文档阅读总结

    ——不想认命,就去拼命目录一、前言二、简介​三、新技术(1)设备 ——> 可折叠(2)网络 ——> 4G~5G(3)通知 ——> 智能化(4)主题 ——> 深色/暗黑(5)手势 ——> 导航(6)设置 ——> 浮动(7)共享 ——> 更快捷四、隐私权变更五、其他变更六…...

    2024/4/16 6:02:29
  18. yslow客户端性能测试

    1111111111 转载于:https://www.cnblogs.com/Chamberlain/p/11077948.html...

    2024/4/20 17:55:12
  19. 顺序栈实现括号匹配

    //采用顺序栈编程实现:表达式的括号是否匹配问题。 //要求:输入带括号的表达式,判断其中括号是否配对。 //扩展功能:给出配对括号的位序和不配对括号的位序。#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #in…...

    2024/4/18 19:01:12
  20. 浅谈前端自学经历---初识layui框架--致自学前端的友友们!以此共勉~

    这是我第一次写博客,以前吧!也就听说,也见过别人博客的经验分享,但是自己从未实操过,今天突然想来试着写写,以记录自己自学前端的点滴,以此来共勉!可以说从去年10月份我一直专注于前端这一块,条件有限,没有去培训机构,有人说:那你为什么不去贷款?吼吼~贷款我也怕还…...

    2024/4/19 1:50:02

最新文章

  1. React 之 使用 ref 引用值(七)

    当你希望组件“记住”某些信息&#xff0c;但又不想让这些信息 触发新的渲染 时&#xff0c;你可以使用 ref 。 //通过从 React 导入 useRef Hook 来为你的组件添加一个 ref import { useRef } from react;export default function Counter() {//在组件内&#xff0c;调用 useR…...

    2024/5/6 6:43:55
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 鹅厂实习offer

    #转眼已经银四了&#xff0c;你收到offer了吗# 本来都打算四月再投实习了&#xff0c;突然三月初被wxg捞了&#xff08;一年前找日常实习投的简历就更新了下&#xff09;&#xff0c;直接冲了&#xff0c;流程持续二十多天&#xff0c;结果是运气还不错&#xff0c;应该是部门比…...

    2024/5/1 13:19:09
  4. ssm框架中各层级介绍

    1、Spring&#xff08;业务逻辑层&#xff09;&#xff1a; Spring框架提供了依赖注入&#xff08;DI&#xff09;和面向切面编程&#xff08;AOP&#xff09;等功能&#xff0c;可以帮助管理Java应用程序中的对象依赖关系和提供横切关注点的支持。 在SSM框架中&#xff0c;S…...

    2024/5/3 3:42:05
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/4 23:55:17
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/4 23:55:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57