导航:首页 > 源码编译 > 算法的功能需求是什么

算法的功能需求是什么

发布时间:2024-11-11 12:04:32

1. 算法及其特性有哪些

1.算法的重要特性(1)有穷性:一个算法必须在执行有穷步骤之后正常结束,而不能形成无穷循环。

(2)确定性:算法中的每一条指令必须有确切的含义,不能产生多义性。

(2)可行性:算法中的每一条指令必须是切实可执行的,即原则上可以通过已经实现的基本运算执行有限次来实现。

(4)输入:一个算法应该有零个或多个输入。

(5)输出:一个算法应该有一个或多个输出,这些输出是同输入有特定关系的量。

2.算法描述的方法(1)框图描述:该方法使用流程图或N-S图来描述算法。

(2)自然语言描述:该方法采用自然语言,同时添加高级程序设计语言如while、for和if等基本控制语句来描述算法。这类描述方法自然、简洁,但缺乏严谨性和结构性。

(2)类语言描述:这是介于程序设计语言和自然语言之间算法描述形式,其特征是突出算法设计的主体部分而有意忽略某些过于严格的语法细节,如类C或C++的伪语言。这种算法不能直接在计算机上运行,但专业设计人员经常使用它来描述算法,它具有容易编写、阅读和格式统一的特点。

(4)程序设计语言描述:采用某种高级程序设计语言(如C或C++)来描述。这是可以在计算机上运行并获得结果的算法描述。

本课程将采用伪C语言进行算法描述。

2.算法与程序的关系算法的含义与程序十分相似,但二者是有区别的。算法和程序都是用来表达解决问题的逻辑步骤;算法是对解决问题方法的具体描述,程序是算法在计算机中的具体实现;一个程序不一定满足有穷性(死循环),而算法一定满足有穷性;程序中的指令必须是机器可执行的,而算法中的指令则无此限制;一个算法若用计算机语言来书写,则它就可以是一个程序。因此,程序是算法,但算法不一定是程序。4.算法设计要求在算法设计中,对同一个问题可以设计出不同的求解算法。如何评价这些算法的优劣,从而为算法设计和选择提供可靠的依据?通常可从以下四个方面评价算法的质量:

(1)正确性:算法应该能够正确地执行预先规定的功能,并达到所期望的性能要求。

(2)可读性:算法应该好读,以有利于读者对程序的理解,便于调试和修改。

(2)健壮性:算法应具有容错处理。当输入非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。

(4)效率与低存储量需求:效率指的是算法执行的时间。对于同一个问题,如果有多种算法可以求解,执行时间短的算法效率高。算法存储量指的是算法执行过程中所需要的最大存储空间。高效率和低存储量这两者与问题的规模有关。

2. 论内容理解算法

经过几年的膨胀期,算法的热度快速下降,不论是AI四小龙的上市之路艰辛,还是各大头部互联网公司的副总裁重返学术界,以及算法人员的招聘冻结。这里有总体经济形势恶化带来的影响,也与算法本身的能力上限有关,在各类学习任务上,算法的性能正在逐渐进入瓶颈,通用任务效果提升的梯度在逐渐变小,有效的进展都依赖于超大规模的数据和模型参数,以通用语义表征任务为例,完成一次超大规模的预训练模型的成本达到数百万元,极大地限制了中小企业参与的机会。

在业务应用方面,经过几年的持续建设和多种类型功能的输出,业务依赖的不同方向所对应的内容理解算法在应用和效果层面已趋成熟,能够带来惊喜效果的机会变的很少。这种形势下,作为偏后台支持的角色,如何去识别并持续深化内容理解算法的作用变得很重要。本文试图从价值视角分析内容理解的生存形势,发掘未来发展的可能性以及从业人员的应对手段方面做了些不算严谨的阐述。

一直以来我们定义内容理解算法为业务的万金油,随时随地可以插拔式应用。从配合内容生产者做创作提示,帮助运营做质量分析,版权保护,相似查找,帮助搜索算法提供长尾查询的效率增强,帮助推荐算法提供标签等细粒度语义特征,根据消费者的负向反馈进行同类型的内容屏蔽(如软色情,恶心,不喜欢的明星)。因此很自然地,我们把内容理解算法的使命定义为“内容流转的全链路提质提效”,这里的质量包含对确定性劣质的去除,以及优质内容的免审或者高曝推荐。效率指的是把内容从生产到消费的链路上的时间优化到最快,包括配合运营进行快速的内容筛选,辅助分发算法进行人群和内容的精准匹配。

