写点什么

一人设计 10 亿图片,这个“设计师”如何演进?

  • 2019-12-16
  • 本文字数:1886 字

    阅读完需:约 6 分钟

一人设计10亿图片,这个“设计师”如何演进?

本文内容提炼:

1、如何建立图片数据与用户注意力之间的连接?

2、如何进行结构化规模化的图片生产?


2019 年双十一期间,鹿班面向集团电商场景输送了 10 亿 规模的图片。从提升公域流量效率,到商家私域的表达赋能,随着场景的细分,分人群精细化运营的需求提出,对图片结构化生产,规模化生产在量和质上的要求不断提高。图像生成技术也在不断的演进,本篇将围绕鹿班最近一年的在生成能力上演进以及实践做展开,欢迎探讨交流。



上图是我们有过采访的在平台上卖姜茶的店铺的图片运营经验,可以看到不同场景下的商品图文,在内容和形式是极具多样性,这种多样性不同于海量商品的个性化多样性,这种多样性是对 C 端用户注意力更加精细的吸引,这种多样性是对 B 端商家运营能力的一个新命题。


那么如何满足这种多样性生产?如何建立图片数据与用户注意力之间的连接?如何对商家赋能?下面我会从图片生产的视角切入,尝试回答以上问题。

生产标准-图片结构化

在 C 端的商品分发链路上,得益于结构化的标准定义,使得商品的数据和特征可以被高效的传递收集处理,从而给予模型和算法充分的施展空间。


当尝试将商品图片的数据作为一个整体进特征提取计算时,无论是低层次的显示特征还是高维的语义隐式特征在基于深度神经网络处理后都变成了一个概率问题,但实际我们更希望把概率转换为确定性输入从而更准确的挖掘图片特征与用户行为之间的关联关系。



电商的图片生产除了最开始的拍摄外,更多的会依赖后期的图像处理软件,比如 PS(photoshop)进行图文的创作编辑,根据图像处理软件的图层划分标准,我们对图片进行结构化的分层定义。给图片引入图层(layer)属性,从结构、色彩、文字(内容)三个维度对一张图片进行结构化的描述。通过结构化使得图片自身的属性特征可以被高效准确的传递收集处理,进而使得后续的生成加工成为可能。



为了标准的执行,我们面向商家设计师开发了配套的生产工具,在保持设计师工作流程不变化的前提下,将原来非结构化的单张图片转换为自描述的 DSL 结构化数据,从而在生产的源头保证了图片数据结构化的执行实施。

生产工序-流程编排

当图片有了结构化的定义后,我们将图片的生成转换为成基于人机协作的数据匹配排序问题。为什么是匹配排序?


我们积累了大量的设计数据,相比之前非结构化的设计创意,通过图片结构化我们可以将设计精确解构到每一个图层,每一个元素,每一个文字。进而沉淀了可复用的数据资产。根据用户喜好,商品属性进行图片表达的好中选优,这就转化为一个数据匹配问题。


数据匹配包含两个部分:一是由设计师创作的面向特定场景或商品表达的设计数据,我们称之为模板;二是由用户属性数据以及在浏览商品图片过程中产生的的收藏、点击、购买等用户行为数据。


对于的匹配排序有两层,首先是商品图片和模板的匹配,这层通过定义设计约束进行参数化的求解实现匹配。


比如基于模板的背景色约束商品图片主色区间,根据模板结构布局约束商品图片主体形状等。通过图像检测/识别算法在线提取商品主体的图片特征,结合离线计算的模板特征进行匹配计算。


然后是用户特征与图片特征的匹配计算,在建模时我们把数据划分成三个特征组,分别是用户特征组,商品特征组合和图片特征组,通过 embedding 变换对得到特征向量进行两两交叉预测建模,之所以采用两两分别组合而不采用三组向量联合建模的原因是考虑到对于电商场景,商品特征与用户特征之间的信号更强,如果联合建模训练会导致图片的行为的关系不能有效的被学习到,而通过两两交叉建模,可以针对性的做预测结果的加权。


问题定义清楚后我们依然要面对来自业务的复杂性和快速响应问题,为此我们定义了生产 pipline,将生产流程与生产能力分而治之。面对复杂业务需求提供生产流程编排能力,为提高响应速度提供可插拔的生产算子模型。



