从内容/用户画像到如何做算法研发

简介: 我们现在做内容标签的进展,其实就是在做内容画像。我们一般都是在谈用户画像,其实内容也是要画像的。如何做?怎么才算对算法有了真正的理解?
中午和一前同事一起用餐,发现还是有很多碰撞点的。交流了很多正在做的事情,对方也提供了非常多的思想值得自己很好的思考。先是和他聊了下我们现在做内容标签的进展,其实就是在做内容画像。我们一般都是在谈用户画像,其实内容也是要画像的。
我之前说,内容和用户是现在互联网企业核心的两个东西,用户的行为则将内容和用户连接了起来。很多人一上来,撸起袖子就开始做用户画像,后面会发现,如果没有对内容做好分析,其实用户画像这个东西也会做不好。因为用户的行为是以内容为承载的,只有把内容画像做好了,才能进一步提升用户画像的品质。而要做内容画像,其实有两件事情要做的:
  1. 从多个维度刻画内容的,并且形成对应的标签体系
  2. 如何将这些标签打在内容上
另外在如何做的这件事情上,他也谈及了自己的看法,就是要求以Spark的Mlib为载体,尽量所有人共用一个算法平台。我诧异的说,竟然和我的想法不谋而合。他说这样做的好处是大家信息共享会更快,同一个平台也更好维护。我进一步补充,其实如果每个人都有Google工程师的水准,其实倒也不用限制在一个平台上,但事实上如果每个人都坚持自己擅长的方式,其实隐形成本非常高。
比如,算法工程师写了一个巨牛逼的算法原型,然后他需要先给工程师讲懂这个算法,工程师看个人水平,先不说能否将算法实现,实现所花的时间,以及是否真的有时间和精力去帮着实现,实现的是不是有问题就是一个很大的问题了。来回一折腾,两个人都会比较累。当然,我前面也说了,如果都是Google工程师级别的,事情自然能更快。如果大家都使用spark 平台,这种交流成本小非常多。研发工程师只要将算法工程师已经写好的spark代码做些调整优化,估计就可以直接上线看效果了。所以我做的更极端一些,要求算法工程师用到的算法都必须是Spark Mlib现有的,或者有能力自己实现的,不能单机去Lib跑跑就行。
他还问我说,怎么才算对算法有了真正的理解。这个问题真的把我问住了,我之前肯定会说,知道什么场景使用什么样的算法,就足够了。但是现在真的静下心来做,发现不是这么一回事。
我们先谈谈,怎么知道什么场景,使用什么算法。首先我们要知道具体场景能对应到一个什么类别的问题上。是一个聚类的问题?一个分类的问题?还是一个回归类问题?定义了类别之后再去找对应的算法。比如聚类可以使用KMeans,LDA,K近邻等,分类可以贝叶斯,SVM等。然而你会发现,其实还是太简单了。
一个场景要解决的一个问题往往不是这么直观明显的,就如同我们上面提到的构建内容画像的问题,就得到了两个子问题,每个子问题又需要划分成好多个步骤,每个步骤可能对应一个或者多个算法问题。
但是就算这样,也还是是远远不够。因为我们即使做到了具体知道该使用哪个算法,但是一用,发现效果完全不是那回事。这个时候我们至少需要了解两方面:
  • 算法的核心是什么,有什么潜在的需求?比如是不是对数据的分布做了什么假设么?
  • 特征和数据集的情况是如何的
而且很多算法做了很多很粗暴的假设,这种假设会导致算法存在一些固有的问题,如果你不了解其内部的这些假设,你会以为这些是他的一个特性,其实是一个缺点。比如Gini Importance,如果你不去了解的内部思想,你在理解数据时,就会造成误解,导致错误的认为先被选中的特征是很重要的,而其余的特征是不重要的,但实际上这些特征对响应变量的作用确实非常接近的。
做公式推导到底重不重要呢。我们常常觉得那些对算法里的公式能做推导的人,很牛,能做到这点,自然值得鼓励和钦佩,但是我觉得算法和能不能推导公式是两码事。我可以把算法里的每个公式拎出来,找个数学系的人进行推导,它可能比较轻松的搞定。但是我们说他懂得这个算了么?他连算法是什么都不知道,对么? 所以从工程转过来的人,一定不要为此觉得有什么障碍,其实我们可以忽略公式的本身推导过程。
我有时候觉得,引用算法工程师最流行的一个话,就是tricky。 中文我不知道怎么翻译更合适,很多时候是需要悟性和对事物本质的了解,才能了解一个算法的,绝对不是靠几个公式就能搞定的。
协同算法是我们应用的比较广泛的一个算法。 但是我觉得协同不应该算是一个算法,而是一种模式。我们常见的很多模型,最后都是协同模式。举个例子来说,是不是个A1用户推荐文章B1,我们可能是这么做的:
  1. 把用户用向量做表征,文章也是
  2. 观察大量的用户A2,A3...AN 是不是有点击该B1
  3. 使用逻辑回归/SVM等分类算法训练模型
  4. 把A1,B1丢进模型,得到是否推荐。
