热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

StitchFix的创新和突破——用数据的心智经营公司

http:www.sohu.coma128980775_470008首先,请允许作者引用狄更斯的名言开头,相信很多人都非常熟悉:这是最好的时代,这是最坏的时代,这是智慧的时

http://www.sohu.com/a/128980775_470008

首先,请允许作者引用狄更斯的名言开头,相信很多人都非常熟悉:

这是最好的时代,这是最坏的时代, 这是智慧的时代,这是愚蠢的时代; 这是信仰的时期,这是怀疑的时期; 这是光明的季节,这是黑暗的季节; 这是希望之春, 这是希望之冬。

为什么引用这样的话开头?众所周知,从1969年英美等发达国家年率先进入信息时代来,科技开始改变人类生活方方面面,其步伐越来越迅猛,而中国的起步是在1984年才起步,整整落后了15年的时间,在此前的时光里,大多数中国企业都处于学习国外先进技术的阶段。而今天,让我们看到希望和苗头的,恰恰是大数据的蓬勃发展和人工智能的突破,而在其中引领风潮的,正是一群理性且实干、时尚且睿智的数据科学家们。

以前囿于数据的匮乏、计算机性能的低下,数据科学这个概念只能流于形式,局限在象牙塔和专业理论中。而如今,随着大数据之风兴起,CPU和GPU等处理芯片的普及,数据科学可以有机会走出以前的限制进入实际应用领域,数据科学家们也终于有机会抛头颅脸,扬名立万。

目前,所能限制我们的,就只剩下人的陈旧思想和制度的拘泥形式挡道。今天小编给大家详细介绍国外一家创新公司如何将应用数据科学技术和理论到实际问题,希望能够引起国内实业家的共鸣,大胆创新,将数据科学在国内肥沃的土壤上落地发芽,而这家公司就是Stitch Fix。

Stitch Fix是一家零售公司,也是一家技术公司。创立于2011年2月,从475万天使A轮开始,到2014年6月融完了C轮后,一共融资4675万美元,其商业模型采用了前所未有的数据科学,不仅仅是推荐系统,还有基于人的计算建模、资源管理、库存管理、算法化时尚设计和其他多种功能领域,发展迅猛。

许多人都有选择困难症,买衣服就是其中之一。Stitch Fix公司创始人Katrina Lake说道:“我们的世界从不缺少衣服、包包和鞋子,但要找到最合适自己的,才是最大的挑战。“于是,她结合自己的专业背景,组织了一群数据科学家、IT工程师、时尚造型师和零售业精英,开创了这一家公司,为大众寻找自己喜欢的服饰。那么这家公司是怎么解决消费群体这样的不确定性需求的呢?又如何管理仓库的进货出货?如何匹配合适造型师給到消费客户意见?小编将在接下来的章节一一为大家讲解。

总体介绍

在进入正题前,我们需要了解Stitch Fix如何給客户服务。

如果你注册成为Stitch Fix的客户,你首先需要填写相应的表格,可以详细也可以粗略填写。当然最主要的是包含了你的形体基本数据,大体喜欢的穿衣风格以及你的购物预算这三方面。问题可以细致到你的身高体重、出去约会次数、喜欢哪种风格的首饰、喜欢哪种风格的衣服穿在身上的各个部位等等,网上注册则会要求做一些选择题,哪些是你喜欢的风格、颜色,哪些又是你不喜欢的,接下来你需要填写你的收货日期并预先支付20美元的购买押金。

接着,等到了收货日期到,你将会收到一份包裹,里面有各种衣服服饰,如牛仔裤、毛衣、外套等等,额外还有一张小纸条写着推荐这些衣物给你的原因,教你怎么穿衣搭配才好看,喜欢的衣物你可以留下,不喜欢的可以免费退回,同时会让你填写反馈表格,然后你就可以登陆他们官网为你所留下的衣服付账。之后当你有下次需求时都可以在官网了预定下次收货时间和留下此次购买衣服理由。