这里需要回答的是,在上述相对完备的能力基础上,内容理解算法所能提供的最核心的价值是什么?

首先是客户的定义问题,内容理解算法的客户不是运营,不是分发算法,也不是生产者和消费者。而是要回归到最原始的“内容”,用于对内容进行附加值的极大化提升。

其次,参与到内容流转各环节的角色承担了对内容理解算法的价值落地和放大,不论是运营所主导的平台意志实现,分发算法对内容和消费者的高效匹配,以及生产者和消费者分别从内容供给和消费方面对内容理解算法的诉求。

最后,内容本身是一种载体,载体背后是人对现实世界的刻画,平台层面有对内容进行按需取用的逻辑,消费者也有用脚投票的权利,这里的内容理解算法不应当做任何的自我倾向,按照业务诉求的多样化能力输出是内容理解存在的核心价值,否则通过简单搬运学术界的开源模型便可形成表面上的业务能力堆砌,显然是无法满足业务的增长诉求。

因此,我们可以形成价值定义: “内容理解算法的核心价值是内容全生命周期内,根据服务业务的多样化诉求,提供智能化和结构化的理解能力,其衡量标准为上述能力带来的附加效率提升和成本下降。”

从这个定义来看,内容理解算法似乎没有站在主战线上,价值被隐性地统计起来。实则不然,就如战争一样,冲锋在前的部队只有少数,而承担防守和辅助任务的兵种实际上是不可或缺的,很多时候也决定了战争的走向, 历史 上由于后勤保障问题导致战争走向改变的例子比比皆是。就如定义中的效率提升,它其实不是一票式的,由于效率的提升会带来供给者和消费者的规模增大,又会产出对内容理解算法效率提升的更多诉求,这种正反馈式的链路也是内容业务可以快速实现既定目标的重要方式。

一、估值 游戏

以2021年11月小红书的估值来看,彼时6千万DAU和47分钟人均时长的内容社区获得200亿美金的估值认可,这属于一个早期内容社区经历过较长时间的成长后才能达到的高度。考虑一个相对创新内容业务,两到三年的时间想要达到5000万DAU和5分钟的人均时长其实还是比较困难的,按照对标小红书的逻辑,估值上限为30亿美金,假设内容理解算法对业务贡献率用3%折算,估算下来内容理解估值为9千万美金,按照简单的市销率10倍计算,内容理解每年的营收为900万美金(按照估值反推营收的原因是是内容理解算法对业务的点状式能力输出难以做到精准的量化统计)。

900万美金是非常尴尬的数字,因为内容理解算法存在比较高昂的成本,从大头上来看,内容理解算法支出分为三部分,第一部分是算法人员,以15人的支撑团队计算(看起来有点多,实则不然,想要支撑对未来预期的增长,15个人实际并不够用),按照单人每年的支付成本150万计算(这个成本折算到员工回报大约为100万左右,已经没多大市场竞争力),大约400万美金/年;第二部分是资源消耗,按照百万内容/天的规模计算,各种资源成本(包括机器,存储、辅助软件等)大约500万美金/年;第三部分是配套工程人员,产品经理,外包标注支持等,这部分大约150万美金/年。可以看到业务发展到这个阶段,内容理解算法是入不敷出的。

按照上述口径,能够改善内容理解价值的核心方法包括三个方向,一是业务估值的上升,需要业务DAU和时长的稳定提升。二是内容理解算法的业务贡献率提升,这里对内容理解算法的要求是比较高的,不仅仅要从内容的质量,生产者的辅助,分发流量效率,业务的大盘生态,或者业务商业化上有所作为。三是降低成本,这个路径的可行性很弱,反倒是随着业务的成长,成本的消耗会进一步增加,能够做的是控制成本增长的速度小于业务增长。

“按照业务贡献对处于业务发展前期的内容理解算法进行价值衡量,情况是非常不乐观的”。

二、价值重塑

前面的视角是业务闭环下的价值衡量,放开到更大的视角,内容理解算法之所以构成相对独立的功能单元是因为它提供的能力是相对通用的,比如标签识别算法不仅仅可用于小红书,也可用于抖音和快手这样的内容业务。