但事实上这套算法,用的就是协同。为啥的?本质上还是相近的用户做的选择互相推荐。
目录
相关文章
|
达摩院 算法 决策智能
阿里达摩院研发了一款运筹优化算法开发平台
使用数学规划技术时,需要运用运筹学的知识分析问题、数学建模和开发程序来计算。平台式的开发环境,可以集成多款优化求解算法和数据处理软件,易于使用,能提高开发的效率,帮助快速将优化技术应用于业务。
阿里达摩院研发了一款运筹优化算法开发平台
|
4月前
|
机器学习/深度学习 人工智能 算法
「AI工程师」算法研发与优化-工作指导
**工作指导书摘要:** 设计与优化算法,提升性能效率;负责模型训练及测试,确保准确稳定;跟踪业界最新技术并应用;提供内部技术支持,解决使用问题。要求扎实的数学和机器学习基础,熟悉深度学习框架,具备良好编程及数据分析能力,注重团队协作。遵循代码、文档和测试规范,持续学习创新,优化算法以支持业务发展。
216 0
「AI工程师」算法研发与优化-工作指导
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
257 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
6月前
|
算法 搜索推荐 数据挖掘
用户画像之KMeans 算法解释及项目中用到的算法
用户画像之KMeans 算法解释及项目中用到的算法
110 1
|
消息中间件 存储 编解码
带你读《云原生架构白皮书2022新版》——网易云音乐曲库研发负责人谈音视频算法的 Serverless 探索之路
带你读《云原生架构白皮书2022新版》——网易云音乐曲库研发负责人谈音视频算法的 Serverless 探索之路
518 6
|
机器学习/深度学习 人工智能 算法
横向对比 11 种算法,多伦多大学推出机器学习模型,加速长效注射剂新药研发
横向对比 11 种算法,多伦多大学推出机器学习模型,加速长效注射剂新药研发
162 0
|
数据采集 机器学习/深度学习 人工智能
不写一行代码,完成机器视觉算法的研发
xNN云平台面向普通的研发、质量、UED、运营等非算法专业的同学,也面向视觉与非视觉领域的算法同学,提供全自动的模型训练与模型压缩能力。同时配合专业的数据管理、数据标注、模型评测、端侧发布、云侧发布、数据监控等全套工程能力,使得用户能够在不写一行代码的情况下完成计算机视觉算法从数据准备到发布的研发全流程。
1782 0
不写一行代码,完成机器视觉算法的研发
|
人工智能 算法 Java
3年大合辑:算法、研发、Java开发、Android开发、机器学习免费电子书一键下载
12本阿里技术官方出版电子书开放下载啦!还在一个个地搜吗?不如来收藏本合辑吧!
71620 0
|
算法 安全 程序员
阿里云秋招宣讲会师兄师姐面经干货续集《算法&研发专场》来啦
上周,《阿里云校招宣讲会:前端&设计专场》已顺利结束啦,小伙伴们通过内推投简历了没有呢?听了师兄师姐的校招经验干货分享之后是不是胸有成竹地在等待面试通知了呢?来来来,阿里妹陪你一起梳理师兄师姐们分享的干货要点~
2661 0
阿里云秋招宣讲会师兄师姐面经干货续集《算法&研发专场》来啦
|
机器学习/深度学习 人工智能 自然语言处理
【阿里巴巴计算平台事业部招聘】深度学习算法研发工程师/专家
阿里巴巴计算平台事业部(贾扬清的团队),人工智能平台招聘。
2180 0