以上是客户的视角所能看到的,那么下面将介绍的是Stitch Fix所运行的主要环节和技术。

选定送货仓库

在给客户送货之前,Stitch Fix中心首先会选定一个仓库送货,目前Stitch Fix在美国总部一共有五个仓库,在选定仓库过程是由一个算法所决断,这个算法计算了一个代价公式,基于每个仓库与客户的位置关系以及库存与客户所需的匹配度计算。

对每一个客户都计算一遍后就会生成一个代价矩阵,这样,选定送货仓库的问题就变成了一个最优化问题,这样就只需要运用数学理论里最优化的解决方法就可以求得全局最优解(当然也会参考客户的特殊需求)。

评分排序

选定仓库后,Stitch Fix后台系统会上罗列出该仓库的所有库存清单,首先会经过一个过滤算法(基于客户所填信息)先去除掉客户已经购买过的或者已经咨询过不需要的库存。针对淘汰后留存的每一款服饰,机器会尝试评估这个客户喜欢这款商品的相关概率。这是一个非常困难的问题,Stitch Fix尝试过很多种方法来实现,下面介绍了其中几种,但总的来说,他们是从不同算法上对每一款商品进行多次打分后排序。

这个问题是经典的协同过滤问题:在基于之前所收集的不同客户对不同风格商品的回馈历史数据,他们填充一个稀疏矩阵(横列是所有客户,竖列是仓库里的所有商品,每个单元格填写的是客户对商品的相关系数,大部分还是未知,所以称之为稀疏矩阵),之后他们将根据一些明确的数据(可以在注册或者历史购买中所填写的偏好以及这款商品受到其他与该客户相似的其他客户的历史反馈)来预测一款与从没收到过这款商品的客户之间的相关系数。更多的,他们采用了一些标准的协同过滤算法(例如根据和你有同样喜欢其他款商品的人对这款商品的喜欢程度去推算)。

从而,他们设计了混合效应模型,在数据科学里这是非常有用的,因为该问题的纵向因素是:它让公司能够既从个体又从整体上学习(与追踪)到客户随着时间的兴趣爱好变化。同时,他们也利用第三方源的相关特征,从(结构化/非结构化)数据获取并使用,进而提高算法效率。

有时候通过文字很难去描述一个客户的风格喜好,但当客户看到商品的时候就会知道到底喜不喜欢它,所以Stitch Fix也关注客户喜欢看的图片(例如从Pinterest),也在他们库存里搜索视觉类似的商品。借此训练一个神经网络去生成向量来描述这些图片,然后在之前库存的每一款商品上提前计算出来向量与这些向量之间求它们的余弦相似度作为分数。

同时也适用自然语言处理技术来根据客户的购买需求文字对产品打分。

最后根据以上多种打分机制,综合考虑,选择出满足一定分数的商品出来并排序输出商品图片和客户资料到Stitch Fix时尚造型师团队去。

匹配时尚造型师

时尚造型师的选择也是一个类似之前的最优化问题。当然人类更为复杂,机器只会选择一样,但是时尚造型师会根据客户具体需求再次进行多种选择,所以他们对这个匹配也进行了优化。

为了完成这点,他们首先计算了在当前时期每一个时尚造型师和那些有需求的客户之间的匹配分数,这个匹配分是一个复杂的函数,根据的是客户和时尚造型师之间的历史数据、客户状态及喜好还有时尚造型师的设计风格之间的相似度。

此时,时尚造型师指定优化问题接近于之前提到的仓库指定问题,期望能做到:

(a)需要只考虑那些等待发货的客户(b)我们必须频繁优化该问题从而解释造型师工作队列的多样化。

因此,Stitch Fix也给这些时尚造型师打造了一个基于客户构建的计算平台去更快更深刻地理解客户。这个平台会记录一些重要的数据,例如时尚造型师都给那些客户选择了那些服装搭配,决策时所采用的服装的共同点和不同点,最后再追踪结果返回数据等等,这些测试和记录,都会帮助我们理解时装造型师怎么决策。

