终于有人把“嵌入式人工智能”讲明白了
嵌入式人工智能,就是在嵌入式的环境下做人工智能。算法模型还是原来原来那些算法模型,但是毕竟是在嵌入式环境下,时代变了,总要有一些东西作出改变。首先,我们来回答为什么要有嵌入式人工智能。01为什么需要嵌入式人工智能现在人工智能发展最大的问题是什么?通过图灵测试?上SOTA?我觉得是落地问题。这几年人工智能大新闻一个接一个,无论是学术界还是工业界,谁都觉得人工智能现在是风口。但是质疑的声音也渐渐走强,不断地有人在问这是不是一个泡沫,甚至已经有人开始预测泡沫什么时候破裂。为什么同样是人工智能,意见会如此两极化?开始我也很不理解,问了一些朋友,也看了一些资料,渐渐也就清楚了一点:说到底就是落地问题。人工智能相关的顶会每年好几次,每次都能出来一些值得津津乐道的东西,有时还有意外的突破让人发出“噢还能这样玩”的感叹。公道地说,从研究的角度看,人工智能这几年一直在进步,而且进步还不小,大家都在期待奇点早点来临。但是,从应用的角度再想一想,事情就没这么乐观了。不少人工智能产品确实让我们眼前一亮,但那已经是好几年前的事情了,不是说这几年啥事没干,主要都在优化,早几年Siri说个话都磕磕巴巴,现在吵个架基本不成问题。不过有什么以前没有的新功能呢?想半天想不出来。一边高歌猛进,一边安静如鸡,这就是问题。很多人都说,人工智能下一个落地的场景就是下一个风口。我当然猜不准下一个落地的场景究竟是什么,但我知道可选项之一就是嵌入式人工智能。以前一说嵌入式就是单片机,以至于很多同学以为这俩词就是一回事。以前嵌入式系统大体的流程是这样:输入传感器信号,用编写的程序进行处理,然后输出控制信号,为什么学嵌入式感觉都是在学单片机编程,道理就在这。但是,现在是智能时代了,嵌入式系统也进化成了“智能嵌入式系统”。有什么不同呢?这里引用《AI嵌入式系统》的一个观点:传统的嵌入式系统主要用于控制,而智能嵌入式系统则提升了感知、交互和决策这三方面的智能化水平,分别叫智能感知、智能交互和智能决策。书里清楚解释了这三个名词,这里我想借这个问题说一下为什么嵌入式人工智能会是下一个落地的场景之一。02智能的作用大家最想问的应该是多了“智能”会有什么不同,关键就在于编程。过去嵌入式系统要干点什么肯定都得编程。编程也不是上来就写代码,首先得分析数据,提炼需求,最后才是编程实现。这几个环节都要投入时间,特别是现在嵌入式部署的环境越来越复杂,问题也越来越多,而按照传统的方式,这些问题都必须在编程时一一加以考虑,把规则一条条写上,系统才能具备处理能力。手写规则费时费力,而且还容易“挂一漏万”。有没有更好的办法解决呢?有,就是加入人工智能。人工智能不需要人工写规则,而是可以通过数据“自学”。对于一些抽象的、不太好人工描述的规则,人工智能同样可以通过学习来具备相应的能力。这就是智能。嵌入式加上了人工智能,人工成本大大降低,想象空间大大延伸,这其中可能就孕育了下一个杀手级的人工智能应用。03嵌入式的特殊局限现在,我们又有了个新问题:为什么要从人工智能中单独切出一块,叫嵌入式人工智能?前面已经说过,嵌入式人工智能的模型算法都是原来那套,从理论层面并没有太多的不同,问题就出在嵌入式本身。嵌入式设备和通用计算机的计算环境大相径庭,平时给我们感受最深的就是存储容量小。《AI嵌入式系统》给出一组对比数据:常见的深度神经网络模型使用单精度浮点数存储参数对应的存储量在20MB至560MB之间,相比之下,传统低成本的嵌入式系统RAM存储容量最高也只有16MB。另一个同样捉襟见肘的是算力。这个就不说了,嵌入式设备在算力方面什么时候都只是弟弟。还有一个容易被大家忽视但同样存在局限性的是能耗。要知道深度学习模型都是电老虎,每次模型跑训练,显卡的风扇都是要发出即将起飞的声音,哪怕只是要模型跑起来,同样也是一件费电的事情。而嵌入式设备在很多情况下是有耗能限制的。总而言之,也许我们很容易找到一个嵌入式应用场景需要人工智能,也确实已经有现成的模型足以满足要求,本来马上就是一拍即合的事,但是,嵌入式本身的种种限制,想要简单硬套人工智能的现有成果,只能长使英雄泪满襟。04人工智能的应对方法方法不是没有,有两条路。一条是提升嵌入式设备的硬件条件,不过这也变相限制了应用场景,另一条就是人工智能自己做出优化,减少对空间、算力和能耗的需求。现在大家选择了第二条路,将问题带回到了人工智能这一边,于是有了嵌入式人工智能。这部分内容很多,这里我做一点简单介绍,方便大家了解嵌入式人工智能都研究哪些方面。人工智能要适应嵌入式环境,就要进行字面意义上的“削足适履”,在大幅减少资源需求的同时,尽量保证性能不至于明显下降,在嵌入式人工智能里面,叫做优化,譬如说矩阵乘法优化。过去我在介绍机器学习的知识体系时说过,矩阵运算是机器学习的骨骼。机器学习不是一种模型,而是一堆模型,而这些模型都大量使用了矩阵运算,主要是矩阵乘法。如果矩阵乘法的运算量能够降下来,模型整体的运算量也就能够降下来。道理好懂,可是天下真有这种空手套白狼的好事吗?科学家还真给研究出来了。这要从Strassen矩阵相乘算法说起,该算法于1969年提出,是第一款算法复杂度低于O(N3)的矩阵乘法。简单来说,就是这款算法能够降低矩阵乘法的运算量,譬如说2×2矩阵相乘,常规算法进行8次乘法运算,而采用本算法只需要进行7次,矩阵乘法的运算量减少12.5%,不过不是没成本的,加法运算从4次提升至18次。就这样看起感觉没什么,但一旦矩阵上了规模,譬如说128×128的矩阵运算,使用该算法能够降低约一半的矩阵乘法运算,优化效果就十分可观了。类似的算法还有Winograd算法,同样能够在大尺寸矩阵运算中将乘法运算降低50%。上面这类算法称为快速矩阵乘法,另一种方案则是采用了牺牲精度提升速度的思想,允许矩阵乘法结果存在一定误差,这类算法称为近似矩阵乘法,譬如基于数据统计相关性的近似矩阵乘法,以及基于数据协方差低秩分解近似的快速乘法。类似的从算子层面进行优化的还有对卷积运算的优化。卷积运算的作用不必多说了,现在用深度神经网络做图像处理就离不开卷积运算,优化的方向和矩阵乘法很类似,也是从快速卷积算法和近似卷积算法两个方面展开研究,譬如说一维循环卷积频域快速算法和基于卷积核低秩分解的二维快速卷积。05如何开发嵌入式人工智能既然要应用落地,那么除了理论研究,当然还要有开发工具。不过嵌入式的平台很多,开发环境各不相同,这里我就就着《AI嵌入式系统》对Arm平台上的机器学习工具做一点介绍。Arm本身就不说了,早个十年学嵌入式这可能还算是个新词,现在智能手机人手一台,里面装的就是Arm的处理器。不过,按照处理器划分,Arm平台大致可分为Cortex-A、Cortex-M和Cortex-R三大系列。我们手机里装的就是Cortex-A系列,据说算力超过NASA当年搞登月时使用的超级计算机,硬件条件相对宽裕,开发资源也很丰富,深度学习的两大框架Pytorch和Tensorflow都推出了针对Cortex-A的版本。Arm也推出了ACL(ArmComputeLibray)等库来支持Arm平台的高性能数据运算。Cortex-M和Cortex-R系列我们听得较少,因为这俩主要是面向工业应用,Cortex-M主打低成本低能耗应用场景,而Cortex-R则可以用于对实时性有更高要求的任务。相比Cortex-A,这俩个系列的算力就非常有限了。Arm专门推出了CMSIS软件架构来方便Cortex-M系列的应用开发。CMSIS与机器学习关系较密切的库有两个,一个是CMSIS-DSP库,里面提供了基本数学运算操作如矩阵运算、部分机器学习算法如SVM、以及FIR滤波、计算KL距离、DCT转换、PID控制和排序等功能函数。CMSIS-DSP使用的是C语言,但是可以导入使用Python的Scikit-Learn库训练得到的模型。另一个是CMSIS-NN库,看名字便可知道这是一个用于构建神经网络的库,同样也可以导入训练好的模型。电商行业智能搜索技术原理全解析
阿里云开放搜索-电商行业智能搜索解决方案:
https://www.aliyun.com/page-source//data-intelligence/activity/opensearch
一、搜索的业务逻辑“搜索Query→召回→排序→搜索结果”
当用户在搜索框输入一个Query时,系统通过对其语义的理解,召回相关文档或商品,在通过算法排序,按客户实际的搜索意图进行前后排序,最终解决其搜索需求,实现业务转化。
其中【召回】与【排序】对搜索引导的业务目标最为重要。
二、自然语言处理技术(NLP)在搜索上的应用1.概念介绍想实现搜索引擎效果的优化,就一定要对自然语言处理技术有一定的了解,因为用户输入一个Query,从学术角度解读,自然语言智能研究实现了人与计算机之间用语言进行有效通信,它是融合语言学、心理学、计算机科学、数学、统计学于一体的科学。
自然语言处理被学者誉为”人工智能皇冠上的明珠“,研究覆盖了感知智能、认知智能、创造智能这样的学科,是实现完整人工智能的必要技术。
2.阿里云达摩院NLP搜索分析路径三、电商搜索的特点1.关键词堆砌例如:杨幂同款夏季连衣裙包邮。
2.词序对语义影响不大例如:杨幂同款女夏季连衣裙包邮;女夏季连衣裙包邮杨幂同款。
3.类目预测问题例如:当用户查询“苹果”时,可能查询的是水果,也可能是手机品牌。
4.查询召回文档相关性差核心词识别不准确,分词不准确
5.搜索引导的业务转化比重较大据统计,综合类电商搜索引导转化占比40%以上,垂直类电商搜索引导转化占比60%以上。
6.稳定性要求较高,支持弹性扩容活动、大促系统QPS可能是平时的百倍千倍,需要平滑的扩缩容,保障系统的稳定。
四、电商搜索优化核心功能1.分词(划重点!)1.1分词效果的优化直接影响召回数量,减少无结果率,提高搜索召回质量
例如:
“火锅九块九包邮”
效果差的分词:“火、锅、九、块、九、包、邮”;“火锅、九、块、九、包邮”开放搜索的分词:“火锅、九块九、包邮”“925银耳饰“
效果差的分词:“925、银耳、银、耳饰”开放搜索的分词:“925、银、耳饰”1.2不同的分词方式直接影响着参与召回的关键词,从而影响召回的准确性
目前很多开源自建系统难以实现很好的分词效果,主要原因是训练语料的数据量有限,不足以形成可以不断打磨深耕的行业数据。尤其电商行业商品种类丰富,中文字、词表达的意义多样,多音字、同义词又众多的情况下,靠自身算法工程师和开发团队很难实现快速的解决优化,这是一个不断积累训练的漫长过程。
2.命名实体识别2.1电商搜索-实体识别含义
对电商Query和标题进行实体词打标识别,其中包含品牌、品类、品类修饰、型号、款式等类别;
2.2开放搜索实体识别优势
基于淘宝全量数据和知识库深入优化电商行业实体识别能力,解决品牌更新快歧义大,品类存在修饰关系,品牌品类搭配关系等问题;2.3开放搜索实体识别作用
2.3.1作用于query改写:
开放搜索查询分析可以改写两个query,第一个query更精准,第二个query减少了参与召回的term,旨在当更精确的召回结果数不足时,用第二个query进行扩大召回。query改写主要根据实体的重要性,召回时保留重要性高的实体词,对重要性低的部分不影响召回,只影响算法排序。
实现方式:
实体重要性目前分为高、中、低三档。其中“品牌、品类”是在高档,也就是最重要的;其次“风格、款式、颜色、季节、人群、地点…”处于中档;最后“尺寸、修饰词、影响服务、系列、单位…”处于低档,可以丢弃不参与召回。
2.3.2与类目预测一起使用
query中不同的实体对类目的影响是不一样的,因此,当原query没有类目预测的结果时,会根据一定的规则,去掉和类目意图无关或者相关度低的词后,进行类目预测,这对长尾query的类目预测会有很大的帮助.
示例:
“杨幂(人名)同款(后缀)春季(时间季节)修身(款式元素)连衣裙(品类)”丢词后的query按照优先级排序分别为:
春季修身连衣裙
春季连衣裙修身连衣裙连衣裙
系统会按照上述顺序依次查询类目预测的结果
3.类目预测3.1举例说明:
用户搜索“苹果”可能是想要水果的苹果,也可能是苹果手机;用户搜索“华为”,召回结果按销量排序,可能销量最高的“华为手表”、“华为配件”排在前面,实际的搜索意图”华为手机“却排在后面。3.2开放搜索类目预测能力
类目预测是开放搜索里基于物品/内容的类目信息改善搜索效果的算法功能。根据用户的查询词来预测用户想要查询哪个类目的结果,结合排序表达式,可以使得更符合搜索意图的结果排序更靠前。
基本原理:把历史上搜过的query收集起来,结合query查询之后的点击行为数据,与类目下的物品信息联系起来,使用这些数据来训练模型,由模型来刻画query与类目之间的数据规律。
不同用户搜索意图不同,有些行为意图搜索“配件”,有些意图是搜索“手机”,那根据用户的行为数据就可以通过类目进行判断,从而在排序效果上实现个性化展示;
4.排序算法4.1电商排序常见问题
查询结果排序不理想:导致点击率较低,跳出率较高,直接影响业务转化;数据缺乏时效性:难以平衡优质商品和新发布商品之间的权衡关系;商家刷排名:部分商家找到排序漏洞,通过关键词堆砌,获得靠前位置,用户体验不好;人力资源紧张:需要专业算法工程师2-3名,很难找到合适的人才。4.2开放搜索电商排序能力
在应用结构模板和索引结构模板基础上,提供电商常用基础排序、业务排序表达式,无需额外配置即可满足大部分电商行业排序效果需求,用户还可以通过cava脚本定制排序。
5.人工干预badcase5.1常见的badcase
“iPhone11”刚上市时,用户搜索“苹果/iphone”,最新款产品肯定要排在前面,在没有常规排序算法的时候,就需要类目预测人工干预;“喷泡”是一款篮球鞋的别称,并非主流叫法,全称是“AirJordanAirFoamposite系列”,这时就需要通过平时运营积累的专业词汇可视化同步到开放搜索做查询语义理解功能的补丁,通过灵活干预得以解决;跨境电商有时Query涉及“日文、韩文、泰文”等外语,当我们的分词词典不能很好的分词优化时,也可以通过分词干预功能解决;用户搜索Query“香奈儿气垫”,默认的实体识别,将“香奈儿”归类为“普通词”;“气垫”归类为“材质”,需要人工干预实体识别,把“香奈儿”干预为品牌。5.2开放搜索人工干预功能
内置干预词典,可在其基础上添加自定义干预词典;支持查询分析干预词典(停用词、拼写纠错、同义词、实体识别、词权重、类目预测);6.搜索引导功能6.1搜索引导功能业务价值
6.1.1热搜底纹
热门query是用户兴趣的风向标,通过分析热门query把握用户的兴趣走向,对制定运营策略提供决策依据;给用户推荐一些优质query,提升业务目标;用户推荐热门query,既提升用户体验,又给部分次热门query增加曝光机会;通过分析用户的行为,结合用户的兴趣来推荐query,想用户所想提高转化机会;6.1.2下拉提示
提高输入效率,帮助用户尽快找到想要的内容,同时减少用户的查询次数,减小服务端的压力;推荐更优质query;
6.2开放搜索搜索引导优势
内置热搜、底纹、下拉提示多样搜索引导算法模型,无需开发系统每天自动训练模型,对用户搜索意图起到重要的引导作用,大大降低后续查询意图理解、相关性、排序、运营干预等环节的调优难度,对提升整体业务目标可以起到非常好的铺垫作用。
五、开放搜索电商行业模板1.搜索架构
开放搜索(OpenSearch)首创电商行业搜索模板能力,帮助企业快速构建更高水准的搜索服务,带动业务指数级增长。
2.一键配置内置电商行业搜索能力,配置简单新手无门槛
3.电商行业模板优势行业最佳实践,减少试错成本将搭建电商行业搜索的最佳实践产品化落地,用户不必各方向探索,只需按模板接入即可拥有更优服务;
内置更高质量算法模型,节省训练成本用户从0开始优化搜索,免去大量的数据标注与模型训练工作,直接内置阿里集团淘系搜索算法能力,节省数十人/月的算法工作;
支持个性化搜索与服务能力通过引擎侧的多路召回能力,实现搜索结果、下拉提示、底纹词等重要服务千人千面,提升搜索转化;
架构开放,支持开发者自定义模型实时回流支持用户自行训练的NLP模型导入进入开放搜索,灵活满足业务开发者需求;
召回引擎性能充分领先阿里巴巴自研Ha3引擎,处理海量数据、高并发、海量用户请求,性能数倍优于开源方案;
高时效的行业迭代能力根据电商行变化,不断迭代更新原有能力,提供更高时效性的服务保障;
4.电商行业增强版技术核心指标优化4.1开源搜索与电商行业增强版效果对比
4.2通用版与电商行业增强版能力对比
4.3离线数据处理
单个集群实时数据同步Tps百万级;
获得专家指导:
https://survey.aliyun.com/apps/zhiliao/uzhnOt_g9
电商行业模板配置流程:
https://help.aliyun.com/document_detail/208651.html
如果您对搜索与推荐相关技术感兴趣,欢迎加入钉钉群内交流