因此在支撑具体的业务的过程中沉淀出通用算法进行其他类似业务的价值输出,是内容理解算法的另一扇门。这里面临的另一个问题是如果是头部业务,一定是要求内容理解算法是为它量身定制的,而中小业务愿意为内容理解算法买单的价钱是有限的。针对这个问题的核心解法是在做头部业务能力定制的时候,提供尽可能通用的能力,通过对数量众多的中小业务形成价值输出,实现量级的堆砌。

此外,要差异化成熟业务和创新业务,对于成熟业务而言,内容理解算法对业务的微小提升可能是非常明显的,以京东平台为例,如果内容理解算法通过图像搜索或者同款识别等能力提升业务成交0.1%,也将是数亿美金每年的价值加成。对于创新业务而言,内容理解算法应当深入业务,从内容的全生命周期为业务提供硬核的能力,用以帮助业务实现生产者和消费者体感的明显提升,最终带来业务的正反馈式增长,早期的抖音就是依托炫酷的AI特效体系实现用户规模的快速增长。

“目前能看到的,让内容理解算法进行价值放大的有效途径是贴身服务头部业务的过程中,沉淀通用化能力横向输出尽可能多的同类型业务。针对成熟业务寻找对业务增长的确定性增长点,创新业务寻找到适合于业务快速增长的硬核能力”。

作为一名内容理解算法沉浮六年的老兵,我对内容理解算法的未来持谨慎乐观的态度。原因有三个方面,一是这一轮深度学习带来的算法提升空间变得有限;二是互联网用户进入存量时代后,头部内容会更加精耕细作,从追求效率转向运营的精细化和粘性保持;三是对未来可能出现的下一代内容消费方式的期待和观望。

一、相对有限的算法提升空间

过去的几年,内容理解算法的演进可以分为三个方向,一次是从传统的手工特征到神经网络特征的升级,通过大数据和大算力实现效果的明显提升,也极大降低了算法人员的准入门槛;二是对内容的理解从单一模态升级为多模态&跨模态,以及以图神经网络为基础的推理能力;三是极大规模数据的模型学习,即以大规模预训练模型为基础的统一内容表征方式,催生了transformer家族的不断壮大。

然则,算法的性能逐渐接近瓶颈,不论是在看图说话、 情感 分析、还是标签识别等算法任务上距离人类仍然存在一定的距离,并且这份距离看起来短期内没有明确的突破机会。反倒是业界开始从监督学习往无监督学习靠近,试图利用海量数据学到背后的范式,这本质上是对追赶上人类能力的背离。

以transformer为例,百亿数据下训练一次消耗数百块GPU,数周的训练时间才有可能获得明显的效果的提升,这还不包括精细的网络调整的令人沮丧时间成本。此外下游任务想要得到期待的效果,还需要进一步的迁移学习。从表象来看,只是提供一个更好的算法学习的起点。

我们经历了一个业务对我们翘首以待到逐渐理性的合作过程,AI算法从来就无法成为救世主,而是有更强生产力的工具。当然我们不应当过于悲观,起码过往的几年,蓬勃发展的算法体系带来了从业人员的准入门槛极大下降,大众对AI算法的广泛认知也有助于内容理解算法相对长期的旺盛生命力和成长。

二、存量用户时代的内容社区的运营方式

中国互联网用于见顶,意味着各大内容业务必须进入存量用户阶段。存量用户阶段面临的困境是粗放式增长不复出现,用户群体开始细分,用户粘性变得更加艰辛,要求内容社区必须进行精细化运营。精细化运营背后的表现为对效率的要求下降,转而对用户心智和长期的战术保持耐心。这种情况下内容理解算法会成为散落到业务众多需求列表的功能支撑点,独当一面的机会愈发减少。

“从算法学习的角度来看,人的创意,玩法设计,互动属性是目标(ground truth)的天花板,因此此时此刻保持工具属性是相对合理的态度”。

三、下一代的内容消费方式

互联网时代的内容消费经历了文本到图像的升级,再到视频的升级,每一次内容消费升级背后产出对内容理解算法的爆发式增长,那么下一代的内容消费方式又是什么呢?