最终,时装造型师拍板从库存里做的选项,写一份私信给客户在具体的场景或者只是试衣间里描述如何去搭配这次包装里的各种服装,于是这样就确定好了需要派发的衣服。

仓库取货路径问题

在确定好应该挑选的商品后,因为仓库比较大,还需要规划取货路径。这是一个经典的算法问题,是一个NP-hard旅行商问题,已有方法求得这类问题的次优解。现实里,Stitch Fix还会进一步考虑这个问题,去尽可能先计算出可以最轻易提取产品的路径。

形成体系

当然,Stitch Fix的货品就这样从仓库派送到对应的客户,而这也才是Stitch Fix所做的步骤中刚刚起步的一小节而已。

客户打开盒子后看到很高兴的会保留,发送回不喜欢的衣服,然后告诉Stitch Fix对每件服装的看法。她和Stitch Fix有一个共生的关系,她给了非常有见地的反馈,使得Stitch Fix不仅能以此反馈更好的服务下一次,也提供了数据去让Stitch Fix更好地服务于其他相似客户。

以此生意开始流转,数据也在其中不断迭代增加及使用。抽象着看,Stitch Fix将系统作为一个整体考虑。 站在这样的一个层面,业务的另外两个方面变得清晰:

(1)Stitch Fix必须通过为客户购买和/或设计新服装来持续补充库存,这丰富的数据提供了极好的机会;

(2)Stitch Fix必须预测客户的需求,以确保在适当的时间有足够的适当资源。

库存管理

如果你觉得完成以上后台及系统Stitch Fix就觉得完成整个运营那你就大错特错了。Stitch Fix还考虑了其他两个重要的问题:库存管理和新风格发展。在库存管理这一块,他们采用了状态机的理论知识来支撑。

像这类给客户选货供货送货的买卖,会涉及到公司应当考虑给仓库入什么货、入多少货这类需求预期问题,其中的解决方法之一是考虑每个时间点的每个客户的“状态”。他们是新客户吗?他们是通过转介还是自己到达?他们的衣柜几乎满了吗?他们是否在生活改变后建立他们的衣柜?还是只想尝试新的东西?根据他们的状态,他们可能会有差异的装运需求,不同时间和类型的电子邮件保持联系的渴望等等。

因此Stitch Fix跟踪每个客户的每个接触点 - 发送的每一次包裹,每一个收到的反馈,每个提交,每封电子邮件等等这些信息数据记录在案。

使用这些数据,可以试图去了解客户的状态及其在这些不同时期的需求。然后可以检测状态的变化,并考虑可能的触发器。这个过程本身可以导致洞察,从而帮助公司去保持客户的快乐消费体验。

一旦定义和理解这些状态,并检测和理解客户之间的过渡,就可以开发状态转换矩阵和马尔可夫链模型,使Stitch Fix能够达到研究系统级的效果。

这些马尔可夫链模型的许多用途之一是预测未来的需求,这是很重要的。因为公司往往需要在购买库存月份前维持库存量,还必须确保我们在正确的时间拥有适当数量的资源。

通过客户需求的库存损耗最终必须通过购买新库存来抵消,其中还有一个挑战是如何确保购买时机,以便为时装造型师保持足够的库存可用性,同时最小化订购成本和承载成本(与库存曲线下面积相关的运营成本和机会成本)。

满足未来需求只是库存管理挑战之一:还必须适当地将库存分配给不同的仓库,偶尔捐赠旧库存,为新风格商品腾出空间。这里Stitch Fix使用新的算法来帮助进行这些过程。请注意,现实情况比这个简单的例子更复杂,因为必须深入了解每个仓库中不同类型和样式的服装的可用性,但仍旧会遵循一些简单的规则来指导清货。

有多少样式要购买?哪些物品应该去哪个仓库?什么时候应该捐赠什么库存?通过使用系统动力学模型来回答这些问题,将其与历史数据进行拟合,在给定的量化后的不确定性里,用上述结果来进行鲁棒性优化。

新风格发展

