生活算法
㈠ 数据挖掘算法与生活中的应用案例
数据挖掘算法与生活中的应用案例
如何分辨出垃圾邮件”、“如何判断一笔交易是否属于欺诈”、“如何判断红酒的品质和档次”、“扫描王是如何做到文字识别的”、“如何判断佚名的着作是否出自某位名家之手”、“如何判断一个细胞是否属于肿瘤细胞”等等,这些问题似乎都很专业,都不太好回答。但是,如果了解一点点数据挖掘的知识,你,或许会有柳暗花明的感觉。
本文,主要想简单介绍下数据挖掘中的算法,以及它包含的类型。然后,通过现实中触手可及的、活生生的案例,去诠释它的真实存在。 一般来说,数据挖掘的算法包含四种类型,即分类、预测、聚类、关联。前两种属于有监督学习,后两种属于无监督学习,属于描述性的模式识别和发现。
有监督学习有监督的学习,即存在目标变量,需要探索特征变量和目标变量之间的关系,在目标变量的监督下学习和优化算法。例如,信用评分模型就是典型的有监督学习,目标变量为“是否违约”。算法的目的在于研究特征变量(人口统计、资产属性等)和目标变量之间的关系。
分类算法分类算法和预测算法的最大区别在于,前者的目标变量是分类离散型(例如,是否逾期、是否肿瘤细胞、是否垃圾邮件等),后者的目标变量是连续型。一般而言,具体的分类算法包括,逻辑回归、决策树、KNN、贝叶斯判别、SVM、随机森林、神经网络等。
预测算法预测类算法,其目标变量一般是连续型变量。常见的算法,包括线性回归、回归树、神经网络、SVM等。
无监督学习无监督学习,即不存在目标变量,基于数据本身,去识别变量之间内在的模式和特征。例如关联分析,通过数据发现项目A和项目B之间的关联性。例如聚类分析,通过距离,将所有样本划分为几个稳定可区分的群体。这些都是在没有目标变量监督下的模式识别和分析。
聚类分析聚类的目的就是实现对样本的细分,使得同组内的样本特征较为相似,不同组的样本特征差异较大。常见的聚类算法包括kmeans、系谱聚类、密度聚类等。
关联分析关联分析的目的在于,找出项目(item)之间内在的联系。常常是指购物篮分析,即消费者常常会同时购买哪些产品(例如游泳裤、防晒霜),从而有助于商家的捆绑销售。
基于数据挖掘的案例和应用上文所提到的四种算法类型(分类、预测、聚类、关联),是比较传统和常见的。还有其他一些比较有趣的算法分类和应用场景,例如协同过滤、异常值分析、社会网络、文本分析等。下面,想针对不同的算法类型,具体的介绍下数据挖掘在日常生活中真实的存在。下面是能想到的、几个比较有趣的、和生活紧密关联的例子。
基于分类模型的案例这里面主要想介绍两个案例,一个是垃圾邮件的分类和判断,另外一个是在生物医药领域的应用,即肿瘤细胞的判断和分辨。
垃圾邮件的判别邮箱系统如何分辨一封Email是否属于垃圾邮件?这应该属于文本挖掘的范畴,通常会采用朴素贝叶斯的方法进行判别。它的主要原理是,根据邮件正文中的单词,是否经常出现在垃圾邮件中,进行判断。例如,如果一份邮件的正文中包含“报销”、“发票”、“促销”等词汇时,该邮件被判定为垃圾邮件的概率将会比较大。
一般来说,判断邮件是否属于垃圾邮件,应该包含以下几个步骤。
第一,把邮件正文拆解成单词组合,假设某篇邮件包含100个单词。
第二,根据贝叶斯条件概率,计算一封已经出现了这100个单词的邮件,属于垃圾邮件的概率和正常邮件的概率。如果结果表明,属于垃圾邮件的概率大于正常邮件的概率。那么该邮件就会被划为垃圾邮件。
医学上的肿瘤判断如何判断细胞是否属于肿瘤细胞呢?肿瘤细胞和普通细胞,有差别。但是,需要非常有经验的医生,通过病理切片才能判断。如果通过机器学习的方式,使得系统自动识别出肿瘤细胞。此时的效率,将会得到飞速的提升。并且,通过主观(医生)+客观(模型)的方式识别肿瘤细胞,结果交叉验证,结论可能更加靠谱。
如何操作?通过分类模型识别。简言之,包含两个步骤。首先,通过一系列指标刻画细胞特征,例如细胞的半径、质地、周长、面积、光滑度、对称性、凹凸性等等,构成细胞特征的数据。其次,在细胞特征宽表的基础上,通过搭建分类模型进行肿瘤细胞的判断。
基于预测模型的案例这里面主要想介绍两个案例。即通过化学特性判断和预测红酒的品质。另外一个是,通过搜索引擎来预测和判断股价的波动和趋势。
红酒品质的判断如何评鉴红酒?有经验的人会说,红酒最重要的是口感。而口感的好坏,受很多因素的影响,例如年份、产地、气候、酿造的工艺等等。但是,统计学家并没有时间去品尝各种各样的红酒,他们觉得通过一些化学属性特征就能够很好地判断红酒的品质了。并且,现在很多酿酒企业其实也都这么干了,通过监测红酒中化学成分的含量,从而控制红酒的品质和口感。
那么,如何判断鉴红酒的品质呢?
第一步,收集很多红酒样本,整理检测他们的化学特性,例如酸性、含糖量、氯化物含量、硫含量、酒精度、PH值、密度等等。
第二步,通过分类回归树模型进行预测和判断红酒的品质和等级。
搜索引擎的搜索量和股价波动一只南美洲热带雨林中的蝴蝶,偶尔扇动了几下翅膀,可以在两周以后,引起美国德克萨斯州的一场龙卷风。你在互联网上的搜索是否会影响公司股价的波动?
很早之前,就已经有文献证明,互联网关键词的搜索量(例如流感)会比疾控中心提前1到2周预测出某地区流感的爆发。
同样,现在也有些学者发现了这样一种现象,即公司在互联网中搜索量的变化,会显着影响公司股价的波动和趋势,即所谓的投资者注意力理论。该理论认为,公司在搜索引擎中的搜索量,代表了该股票被投资者关注的程度。因此,当一只股票的搜索频数增加时,说明投资者对该股票的关注度提升,从而使得该股票更容易被个人投资者购买,进一步地导致股票价格上升,带来正向的股票收益。这是已经得到无数论文验证了的。
基于关联分析的案例:沃尔玛的啤酒尿布啤酒尿布是一个非常非常古老陈旧的故事。故事是这样的,沃尔玛发现一个非常有趣的现象,即把尿布与啤酒这两种风马牛不相及的商品摆在一起,能够大幅增加两者的销量。原因在于,美国的妇女通常在家照顾孩子,所以,她们常常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。沃尔玛从数据中发现了这种关联性,因此,将这两种商品并置,从而大大提高了关联销售。
啤酒尿布主要讲的是产品之间的关联性,如果大量的数据表明,消费者购买A商品的同时,也会顺带着购买B产品。那么A和B之间存在关联性。在超市中,常常会看到两个商品的捆绑销售,很有可能就是关联分析的结果。
基于聚类分析的案例:零售客户细分对客户的细分,还是比较常见的。细分的功能,在于能够有效的划分出客户群体,使得群体内部成员具有相似性,但是群体之间存在差异性。其目的在于识别不同的客户群体,然后针对不同的客户群体,精准地进行产品设计和推送,从而节约营销成本,提高营销效率。
例如,针对商业银行中的零售客户进行细分,基于零售客户的特征变量(人口特征、资产特征、负债特征、结算特征),计算客户之间的距离。然后,按照距离的远近,把相似的客户聚集为一类,从而有效的细分客户。将全体客户划分为诸如,理财偏好者、基金偏好者、活期偏好者、国债偏好者、风险均衡者、渠道偏好者等。
基于异常值分析的案例:支付中的交易欺诈侦测采用支付宝支付时,或者刷信用卡支付时,系统会实时判断这笔刷卡行为是否属于盗刷。通过判断刷卡的时间、地点、商户名称、金额、频率等要素进行判断。这里面基本的原理就是寻找异常值。如果您的刷卡被判定为异常,这笔交易可能会被终止。
异常值的判断,应该是基于一个欺诈规则库的。可能包含两类规则,即事件类规则和模型类规则。第一,事件类规则,例如刷卡的时间是否异常(凌晨刷卡)、刷卡的地点是否异常(非经常所在地刷卡)、刷卡的商户是否异常(被列入黑名单的套现商户)、刷卡金额是否异常(是否偏离正常均值的三倍标准差)、刷卡频次是否异常(高频密集刷卡)。第二,模型类规则,则是通过算法判定交易是否属于欺诈。一般通过支付数据、卖家数据、结算数据,构建模型进行分类问题的判断。
基于协同过滤的案例:电商猜你喜欢和推荐引擎电商中的猜你喜欢,应该是大家最为熟悉的。在京东商城或者亚马逊购物,总会有“猜你喜欢”、“根据您的浏览历史记录精心为您推荐”、“购买此商品的顾客同时也购买了商品”、“浏览了该商品的顾客最终购买了商品”,这些都是推荐引擎运算的结果。
这里面,确实很喜欢亚马逊的推荐,通过“购买该商品的人同时购买了**商品”,常常会发现一些质量比较高、较为受认可的书。一般来说,电商的“猜你喜欢”(即推荐引擎)都是在协同过滤算法(Collaborative Filter)的基础上,搭建一套符合自身特点的规则库。即该算法会同时考虑其他顾客的选择和行为,在此基础上搭建产品相似性矩阵和用户相似性矩阵。基于此,找出最相似的顾客或最关联的产品,从而完成产品的推荐。
基于社会网络分析的案例:电信中的种子客户种子客户和社会网络,最早出现在电信领域的研究。即,通过人们的通话记录,就可以勾勒出人们的关系网络。电信领域的网络,一般会分析客户的影响力和客户流失、产品扩散的关系。
基于通话记录,可以构建客户影响力指标体系。采用的指标,大概包括如下,一度人脉、二度人脉、三度人脉、平均通话频次、平均通话量等。基于社会影响力,分析的结果表明,高影响力客户的流失会导致关联客户的流失。其次,在产品的扩散上,选择高影响力客户作为传播的起点,很容易推动新套餐的扩散和渗透。
此外,社会网络在银行(担保网络)、保险(团伙欺诈)、互联网(社交互动)中也都有很多的应用和案例。
基于文本分析的案例这里面主要想介绍两个案例。一个是类似“扫描王”的APP,直接把纸质文档扫描成电子文档。相信很多人都用过,这里准备简单介绍下原理。另外一个是,江湖上总是传言红楼梦的前八十回和后四十回,好像并非都是出自曹雪芹之手,这里面准备从统计的角度聊聊。
字符识别:扫描王APP手机拍照时会自动识别人脸,还有一些APP,例如扫描王,可以扫描书本,然后把扫描的内容自动转化为word。这些属于图像识别和字符识别(Optical Character Recognition)。图像识别比较复杂,字符识别理解起来比较容易些。
查找了一些资料,字符识别的大概原理如下,以字符S为例。
第一,把字符图像缩小到标准像素尺寸,例如12*16。注意,图像是由像素构成,字符图像主要包括黑、白两种像素。
第二,提取字符的特征向量。如何提取字符的特征,采用二维直方图投影。就是把字符(12*16的像素图)往水平方向和垂直方向上投影。水平方向有12个维度,垂直方向有16个维度。这样分别计算水平方向上各个像素行中黑色像素的累计数量、垂直方向各个像素列上的黑色像素的累计数量。从而得到水平方向12个维度的特征向量取值,垂直方向上16个维度的特征向量取值。这样就构成了包含28个维度的字符特征向量。
第三,基于前面的字符特征向量,通过神经网络学习,从而识别字符和有效分类。
文学着作与统计:红楼梦归属这是非常着名的一个争论,悬而未决。对于红楼梦的作者,通常认为前80回合是曹雪芹所着,后四十回合为高鹗所写。其实主要问题,就是想确定,前80回合和后40回合是否在遣词造句方面存在显着差异。
这事让一群统计学家比较兴奋了。有些学者通过统计名词、动词、形容词、副词、虚词出现的频次,以及不同词性之间的相关系做判断。有些学者通过虚词(例如之、其、或、亦、了、的、不、把、别、好),判断前后文风的差异。有些学者通过场景(花卉、树木、饮食、医药与诗词)频次的差异,来做统计判断。总而言之,主要通过一些指标量化,然后比较指标之间是否存在显着差异,借此进行写作风格的判断。
以上是小编为大家分享的关于数据挖掘算法与生活中的应用案例的相关内容,更多信息可以关注环球青藤分享更多干货
㈡ 问:什么是算法试从日常生活中找3个例子,描述它们的算法。(c语言)
所谓的算法,用实物来说就是做事的步骤。开车,首先要打开车门,驾驶员坐好,插上车钥匙,发动汽车。开门,要先拿出钥匙,插入钥匙孔,开门。等等举不胜举
㈢ 生活中的人工智能之搜索和推荐算法
姓名:陈心语 学号:21009102266 书院:海棠1号书院
转自: 人工智能在搜索中的应用_u014033218的专栏-CSDN博客
人工智能在搜索的应用和实践_qq_40954115的博客-CSDN博客
【嵌牛导读】日常生活中的搜索和推荐算法也与人工智能有所关联,让我们一起来看看吧!
【嵌牛鼻子】人工智能运用于搜索和推荐算法。
【嵌牛提问】人工智能在搜索和推荐算法中有什么运用呢?
【嵌牛正文】
智能交互
智能交互有三个方面的这部分组成,第一个就是Query推荐,这是比较古老的课题;第二个做智能导购,这是现在正在做的一个原形,后面我会讲为什么做智能导购;第三个内容的展示和个性化的创意。就是说你把商品怎么展示给用户,也是我们认为是交互的一部分。
第一个是Query推荐,这个问题怎么来抽象呢?Query推荐是一个用户当前Query下面我们怎么推荐其它Query,这是我们相关搜索一样的。我们推荐这样的一个Query以后,如果用户一旦点了其中的一个Query,用户的状态就会发生变化,从当前的Query跳到另外一个Query,这是用户状态的变化。第二个就是说我们怎么评价我们推荐的Query的好坏,它由几部分组成,一个Query有没有被点,第二个就是说推荐Query里面,它的SRP页会不会点,因为Query推荐本质上不是Query推荐做的最好就是最好的,它是说最终要在搜索SRP用户有没有买,有没有点击,这才是做的好的,这是第二个收益。还有一个更加间接的,通过Query推,这个状态转到下一个状态以后,这个里面还会推其它Query,还会有其它点击,这个时候也是个间接推荐。如果我不推Query就不能到这个状态,不到状态不会有这个Query,不会有这个收益。我们了解,这就是典型的一个马尔科夫决策过程,我们是用强化学习来做的,Actions就是我们的Query list,根据用户和当前Query推荐其他Query,状态就是User + Query,收益就是包括推荐Query击,还有一个间接收益,间接收益通过bellman 公式可以算出来,这就是一个DQN的强化学习项目。
智能导购
现在的搜索呈现的问题就是说,如果去看搜索的Query都是一些品类词、品牌词、型号词或者属性词。假定用户他知道买什么再来搜索搜,但是有各很大的东西用户不知道买什么吗?智能导购就是做做一个类似智能导购机器人的产品,引导用户怎么搜,用户也可以主动问,获取知识或购物经验。这是后台的算法的一个原形,不久后会上线。
智能内容
因为淘宝的商品,卖家为了适应我们的引擎,做了大量的SEO,里面都是罗列热门的关健词,导致问题淘宝的标题没什么差异,都写的差不多,看标题也不知道什么东西,或者知道但里面没有很多特色的内容。我们做智能内容很重要的出发点是怎么从商品的评价、详情页、属性里面挖出一些比较有卖点,或者商品比较有特色的东西展示给用户,让用户更好的了解商品,这是第一个。第二个淘宝上面还有类似商品聚合的,比如清单,生成一个清单,怎么给清单生成一个比较好的导入的描述,让用户描述这个清单干什么。这里面主要做了这两个事情。具体怎么做的?一个会生成一些Topic,比如行业运营加上我们挖的一些点,比如像手机一般大家关注点会是手机的性价比,拍照是不是清晰,还有速度是不是快,是不是发热什么的,这是用户关注的兴趣点。然后它会根据这个商品会选择一个兴趣点,通过Seq2seq生成短文本。
语义搜索
我们的商品属性基本上是比较标准化的,因为这里淘宝有一个这样的商品库,非标准化的内容是没法上传的。导致的问题是我们的商品内容相对来说是比较规范化的,但是用户的输入的Query不是这样的,比如我这里举一些例子,比如一个新品有各种表达,2017新品,2017冬季新品,是吧?新品,有很多的表达。所以就是从从用户的需求跟商品的内容,就存在了一个语义的Gap。还有我们经常举例,比如三口之家用的电饭锅,很多这种语义的问题,这个语义从语义角度解决语义Match的事情。
大概会有这么几个方面。比如一个就是意图的理解,还有意图的Mapping,比如大容量冰箱,首先知道大的是跟冰箱的容量相关的,冰箱是个类目,最后要Mapping到人的冰箱,把‘大’改写成一个容量大于多少升,类目是冰箱这样才能够比较好的解决我们这个搜索的这个召回的问题。 第二个语义理解,这里面包括Query和商品都要做语义理解,比如通过image tagging计算从图片里面抽取很多文本的语义标签补充到商品文本索引中。 第三个就是现在有这个端到端的深度学习技术来直接学Query和商品的Similarity,通过端到端的深度学习技术来做语义的召回和语义的相关性。
智能匹配
主要就是讲个性化,做个性化的首要就是个性化数据。个性化本质上就是说以用户为中心构建用户的标签,用户的行为,还有用户的偏好,再通过这些数据找到,去Match到商品,比如说你看过相似商品,典型的协同过滤,还有你偏好的品牌的其它商品。那就是基于这些经历了一个以用户为中心的电商图谱,这里面还加了一些辅助的数据,比如商品的相似度,店铺之间的相似度,这样构建了我们这样的叫电商图谱。
个性化召回与向量化召回
召回是这样的,首先从咱们的电商图谱里取出用户的信息,包括比如说年龄性别,还有当地温度是多少,还有行为足迹等等之类的,社交现在没用了,因为这是几年前社交特别火,什么都要掺和一下,其实社交,信息的社交到电商其实风马牛不相及的领域,没有任何价值。所以现在好友这东西几乎没有用。因为不同Query中,用户信息重要性是不一样的,我们根据上下文会做用户信息的筛选或者排序,会找出比较重要的信息做个性化召回。以上是淘宝商品索引结构,传统的搜索关键字是通过搜索关键字召回,而个性化商品索引,除了Query还会有商品簇,簇与簇之间的关系,品牌店铺等等之类的,会加很多个性化的特征做召回,通过这种带的好处是召回的结果跟用户是直接相关的,就召回这一步带来个性化。
但是这种基于行为召回还是存在一个问题的。最重要的问题它的泛化能力会比较差。最典型的比如说你通过协同过滤来做,如果两个商品,没有用户同时看过的话,这两个商品你认为他们相似度是零,这个结论是错的,但是如果通过协同过滤就有这个问题。我们今年实现了向量化召回,包括两步:一个是Similarity learning,通过这个深度学习做端到端的Similarity learning,就会把这个我们的User 和Item会变成一个向量;第二步就是做向量化召回,比如层次聚类,随机游走,learning to hash等,这样的话就是说会极大的提升召回的深度。
个性化工作
在个性化领域其实最重要的一个核心的问题就是怎么去理解用户,怎么感知用户和预测用户行为及偏好。
首先是数据,用户在淘宝有两个中类型重要的基本信息:一个是用户标签,比如年龄、性别、职业等;第二是用户足迹,比如 点过,买过的商品,店铺等;
其次是用户感知要和搜索上下文相关,即这个用户的表征和要用户搜索意图相关;
第三是搜索有很多差异化的任务,比如用户消费能力的预估, User到Item的CTR预估和用户购物状态预估等,是为每个任务做个端到端的深度学习模型还是用统一的用户表征来完成不同的Task?如果每一个任务都做端到端深度学习会有很多问题,比如离线和在线的性能开销会大很多,或部分任务样本太少。
如图是用户感知深度模型,输入X是用户的点击行为序列,下一步是embedding,embedding完以后,通过LSTM把用户行为序列做embedding,因为在搜索用户感知和Query相关,所以加入query 的 attention层,选择和当前query有关系的行为,表征完是Multi-task learning 网络。整个这个网络的参数大概有一百亿个参数,我在双11我们还实现了在线学习。
算法包括智能交互、语义搜索、智能匹配和搜索策略四个方向。
智能交互
商品搜索就是带交互的商品推荐,用户通过关键字输入搜索意图,引擎返回和搜索意图匹配的个性化推荐结果,好的交互技术能够帮助到用户更好的使用搜索引擎,目前搜索的交互主要是主动关键字输入和关键字推荐,比如搜索框中的默认查询词和搜索结果中的文字链等,推荐引擎根据用户搜索历史、上下文、行为和状态推荐关键字。和商品推荐的区别是,关键字推荐是搜索链路的中间环节,关键字推荐的收益除了关键字的点击行为外,还需要考虑对整个购物链路的影响,包括在推荐关键字的后续行为中是否有商品点击、加购和成交或跳转到另外一个关键字的后继行为,这是一个典型的强化学习问题,action 是推荐的关键字候选集合,状态是用户当前搜索关键词、上下文等,收益是搜索引导的成交。除了被动的关键字推荐,我们也在思考搜索中更加主动的交互方式,能够做到像导购员一样的双向互动,主动询问用户需求,挑选个性化的商品和给出个性化的推荐理由,目前我们已经在做智能导购和智能内容方向的技术原型及论证,智能导购在技术上主要是借鉴对话系统,通过引导用户和引擎对话与关键字推荐方式互为补充,包括自然语言理解,对话策略,对话生成,知识推理、知识问答和商品搜索等模块,功能主要包括:a. 根据用户搜索上下文生成引导用户主动交互的文本,比如搜索“奶粉”时,会生成“您宝宝多大?0~6个月,6个月到1岁….”引导文案,提示用户细化搜索意图,如果用户输入“3个月”后,会召回相应段位的奶粉,并在后续的搜索中会记住对话状态“3个月”宝宝和提示用户“以下是适合3个月宝宝的奶粉”,b. 知识导购,包含提高售前知识问答或知识提示,比如“3个月宝宝吃什么奶粉” 回答“1段”,目前对话技术还不太成熟,尤其是在多轮对话状态跟踪、知识问答和自动评价几个方面,但随着深度学习、强化学习和生成对抗学习等技术在NLP、对话策略、阅读理解等领域的应用,越来越多的训练数据和应用场景,domain specific 的对话技术未来几年应该会突飞猛进;智能内容生成,包括生成或辅助人工生成商品和清单的“卖点”,短标题和文本摘要等,让淘宝商品表达更加个性化和多元化。
语义搜索
语义搜索主要是解决关键字和商品内容之间的语义鸿沟,比如搜索“2~3周岁宝宝外套”,如果按照关键字匹配召回结果会远小于实际语义匹配的商品。语义搜索的范围主要包括:a. query tagging和改写,比如新品,年龄,尺码,店铺名,属性,类目等搜索意图识别和归一化,query tagging模型是用的经典的序列标注模型 bi-lstm + CRF,而标签分类(归一化) 作为模型另外一个任务,将序列标注和分类融合在一起学习;b. query 改写,主要是计算query之间相似度,把一个query改写成多个语义相似的query,通常做法是先用不同改写策略生成改写候选query集合,比如词替换、向量化后top k、点击商品相似度等,然后在用ltr对后续集合排序找出合适的改写集合,模型设计和训练相对简单,比较难的是如何构建高质量的训练样本集合,线上我们用bandit 的方法探测部分query 改写结果的优劣,离线则用规则和生成对抗网络生成一批质量较高的样本; c. 商品内容理解和语义标签,通过商品图片,详情页,评价和同义词,上下位词等给商品打标签或扩充商品索引内容,比如用 image tagging技术生成图片的文本标签丰富商品内容,或者更进一步用直接用图片向量和文本向量融合,实现富媒体的检索和查询;d. 语义匹配,经典的DSSM 模型技术把query 和商品变成向量,用向量内积表达语义相似度,在问答或阅读理解中大量用到多层LSTM + attention 做语义匹配,同样高质量样本,特别是高质量负样本很大程度上决定了模型的质量,我们没有采样效率很低的随机负采样,而是基于电商知识图谱,通过生成字面相似但不相关的query及相关文档的方法生成负样本。从上面可以看到query tagging、query相似度、语义匹配和语义相关性是多个目标不同但关联程度非常高的任务,下一步我们计划用统一的语义计算框架支持不同的语义计算任务,具体包括1. 开发基于商品内容的商品表征学习框架,为商品内容理解,内容生成,商品召回和相关性提供统一的商品表征学习框架,重点包括商品标题,属性,详情页和评价等文本信息抽取,图像特征抽取和多模信号融合;2. query 表征学习框架,为query 类目预测,query改写,query 推荐等提供统一的表征学习框架,重点通过多个query 相似任务训练统一的query表征学习模型;3. 语义召回,语义相关性等业务应用模型框架。语义搜索除了增加搜索结果相关性,提升用户体验外,也可以一定程度上遏制淘宝商品标题堆砌热门关键词的问题。
智能匹配
这里主要是指个性化和排序。内容包括:a. ibrain (深度用户感知网络),搜索或推荐中个性化的重点是用户的理解与表达,基于淘宝的用户画像静态特征和用户行为动态特征,我们基于multi-modals learning、multi-task representation learning以及LSTM的相关技术,从海量用户行为日志中直接学习用户的通用表达,该学习方法善于“总结经验”、“触类旁通”,使得到的用户表达更基础且更全面,能够直接用于用户行为识别、偏好预估、个性化召回、个性化排序等任务,在搜索、推荐和广告等个性化业务中有广泛的应用场景,感知网络超过10B个参数,已经学习了几千亿次的用户行为,并且会保持不间断的增量学习越来越聪明; b. 多模学习,淘宝商品有文本、图像、标签、id 、品牌、类目、店铺及统计特征,这些特征彼此有一定程度的冗余和互补,我们利用多模学习通过多模联合学习方法把多维度特征融合在一起形成统一的商品标准,并多模联合学习中引入self-attention实现特征维度在不同场景下的差异,比如女装下图片特征比较重要,3C下文本比较重要等;c. deepfm,相对wide & deep 模型,deepfm 增加了特征组合能力,基于先验知识的组合特征能够应用到深度学习模型中,提升模型预测精度;d. 在线深度排序模型,由于行为类型和商品重要性差异,每个样本学习权重不同,通过样本池对大权重样本重复分批学习,有效的提升了模型学习稳定性,同时通过融合用户状态深度ltr模型实现了千人千面的排序模型学习;e. 全局排序,ltr 只对单个文档打分然后按照ltr分数和打散规则排序,容易导致搜索结果同质化,影响总页效率,全局排序通过已知排序结果做为上下文预测下一个位置的商品点击概率,有效提升了总页排序效率;f. 另外工程还实现了基于用户和商品向量的向量召回引擎,相对倒排索引,向量化召回泛化能力更强,对语义搜索和提高个性化匹配深度是非常有价值的。以上实现了搜索从召回、排序特征、排序模型、个性化和重排的深度学习升级,在双11无线商品搜索中带来超过10% (AB-Test)的搜索指标提升。
智能决策
搜索中个性化产品都是成交最大化,导致的问题是搜索结果趋同,浪费曝光,今年做的一个重要工作是利用多智能体协同学习技术,实现了搜索多个异构场景间的环境感知、场景通信、单独决策和联合学习,实现联合收益最大化,而不是此消彼长,在今年双11中联合优化版本带来的店铺内和无线搜索综合指标提升12% (AB-Test),比非联合优化版本高3% (AB-Test)。
性能优化
在深度学习刚起步的时候,我们意识到深度模型inference 性能会是一个瓶颈,所以在这方面做了大量的调研和实验,包括模型压缩(剪枝),低秩分解,量化和二值网络,由于缺少相应的指令集和硬件支持,最终只在个别场景下上线,期待支持低精度矩阵计算和稀疏矩阵计算的硬件早日出现。
未来计划
通用用户表征学习。前面介绍的DUPN 是一个非常不错的用户表征学习模型,但基于query 的attention 只适合搜索,同时缺少基于日志来源的attention,难以推广到其他业务,在思考做一个能够适合多个业务场景的用户表征模型,非搜索业务做些简单fine tuning 就能取得比较好的效果;同时用户购物偏好受季节和周期等影响,时间跨度非常大,最近K个行为序列假设太简单,我们在思考能够做life-long learning 的模型,能够学习用户过去几年的行为序列;搜索链路联合优化。从用户进入搜索到离开搜索链路中的整体优化,比如 搜索前的query 引导(底纹),搜索中的商品和内容排序,搜索后的 query推荐(锦囊)等场景;跨场景联合优化。今年搜索内部主搜索和店铺内搜索联合优化取得了很好的结果,未来希望能够拓展在更多大流量场景,提高手淘的整体购物体验;多目标联合优化。搜索除了成交外,还需要承担卖家多样性,流量公平性,流量商业化等居多平台和卖家的诉求,搜索产品中除了商品搜索外还有“穹顶”,“主题搜索”,“锦囊”,“内容搜索”等非商品搜索内容,不同搜索目标和不同内容(物种)之间的联合优化未来很值得深挖。
㈣ 计算机算法在实际生活中的应用
在这一周的《吴军的谷歌方法论》中,老师讲了地址(addressing)的重要性,并在此基础上介绍了地址的查找,数据的访问。对于地址的查找,在数据量较小时,可以采用顺序查找法和字典查找法;当数据量达到一定程度后,则需要为数据建立索引。而对于已经建立的索引进行查找,老师又详细介绍了具体方法的演进过程,引出随机性在索引查找中的应用。
通过上一周的学习,有如下几点收获:
1.理清问题,确定算法,选择语言
在这周的文章中读到,以前的人把计算当作目的,图灵是把计算当作手段,实现一些功能才是他的目的,回想起自己做研究生课题时遇到的一个问题。当时自己做的是机油滤芯过滤阻力和过滤精度的模拟计算,开始阶段采用二维模型来模拟圆筒状的滤芯。实际生产的滤芯是用木屑做的,填充率为31.8%,自己模拟计算也希望达到这个数值,但是初步的计算达不到这个数值,就向博士毕业的堂姐请教了这个问题:
堂姐的回复如下:
当时并没有非常理解她说的话,现在回过头来看,能更加明白她的意思了。对于一个具体的问题,可以采用的算法其实是非常多的,对于每一种算法又可以选择很多种实现的语言。但是我们解决问题的时候,一定要从问题这个根本出发,对于问题本身有足够深入的思考。在此基础上,明白解决这个问题采用怎样的算法最简洁高效,这是关键。至于选择那种语言或者工具,会对算法的实现效率产生一定影响,但不是最核心的。
2.从多个维度建立索引
对于算法的介绍中,老师强调了索引的重要性。关于建立索引,想到的两个应用的例子,一个是微信好友的标签,一个是印象笔记的标签。
对于我们在工作场合或者意外状况下认识的朋友,也许后期的联系会很少,那么建立细致的备注信息就很有必要。通过对聊天记录的梳理,在标签中注明行业,公司,家乡,甚至爱好,并且备注一些印象深的细节。这样不仅可以通过标签很快找到对应的人,而且在以后再次约见的时候,能通过这些标签信息,谈一些对方熟悉的话题,迅速拉近彼此的距离,对于我们的社交会有很大的帮助。
另外一个就是在印象笔记中建立新笔记时,可以建立尽量详细的标签。这在当时可能费事一点,但是后面随着笔记数量的增多,在海量笔记中通过标签来进行筛选,将是一件非常提升效率的事情。说到印象笔记,就像多说两句,因为真的很好用。建立标签就点击F3就可以开始建立新标签。
3.问题规模的增大会导致性质的变化
读到这句话时,想到之前脱不花和罗振宇两位老师在周二例会时讲得到的发展。当时得到总共的人数是157个人,刚刚超过邓巴数(人类智力允许人类拥有稳定社交网络的人数,为148)。
在邓巴数以内,公司里面的人可以彼此认识并且维持稳定的关系,不需要太明确的部门和上下级关系。但是两位老师讲到,随着公司里的人数超过邓巴数,那么部门化和层级化是不可避免的趋势,因为这样可以提高效率。但部门和层级的建立,会导致利益变形,之前大家是向市场要收益,更关注如何把自己的工作做好;之后是向上级要收益,更容易出现溜须拍马的现象。
不过正如老师所说,本着遇到问题解决问题的态度,即便问题转化了,只要大家发挥主动性,认真去面对问题,总会有解决方法。而且Google,苹果这样的公司树立了很好的榜样,现在已经非常大了,依然保持很好的运作和增长。
而作为个人,我们应该更多关注自己如何在企业不断扩大的过程中,保持自己本身的不断成长,为公司解决新的更复杂的问题,让自己一直拥有竞争力。这也是《领导梯队》中想要告诉我们的,在领导梯队的上升过程中,面对的不是更多同类的问题,而是全新的问题。我们要让自己学会转化思维模式,这样在旧问题已经转变成新问题时,可以更好去应对。
㈤ 性生活九九归一算法,你的年龄适合几天一次性生活,你
性生活的算法是这样的,以你的年龄十位数,乘以性生活的周期9天,例如20的年龄,则是10天内8次性生活,30以后性生活。20天内7次,一个月内不超过10次为佳,
㈥ 结合生活中的实例,描述求解随机数的算法流程图
生活中的实例:一个老太太买白菜,她给挑出的10棵白菜排一下序,然后她拿出了随身携带的笔记本电脑,输入 。
#include "stdio.h"
#define N 10
main()
{
int a[N];
int i,j,p,temp;
for(i=0;iscanf("%d",&a[i]);
for(i=0;i{
p=i; for(j=i+1;jif(a[j]temp=a[i];a[i]=a[p];a[p]=temp;
}
printf(" ");
for(i=0;iprintf("%d ",a[i]);
}
然后得到了白菜的重量排序。
传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。因此,使用者可以毫不受限制地使流程随意地转来转去,使流程图变得毫无规律,阅读者要花很大精力去追踪流程,使人难以理解算法的逻辑。
如果我们写出的算法能限制流程的无规律任意转向,而像一本书那样,由各章各节顺序组成,那样,阅读起来就很方便,不会有任何困难,只需从头到尾顺序地看下去即可。
为了提高算法的质量,使算法的设计和阅读方便,必须限制箭头的滥用,即不允许无规律地使流程乱转向,只能按顺序地进行下去。但是,算法上难免会包含一些分支和循环,而不可能全部由一个一个框顺序组成。
如上例不是由各框顺序进行的,包含一些流程的向前或向后的非顺序转移。为了解决这个问题,人们设想,如果规定出几种基本结构,然后由这些基本结构按一定规律组成一个算法结构,整个算法的结构是由上而下地将各个基本结构顺序排列起来的。
1966年,Bohra和Jacoplni提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元。
㈦ 什么是算法试从日常生活中找3个例子,描述它们的算法
算法就是解决问题的方法比如你要喝茶就要先找到茶叶,烧一壶开水,然后将茶叶放到杯子里,然后将开水倒入杯中,然后等一段时间再比如你要从a地到b地,中间可能有多种汽车换乘方案,是选速度最快的,还是选最省钱的,还是平衡的,制定换乘方案就是算法。
㈧ 学习C语言 从日常生活中找出三个例子,描述它们的算法。
例子:上海去到北京
算法:做汽车、做飞机、或者徒步
例子:大象装冰箱
哈哈
㈨ c语言问题: 什么是算法试从日常生活中找3个例子,描述它们的算法。 详细点,谢谢!
c语言中的算法是指:一系列解决问题的清晰指令,用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。通俗说就是解决问题的方法和步骤。
描述算法的例子:
问题:从上海去到北京。
其中的算法:做汽车、做飞机、或者徒步。
问题:喝茶。
其中的算法:先找到茶叶,再烧一壶开水,然后将茶叶放到杯子里,将开水倒入杯中,等茶叶泡好。
问题:开车。
其中的算法:首先要打开车门,驾驶员坐好,插上车钥匙,发动汽车。
㈩ 算法在实际生活中的应用
求解问题类的、机械的、统一的方法,它由有限多个步骤组成,对于问题类中的每个给定的具体问题,机械地执行这些步骤就可以得到问题的解答。算法的这种特性,使得计算不仅可以由人,而且可以由计算机来完成。用计算机解决问题的过程可以分成三个阶段:分析问题、设计算法和实现算法。
中国古代的筹算口决与珠算口决及其执行规则就是算法的雏形,这里,所解决的问题类是算术运算。古希腊数学家欧几里得在公元前3世纪就提出了一个算法,来寻求两个正整数的最大公约数,这就是有名的欧几里得算法,亦称辗转相除法。中国早已有“算术“、“算法”等词汇,但是它们的含义是指当时的全部数学知识和计算技能,与现代算法的含义不尽相同。英文algorithm(算法)一词也经历了一个演变过程,最初的拼法为algorism或algoritmi,原意为用阿拉伯数字进行计算的过程。这个词源于公元 9世纪波斯数字家阿尔·花拉子米的名字的最后一部分。
在古代,计算通常是指数值计算。现代计算已经远远地突破了数值计算的范围,包括大量的非数值计算,例如检索、表格处理、判断、决策、形式逻辑演绎等。
在20世纪以前,人们普遍地认为,所有的问题类都是有算法的。20世纪初,数字家们发现有的问题类是不存在算法的,遂开始进行能行性研究。在这一研究中,现代算法的概念逐步明确起来。30年代,数字家们提出了递归函数、图灵机等计算模型,并提出了丘奇-图灵论题(见可计算性理论),这才有可能把算法概念形式化。按照丘奇-图灵论题,任意一个算法都可以用一个图灵机来实现,反之,任意一个图灵机都表示一个算法。
按照上述理解,算法是由有限多个步骤组成的,它有下述两个基本特征:每个步骤都明确地规定要执行何种操作;每个步骤都可以被人或机器在有限的时间内完成。人们对于算法还有另一种不同的理解,它要求算法除了上述两个基本特征外,还要具有第三个基本特征:虽然有些步骤可能被反复执行多次,但是在执行有限多次之后,就一定能够得到问题的解答。也就是说,一个处处停机(即对任意输入都停机)的图灵机才表示一个算法,而每个算法都可以被一个处处停机的图灵机来实现
算法分类
算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法。
算法可以宏泛的分为三类:
有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。
有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。
无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。算法特征一个算法应该具有以下五个方面的重要特征:1、输入。一个算法有零个或多个输入,以刻画运算对象的初始情况。例如,在欧几里得算法中,有两个输入,即m和n。2、确定性。算法的每一个步骤必须要确切地定义。即算法中所有有待执行的动作必须严格而不含混地进行规定,不能有歧义性。例如,欧几里得算法中,步骤1中明确规定“以m除以n,而不能有类似以m除n以或n除以m这类有两种可能做法的规定。3、有穷性,一个算法在执行有穷步滞后必须结束。也就是说,一个算法,它所包含的计算步骤是有限的。例如,在欧几里得算法中,m和n均为正整数,在步骤1之后,r必小于n,若r不等于0,下一次进行步骤1时,n的值已经减小,而正整数的递降序列最后必然要终止。因此,无论给定m和n的原始值有多大,步骤1的执行都是有穷次。4、输出。算法有一个或多个的输出,即与输入有某个特定关系的量,简单地说就是算法的最终结果。例如,在欧几里得算法中只有一个输出,即步骤2中的n。5、能行性。算法中有待执行的运算和操作必须是相当基本的,换言之,他们都是能够精确地进行的,算法执行者甚至不需要掌握算法的含义即可根据该算法的每一步骤要求进行操作,并最终得出正确的结果。算法的描述1、用自然语言描述算法前面关于欧几里得算法以及算法实例的描述,使用的都是自然语言。自然语言是人们日常所用的语言,如汉语、英语、德语等。使用这些语言不用专门训练,所描述的算法也通俗易懂。2、用流程图描述算法在数学课程里,我们学习了用程序框图来描述算法。在程序框图中流程图是描述算法的常用工具由一些图形符号来表示算法。3、用伪代码描述算法伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。它不用图形符号,因此,书写方便、格式紧凑,易于理解,便于向计算机程序设计语言过度。