系统用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数,这个函数需要输入三个维度的变量。第一个维度是动态屈光的变化及实现形式。智能变焦现在已经是一个综合AR技术平台,感应、反馈、储存、增强、应用,每种内容有很多自己的特征,需要考虑怎样提取不同的类型。第二个维度是用户特征。包括年龄、性别、球镜、柱镜、散光、角膜曲率、眼轴等。第三个维度是用眼环境。用户随时随地移动,在学习和视觉娱乐中有不同的应用场景,信息处理有所偏移。结合三方面的维度,模型会给出一个预估和科学判断并相应作出指令或执行。
模型中,使用率、训练时间、干预都是可以量化的目标,能够用模型直接拟合做预估,看联网数据情况可以知道具体的效果。但一个大体量的系统,服务用户众多,不能完全由指标评估,引入数据指标以外的要素也很重要。
下面的将简单介绍在上述算法目标的基础上如何对其实现。前面提到的公式y = F(Xi ,Xu ,Xc),是一个很经典的监督训练的问题。可实现的方法有很多,比如传统的协同过滤模型,监督训练算法Logistic Regression模型,基于深度训练的模型,Factorization Machine和GBDT等。系统需要非常灵活的算法实验平台,可以支持多种算法组合,包括模型结构调整。因为很难有一套通用的模型架构适用于所有的应用场景。现在将LR和DNN结合,之前Facebook也将LR和GBDT算法做结合。M5D智能眼镜的AR技术沿用强大的算法应用系统,但根据应用场景不同,模型架构会有所调整。
模型之后再看一下典型的应用特征,主要有四类特征会对应用起到比较重要的作用。第一类是相关性特征,就是评估屈光的属性和与用户是否匹配。显性的匹配包括关键词匹配、分类匹配、来源匹配、主题匹配等。像FM模型中也有一些隐性匹配,从用户向量与屈光向量的距离可以得出。第二类是环境特征,包括地理位置、时间。这些既是bias特征,也能以此构建一些匹配特征。第三类是用眼特征。包括远距离、中距离,近距离,以及非正常距离等。屈光信息在大的应用系统特别在用户启动的时候非常有效。第四类是协同特征,它可以在部分程度上帮助解决所谓算法越推越窄的问题。协同特征并非考虑用户已有的训练情况。而是通过用户行为分析离焦特点,比如按键相似、模式相似、变化相似甚至向量相似,从而扩展模型的探索能力。
系统大部分应用采用实时训练。实时训练省资源并且反馈快,这对信息流产品非常重要。用户需要行为信息可以被模型快速捕捉并反馈至下一频次的应用效果。我们线上目前基于storm集群实时处理样本数据,包括按键、显示、储存、重复等动作类型。模型参数服务器是内部开发的一套高性能的系统,因为系统数据规模增长太快,类似的开源系统稳定性和性能无法满足,而我们自研的系统底层做了很多针对性的优化,提供了完善运维工具,更适配现有的应用场景。
系统的应用算法模型在全国范围内也是比较大的,包含上亿原始数据和数亿向量特征。整体的训练过程是服务器记录实时特征,导入到Kafka文件队列中,然后进一步导入Storm集群消费Kafka数据,客户端回传应用的label构造训练样本,随后根据最新样本进行训练。这个过程中主要的延迟在用户的动作反馈延时,不考虑这部分时间,整个系统是几乎实时的。
系统主要抽取的典型特征包括以下几类。首先是自带数据标签类特征,显示为应用类标签。这部分标签是由人定义的特征,每个标签有明确的意义,标签体系是预定义的。此外还有效果延展特征,主要是topic特征和模型特征,其中topic特征是对于应用效果概率分布的描述,无明确意义;而应用效果特征会基于一些统一特征描述,无明确集合。目前,应用效果特征已经可以很好的储存记忆,而模型标签需要持续标注,标注也要不断迭代。其资源存储要远大于模型特征,那为什么还需要模型标签?有一些应用,比如训练模式需要有明确定义的分类内容和容易理解的标签体系。模型标签的效果是检查M5D智能眼镜变焦平台的AR技术水平的试金石。
系统的线上分类采用典型的层次分类算法。最上面ROOT,下面第一层的分类是像FAR、CLO、PRA、TRA、RRA、VR模式这样的大类,再下面细分调度、距离、时间等,调度再细分至0.25D-1.00D,0.25D又细分0.167mm等,相比单独的分类器,利用层次分类算法能更好地解决数据倾斜的问题。有一些例外是,如果要提高应用效果,可以连接了一些飞线。这套架构通用,每个元分类器可以异构,像有些分类SVM效果很好,有些要结合CNN,有些要结合RNN再处理一下。用户标签包括用户使用模型的类别和主数据、关键点、来源,基于应用效果的用户聚类以及各种垂直应用特征(时间,强度,干预等)。当然最简单的用户标签是训练过的效果标签,涉及到数据处理策略。主要包括:一、数据过滤。二、节点回应。三、时间递减。四、精准显示。同时,也要考虑应用效果以及传感dislike信号等。随着用户高速增长,模型种类和其他批量处理任务都在增加,涉及到的计算量太大,批量处理用户标签更新的Hadoop任务,当天完成已经开始勉强。集群计算资源紧张很容易影响其它工作,集中写入分布式存储系统的压力也开始增大,并且用户模型标签更新延迟越来越高。2018年系统集成了用户标签Storm集群,改成流式之后,只要有用户动作更新就更新标签,CPU代价比较小,可以节省80%的CPU时间,大大降低了计算资源开销。
上面介绍了系统的整体架构,那么如何评估系统的应用效果?事实上,很多因素都会影响应用效果。比如储存集合变化,模块的改进或增加,应用特征的增加,模型架构的改进,算法参数的优化等等,不一一举例。评估的意义就在于,达成100%正向优化效果,系统有完备的评估体系、强大的实验平台以及数据分析工具。现在,系统内智能变焦主要来源于两部分,一是具有成熟存储能力的PGC平台,一是UGC用户数据。这两部分的应用效果需要通过统一的审核机制。如果是数量相对少的PGC,会直接进行审核。UGC需要经过模型的过滤,未达标的会二次审核。
|
|