业界目前正在押注元宇宙,facebook甚至把名字都改成了meta。过去有几波VR/AR的热潮,看起来除了在某些线上成人网站和线下 游戏 设备之外,并未有足够颠覆我们日常生活方式的输出。

人类对更高级的感知外部环境和与他人无时空差别的交互需求是明确存在的,只是它是否由“元宇宙”承载却是个未知数。如果元宇宙是这个载体的话,那么虚拟世界的感情识别,触感生成,自然交互,生态的 健康 治理,超大规模内容消费下的负载下降会是内容理解算法可以尝试去攻克和深耕的全新地带,也会承担更为核心的角色。

“下一代的内容理解消费方式有机会成为内容理解的下一个主战场,但是目前的形势并不明朗,需要我们保持耐心地思考和观望”。

四、其他的可能

抛开头部综合性AI大厂商如网络,腾讯,阿里巴巴,华为等企业作为内容理解多样性需求输出的第一极之外,还有以内容理解算法作为平台能力输出的第二极,比较有名的是AI四小龙(商汤、旷视、依图,云从),以及深度结合各民生领域的产业AI能力输出。

医疗AI,解决医疗资源匮乏导致看病需求无法被满足,人工看诊时间长等问题。比较典型的case是COVID-Moonshot众包协议,由500多名国际科学家共同参与,以加速COVID-19的抗病毒药物研发。

教育AI,解决优质教育资源匮乏导致的分配不公,及教师和学生的信息不对称问题,虽然国家正在推新教育双减政策,但是教育作为一项基本的人身权利应当得到更好的满足,比较知名的企业有松鼠AI,猿辅导等。

制造AI,解决制造车间设备、数量、功能增多、调度分配难度大、需求端个性化要求等问题,利用AI,自动化,IOT,边缘计算,云,5G等手段,充分利用生产车间的海量价值数据,把人从简单重复的劳动中解放出来以从事更高级的任务,帮助提高产量的同时降低缺陷率,比较知名的企业有正在香港上市的创新奇智和创新型工业AI-PASS平台提供商远舢智能等。

此外,还有在智能驾驶、智慧城市、芯片AI等产业领域深度耕耘的各种公司,他们正在充分发挥大数据和AI算法的能力,为各大产业带来源源不断的创新能力。

回到内容理解算法的现存生存环境,仍然存在一定的潜力可以挖掘。在下一代内容消费方式到来之前,可以做得更好,形成与上下游的积极联动,在现在的舞台上展现出更佳的风采。

一、产品

内容理解算法的产品是不是刚需,这个话题有点争议,有人说算法的产出速度是比较慢的,让昂贵的产品角色参与建设本身会存在浪费的情况。我个人认为内容理解算法所对应的产品角色必须具备,因为在庞大的业务体系后面,如果缺失了面向业务需求的自顶向下的内容理解算法体系设计和建设,非常容易出现业务赋能的水土不服。

产品需要考虑的核心问题是如何衡量长期和短期投入,算法是比较精细的工作,对结果的预期是非确定性的,因此需要做好对业务预期的管理以及同业务需求的及时交互。为了保障算法最终在业务的使用效果,前期可以通过简化版本或者半成品算法的产品化方案进行快速试错,帮助业务决策的同时给算法的长期迭代争取空间。此外,针对算法长期迭代设计有效的样本数据回流机制,通过配置化输出给到业务尽可能多的试错方式,以及业务上线使用后的效果实时监控等都是产品需要思考的工作。

二、运营

运营应该是内容理解算法打交道最频繁的相关方,内容理解算法的评价标准和业务适配都需要运营来进行构建和监控。内容理解算法是运营进行内容供给生态和消费生态运营的智能助手,从内容结构化标签角度提供到运营各种分析使用方式,如内容审核、内容圈选,内容人群定投等。

和运营打交道对内容理解算法提出高要求,如何快速衡量需求的合理性及可行性非常关键。有时候内容理解算法做了过度承诺,导致上线效果不佳,影响业务的发展。有时候对算法实现效果的不自信或产品化用法借力不够从而拒绝需求导致业务失去宝贵的试错机会。因此内容理解算法应当对内容运营的链路有相当的掌握,可以和运营一起定义全链路算法能力,从应用的视角推进算法需求的合理有序的开展。

三、生产者