容量挑战不是库存更换的唯一考虑因素:Stitch Fix还想以不断改进库存的方式购买和开发新服装,这样可以有机会帮助时装造型师为广泛的客户群带来更大的乐趣,为独家品牌设计新款式提供发展基础,也为特定客户群定制了新设计,因为这些客户群往往不满足其他品牌。

而Stitch Fix通过遗传算法的灵感来把握住这个机会:使用了重组和突变以及适应性测量,“物竞天择,适者生存”的核心思想。他们是这么做的:

第一步是将每种服装的各类基本属性分解看待,每种商品的一组属性视为其“基因”,商品就成为了一类有”基因“的”生物“。然后,以这种方式考虑庞大的样式集,并考虑为每个“生物”提供的客户反馈(即是该“生物”在这样的环境下的“适应性”)。继而考虑通过重组现有样式的属性并可能稍微改变它们来创建新样式。 注意,可能的组合的数量非常大(Πki)。

在下一步中,Stitch Fix偏离了一个规范的遗传算法:不是简单地选择基于适应性,然后释放随机重组和突变作为下一代风格,而是再有点更挑剔出究竟是什么理由使它能进入库存中。开发一个给定的属性集合可能适合目标客户的模型,然后使用这个模型来突出具有高的可能性的各种属性集。最后时装造型师一起审查和完善这个集合,并最终生产下一代风格。

以上就是Stitch Fix所做的创新和突破,这些成果脱离不了他们对一个数据平台的建设打磨。

数据平台

数据平台团队提供数据和计算基础设施以及一系列内部SaaS产品,允许垂直领域中的数据科学家工作,高效地进行分析,编写算法并将其投入生产。 该平台很好地封装了数据分布,并行化,自动扩展,故障转移等属性。这允许数据科学家主要集中在科学方面,但仍然享受可扩展系统的好处。 而且,数据平台工程师专注于构建平台。 也就是说,他们没有负担的业务逻辑和要求,他们没有上下文。 这是全栈数据科学家的工作, 其核心思想是“工程师不应该写ETL”,Stitch Fix的数据平台团队使数据科学家能够从概念到生产一整条路线上进行算法开发。

以上就是作者想要给大家所介绍的融合数据科学和零售业的新型公司。TalkingData作为中国最大的独立第三方大数据公司,我们的愿景是帮助传统企业转型升级为数据驱动型公司,就如同作者今天所介绍的公司一样。如果你是一名传统企业家,你是有兴趣,你有勇气,你有追求,你有突破传统的思想和重新定义一切的决心,请和我们联系,我们将竭尽全力帮助你公司成为下一家Stitch Fix——去用数据的心智经营一家公司。

部分内容和图,摘自http://algorithms-tour.stitchfix.com/



推荐阅读
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • 江苏启动鲲鹏生态产业园首批应用孵化项目
    2019年9月19日,在华为全联接大会上,江苏鲲鹏生态产业园正式启动了首批鲲鹏应用孵化项目。南京市委常委、江北新区党工委专职副书记罗群等多位嘉宾出席并见证了这一重要时刻。 ... [详细]
  • 2017年苹果全球开发者大会即将开幕,预计iOS将迎来重大更新,同时Siri智能音箱有望首次亮相,AI技术成为大会焦点。 ... [详细]
  • 三星Galaxy S8/S8+即将登场,全面解析新旗舰
    3月29日晚11点,备受瞩目的三星Galaxy S8/S8+将正式发布。作为三星在Note 7爆炸事件后的重磅产品,S8/S8+不仅承载着恢复消费者信心的重任,其创新的设计和技术也备受期待。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 十大算法书籍助力编程之路
    算法作为编程学习的核心技能,其重要性不容忽视。虽然算法的学习难度较高,但其对提升编程能力、通过技术面试以及应对当前热门的技术领域如人工智能和区块链等都有着不可替代的作用。本文精选十本算法书籍,旨在帮助程序员更好地掌握这一关键技术。 ... [详细]
author-avatar
岩律_619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有