► 生产流程-节点编排


将图片设计生产的理念流程化,流程系统化。通过工作流引擎实现生产节点的编排管理,从而让业务方可以灵活的按需求进行生产线的定义组装,满足多场景的生产需求。


► 生产能力-可插拔算子


算子定义了统一的输入输出以及必要的 context,通过对约定输入的计算处理完成效果实现。


图像类算子:图像分割,主体识别,OCR,显著性检测等。


文本类算子:短标题生成,文字效果增强等。


规则类算子:人工干预,流程控制等。


► 通过这套生成引擎,白盒化的对生成能力进行分制管理,面向二方能力的开放友好,同时满足业务集成的灵活性。目前线上共管理了 10 个核心场景,33 个生产节点,47 种算子能力,通过编排组合实现了 10 亿规模图片的分场景矩阵式生成。


本文转载自淘系技术公众号。


原文链接:https://mp.weixin.qq.com/s/OCIo4nY2YVWHU0t5O_-a4g


2019-12-16 18:56910

评论

发布
暂无评论
发现更多内容

Offer经验分享 - 蚂蚁金服、字节跳动、PDD,蚂蚁金服面试Java后端经历

Java 程序员 后端

seata-golang 一周年回顾,java面试准备内容

Java 程序员 后端

OpenFaaS实战之五:大话watchdog,MySQL高可用之主备同步

Java 程序员 后端

OpenKruise v0,mybatis教程pdf

Java 程序员 后端

RabbitMQ 可靠性、重复消费、顺序性,突围金九银十面试季

Java 程序员 后端

SCA Sentinel 分布式系统的流量防卫兵,春招我借这份PDF的复习思路

Java 程序员 后端

Nginx如何优雅的实现负载均衡!(建议收藏),腾讯&字节&爱奇艺&网易&华为实习面试汇总

Java 程序员 后端

Nginx标准配置文件(包括反向代理、大文件上传,java基础面试问题大全及答案大全

Java 程序员 后端

Redis不只是get set,八种数据类型及应用场景分析,java技术栈面试题

Java 程序员 后端

Redis入门到五大类型实现,java基础知识点大全

Java 程序员 后端

Redis分布式基石——主从复制技术详述,Java黑科技实现原理揭秘

Java 程序员 后端

Redis面试题汇总,mysql调优面试题

Java 程序员 后端

RestFul API 统一格式返回 + 全局异常处理,linux系统编程视频教程

Java 程序员 后端

Nginx面试三连问:如何工作?负载均衡策略有哪些,如何成为一个更好的Java开发者

Java 程序员 后端

Redis哨兵原理,我忍你很久了!,java面试视频百度云

Java 程序员 后端

Redis:看完就比常人多会三种类型实战,可以拿去炫耀了

Java 程序员 后端

Netty入门,javaee教程网上购书系统

Java 程序员 后端

pageHelper----Mybaits分页插件,mysql架构设计器没有显示

Java 程序员 后端

RabbitMQ实现即时通讯居然如此简单!后端代码都省得写了

Java 程序员 后端

Redis-生产架构选型解决方案,java开发架构师

Java 程序员 后端

Redis精通系列——LRU算法详述(Least Recently Used - 最近最少使用)

Java 程序员 后端

Redis高可用篇:Cluster集群能支持的数据量有多大?,再不了解你就out啦

Java 程序员 后端

oh,老哥,是码友就来看这篇多线程,mybatis的底层原理

Java 程序员 后端

Redis到底能干什么?又不能干什么呢?,kettle面试题

Java 程序员 后端

redis 在微服务领域的贡献,java制作微信小程序教程

Java 程序员 后端

Redis该怎么学?其实很简单,这份学习路线,mybatis架构梳理

Java 程序员 后端

RocketMQ 5,学习linux系统管理

Java 程序员 后端

Redis 千万不要乱用KEYS命令,不然会挨打的,面试必问

Java 程序员 后端

Redis-用的很溜,了解过它用的什么协议吗?,3天拿到网易Java岗offer

Java 程序员 后端

Redis总结,学Java必看书籍

Java 程序员 后端

Serverless Devs 的官网是如何通过 Serverless Devs 部署的

Java 程序员 后端

一人设计10亿图片,这个“设计师”如何演进?_行业深度_鲍军(推开)_InfoQ精选文章