生产者对于平台来说至关重要,巧妇难为无米之炊,不论运营和分发算法多么牛逼,缺少了高质量的内容生产来源,业务是不可能有持续增长的。通常情况下两千优质生产者加上数万的普通生产者即可支撑起千万DAU的业务,如何服务好这部分生产者对平台来说非常关键。

内容理解算法和生产者目前的主要交互方式包括几个方面,一是在内容生产的时候给到生产者的内容元素的智能推荐,如话题,标题,配乐的推荐等;二是进行内容展现效果的提升,如滤镜,贴纸,美颜,画质增强等;三是从质量层面给予生产者指导和管控,包括从业务视角给到生产者发布的内容大致因为何种理由不被平台采纳,内容高热趋势消费榜单,内容的版权保护等。

从生产者视角来看,尽可能多地从平台获取流量或者商业化价值是根本追求,因此往往会出现对平台规则的不断试探以攫取利益,如发布大量的擦边球或危言耸听的内容。内容理解算法需要在内容供给规模不断变大的情况下帮助平台保持 健康 的生态和有效的流量分配同时尽可能给到生产者更多指导。这种相爱相杀的关系也给内容理解算法带来了不少的挑战和生存空间。

四、分发算法和消费者

把分发算法和消费者放在一起的核心逻辑是内容理解算法绝大部分情况下是需要通过分发算法和消费者打交道的。从消费者视角观察,高活用户代表主流心智,如何服务好这波群体关系到业务的生存问题。中低活用户是平台的增量所在,持续加强这部分用户的平台粘性是关键任务(这里会有部分用户的出逃,为了维护平台的心智,这部分的牺牲是可接受的)。分发算法承担了把海量内容做负载下降后根据用户的长短期兴趣进行推荐的使命,分发算法是需要秉承平台意志的,用于进行内容的流量调配用于影响消费者的体感和心智,给平台带来源源不断的生机。

早期编辑为主的内容分发模式下,消费者是被教育的对象,一天之内能够看到的新鲜内容是非常少的,这种情况导致消费者的浏览深度和时长是受限的。个性化推荐模式下,用户的兴趣被极致放大,由于相关内容和新鲜内容的快速推送,消费者会感受到强烈的沉浸式消费体感。然而内容的多样性,消费体感的持续维护,兴趣的拓展等变得非常重要,这给分发算法的精准性提出很高要求。提供分发算法细粒度的识别能力是内容理解算法可以大展身手的机会,内容是否具备不错的分发潜力以加大分发流量?内容的适合人群是什么?用户无序浏览背后的核心兴趣是什么?软色情/部分人群不喜好内容(蛇虫宠物)如何精准识别用以分发调控等问题都是分发算法难以触达的地方,这些命题正是内容理解算法可以深入研究并影响内容分发和消费的重要方面。

除了特定的场景(如互动玩法,个性化封面图等),内容理解算法应当恪守自己在内容生命周期的参与广度。涉及到内容的分发和消费,内容理解算法应当把自己定义为分发算法不可或缺的助力,而不是试图去做替换,站在内容理解算法视角,分发算法可以约等于消费者。以饭馆运作为例,分发算法是大厨,根据消费者的口味和食材和菜谱提供个性化的食物服务。内容理解算法可以对食材进行质量管控,研发新的菜谱,在必要的时候提供半成品的菜品。和消费者的交互交由分发算法来处理,毕竟术业有专攻,内容理解算法可以在对内容的深度理解和消费者洞察上做纵向的深入,提供更多的可能性,包括生态、多样性、内容保量等。

内容理解算法和分发算法的理想态是正和 游戏 ,零和 游戏 对双方都是没有意义的,因此这里额外对内容理解算法提出的要求是在内容消费场景建立一套相对客观的评价体系,通过算法的标准化评估进行上线流程的加速,通过不断的快速试错给分发算法提供更多枪支弹药。

五、工程&数据分析

一个好汉三个帮,内容理解算法背后也站着一群小伙伴,面向算法生产的大规模工程基础设施和面向算法洞察的数据分析能力可以帮助内容理解算法更好的发展。在内容爆炸式增长的今天,高效的算法工程体系非常关键,甚至是拉开不同公司差距的最重要手段之一。有个非常明显的例子,在业界举办的各种算法大赛上,只要是大型互联网公司参赛基本上都会出现霸榜的情况,这背后是模型训练效率的强大先发优势,拥有百块级别GPU并发训练能力的高校是非常少的。此外以通用向量检索功能为例,百亿级的向量索引能力在有限的算力和内存消耗下稳定运行起来是需要大量的工程优化手段的,而这个功能对算法的高效使用至关重要。

