第一是感知。系统会通过用户的搜索行为,自动获取其数据,用户搜索什么,点击什么,都表明用户想知道什么,这其实有助于不断地培训这个系统。今日头条也是一样,我们通过用户点击喜欢与否、分享的评论知道用户想要参与什么类型的话题。
第二是理解。用户的查询、点击、收藏等行为一定程度上反映了用户的某些意图,比如有人查询红酒木瓜汤,他是对美食感兴趣还是对减肥感兴趣,这个通过分析可以知道,这就是系统的理解能力。不仅要感知海量的数据,还要解读数据背后的意图。
第三是判断。感知、理解了这个知识之后可以对用户新的行为产生判断。比如今日头条可以判断这条最新资讯这位用户是否会喜欢。刚刚格灵深瞳的何总说机器学习可以判断在这么多摄像监控的情况下哪些是危险的情况。具备一个感知、理解、判断的系统,它会有一个自我成长的特质。
现在我以今日头条为例解释一下自我成长。第一个问题,推荐系统这块,用户用得越久会越好用,为什么?因为他的行为越来越多地记录到这个系统中,这个系统感知他的行为越多,就对他越理解。
第二个问题是越多人用会越好用,为什么?不同的人之间有共性的东西,理解一名用户之后,就会更容易地理解其他用户;理解一类用户之后,就容易理解这类用户新的个体。
我想举个例子,两个新出生的婴儿,因为生活阅历的不同,他们的智商发育情况会有很大差别,哪怕先天的基因物质条件很接近,每天见到的东西不同,收集的数据不一样,他的大脑神经发育就不一样,最终积累的智慧也不一样。
不是从个人的视角看待这些数据,因为系统能够通过几千万或者上亿的日活跃用户来吸取海量的数据,这是用全局的视角,看待每位用户的行为。
我具体介绍一下今日头条在使用机器引擎上的实践。
过去我们看报纸,主编或者总编室是没有办法积累用户行为数据的,他可能只能通过用户的反弹用非在线的方式搜集数据。这种信息的感知水平跟移动APP差别很大。
我们再看一下移动APP,可以想象一下一个人在地铁中使用今日头条时,其实他在使用今日头条过程中,今日头条后面的数据也在观察他每一步的滑动,他是否很快地滑过某些标题,或是有所停留,是点击一篇内容认真阅读还是粗略阅读。是参与评论还是在朋友圈讨论,这些行为都能在秒级延迟范围内被系统感知到,系统就会做到实时的调整。
一个在线APP每秒都会产生大量的数据,我们获取这些数据如何使用呢?以下是几大特征:
首先是动作特征。即刚刚说的点击、停留、滑动、评论、分享。
其次是环境特征。用户是在Wi-Fi还是3G环境下,他的GPS在北京还是上海,是在常住地还是处于旅行状态,是白天还是夜晚,是否为节假日,是首次使用还是第二次使用,这些都可以作为环境特征。
第三是社交特征。我们一直是鼓励用户用社交媒介登录今日头条。比如一名用户用微博登录,我们会得到他的微博信息,包括微博的关注关系,历史上发的微博,昨天发了一条看电影的微博等等。
这些数据都成为各种特征被系统所学习到,更重要的是系统不仅使用单一的特征,还会将这些特征进行组合,从而判断用户有什么样的兴趣爱好。
我们最早一个版本不是基于学习而是基于策略的。我们用人的知识编成一些策略进行个性化的推荐。这些知识是人工感知、理解、判断得到的,并不是系统得到的。后来我们使用了一些高级特征,及少量的组合。
这些高级特征包括他是不是一个当地居民,是不是一个IT用户,他使用的手机价格多少,可能会根据上百种的高级特征进行组合来推荐消息。
今年下半年,我们又进行了改进,用了海量的高级特征和精细化的特征。精细化特征这块,我们会观察他过去点击某篇文章的行为,对他现在的阅读有什么影响。特征的颗粒度越细,推荐的精准性就会越高。
未来我们会有更多丰富的特征,不仅是用一种模型,可能更多的是模型的组合来进行行为的理解判断。