服务于内容理解算法,数据分析有非常多的应用。根据消费统计行为构建面向内容兴趣的用户画像,风向趋势内容消费对供给的指导,层次耦合的内容标签的合理挂靠关系,算法上线前的有效性分析,及算法上线后持续监控和异常告警等。

内容理解算法需要做的是面向业务场进行完整的架构设计,从算法的效率角度,包括算法服务效率,算法洞察视角等方面联动工程&数据分析提供强大的生产力,通过规模和系统厚度构建足够的技术门槛。

2021年对中国互联网,甚至是中国 社会 的前行都是不同寻找的一年,在全球经济下行,国家间人为壁垒构建的情况下,恰恰又遭遇了国内人口增长的停滞,国家对互联网平台的强管控,以及互联网用户渗透的见顶。

内容理解算法背后的AI算法体系多少也收到了波折,不过从整体形势来看,AI算法体系和产业化仍然在往前走。基础理论研发体系中对应的论文发表、会议举办及大赛的举行和参赛人员的规模都在增长。这两年的遇冷问题主要是受到市场大环境的影响,AI占总体投资的比重仍然在上升。从国内方面来看,全球经济的技术封锁进一步坚定了中国立足自主创新的决心和信心,国家十四五计划也明确提出了大数据,人工智能,VR/AR的产业发展规划,AI产业仍然有很强的潜力值得挖掘。

作为依附于业务的内容理解算法,需要有清晰的自我认知和定位。我们的核心价值是什么?它如何得到有效的定义和量化?作为服务于业务众多角色中的一员,如何做好同其他角色的正向互动?上述问题背后的答案代表了内容理解算法的核心作用。现在的算法界有一股投机风,什么热门就搞什么,有号称无需数据标注的无监督学习,有号称可以效果对标大量标注样本的小样本学习,有号称单个算法模型打遍天下的多模态预训练学习等等。如果从问题抽象简化的角度去研究基础的理论体系和算法学习范式是没有问题的,但是如果业务的算同学也把这类概念摆在嘴上是有问题的,脱离了业务场景的核心诉求去谈技术创造新商业,是一种对客户的傲慢,属于典型的机械主义。

作为深度结合业务的内容理解算法,应当从业务场景出发,结合算法的可行性去 探索 用于业务赋能的核心技术,对于明确可以产生正向业务价值的算法技术,哪怕需要较长一段时期的打磨,也要敢于投注建设,在算法研发的过程中不断地思索业务的更多可能性,逐渐把业务的不确定性转化为技术的相对确定性。对于较长时间无法形成对业务贡献的算法,应当果断放弃深入研究,当然作为技术观望跟进是没有问题的。

从目前形势来看,内容理解算法的发展确实碰到了一些困难,但我们可以保持对未来的谨慎乐观,期待下一代内容消费形态的来临,同时尽可能多地进行业务场景的细化进行能力输出和加强,把存量业务价值做好放大,通过算法自身的持续建设,为将来可能来临的那一刻做好技术储备。

阅读全文

与算法的功能需求是什么相关的资料

热点内容
新华保险服务器登录不上怎么回事 浏览:391
气温高时汽车空调压缩机振动 浏览:559
分配器python 浏览:222
outlook服务器怎么查询 浏览:400
python预测疫情代码 浏览:982
普通化学原理pdf 浏览:908
java的圣经 浏览:41
python遍历两个数组 浏览:396
手游搭建云服务器 浏览:401
视易锋云服务器启动黑屏 浏览:139
python怎么获取网页a标签内容 浏览:982
app更新后老的安装包去哪里了 浏览:199
集合运算法则差集 浏览:310
x2pdf 浏览:271
python源码cs 浏览:101
数控机床自动编程软件 浏览:738
方舟的服务器号是什么 浏览:111
没有服务器怎么发现其他节点 浏览:337
文明传奇怎么开服务器 浏览:56
javalistint 浏览:675