X

嘘。这是更好的侧面。

(试试风景画吧!)

算法之旅

数据科学如何编织成针织品的织物manbetx万博体育app 官方下载

日志 P. 1 - P. = α + Xβ. + Zb ...... 一世 j 一种 Σ Σ 一种 ij 问: ij 酸处理 一种 ij = 1 一世 j Σ 一种 ij { 0 1 } 我,我 一种 ij < K. j j 一世 Σ X T. = F X T. T. W. T. P. 我→j = 分对数 β 0. + β 1 X 1 ...... P. 1 = β ex_cell. + α 1 P. 1 | 造型师 + α 2 P. 1 | 客户端 ...... ...... ...... C 一世 S. j

在针脚manbetx万博体育app 官方下载修复,我们正在改变人们找到他们所爱的方式。我们的客户希望他们的个人偏好的完美衣服 - 但没有搜索的负担或不得不跟上当前的趋势。我们的商品从市场策划,并使用我们自己的设计增强以填补空白。它对每个人都保持了最目前的,非常庞大和多样化的东西。这个'Market'的两侧的丰富数据使Stitch Fix能够成为一个媒人,将客户与他们所爱的款式manbetx万博体育app 官方下载联系起来(永远不会在自己找到)。

我们的业务模式使得前所未有的数据科学,不仅在推荐系统中,而且还在人力资源管理,资源管理,库存管理,算法时装设计和许多其他地区。实验和算法的开发深入遗留在缝合修复的一切中。manbetx万博体育app 官方下载当您滚动时,我们将详细描述一些示例。

那么数据是什么样的呢?除了我们从客户那里得到丰富的反馈数据,我们还收到了大量关于我们的服装和客户的前期数据。我们的买家和设计师捕捉尺寸和风格细节,我们的客户在注册时填写一份资料,该资料经过校准,以最少的客户努力获得最有用的数据。

让我们先浏览一下装运请求的填充过程,看看在该过程中发挥作用的许多算法中的几个,然后再缩小以查看更大的画面。

客户体验第1部分:简介和请求

如上所述,当客户首次注册时,他或她填写样式配置文件(它可以随时更新)。然后,调度交付很容易:算法用于填充她选择交货日期的日历。

仓库作业

发货请求由一个算法处理,该算法将其分配给仓库。该算法根据相对于客户的位置以及不同仓库中的库存与客户需求匹配程度的组合,为每个仓库计算一个成本函数。

对每个客户进行这组成本计算,以产生成本矩阵。

然后将客户分配给仓库是二进制优化问题。

而全局最佳包括此特定客户的仓库分配。

然后将装运请求路由到人类+机器造型算法。

智能机器

首先,机器执行各种算法以产生库存的秩序列表。

过滤步骤从考虑到以前的装运中收到的客户端或具有客户所要求避免的属性的筛选步骤删除样式。

对于每个剩余的样式,那么机器然后尝试评估这个特定客户将对这种特定风格的相对可能性。这是一个难题,我们以多种不同的方式方法 - 只有其中一些我们将在这里讨论。但一般来说,请注意,我们将每个项目多次标记不同算法的匹配分数,然后对它们进行排序。

在某种程度上,这个问题是一个经典的协同过滤问题:给定不同客户对不同风格的反馈,我们必须填补(稀疏)矩阵中的空白,以预测将一个风格发送给尚未收到它的客户的结果。因此,我们<一世>做使用一些标准的协作滤波算法(例如,那些喜欢你喜欢的东西也喜欢......)。

但是,与大多数协作过滤问题不同,我们有很多来自客户的自我描述和服装属性的显式数据。这有助于冷启动问题,如果我们使用考虑此数据的算法,还可以更准确。

其中一种方法是混合效应建模,这特别有用,因为我们的问题具有纵向性质:它让我们了解(并跟踪)客户在一段时间内的偏好,无论是个人的还是整体的。

除了许多可用的显式特性外,我们还可以从其他数据(结构化和/或非结构化)中推断出客户端和样式的一些特别相关的潜在(未声明的)特性,并使用它们来提高我们的性能。

例如,一位新客户可能告诉我们,她穿中号衬衫,但她的偏好究竟是中号衬衫还是中号衬衫呢?同样的问题也适用于我们库存中的特定款式的衣服。(请注意,在本例中,为了简单起见,我们将fit视为一维的,但实际上在Stitch Fix中,我们将其视为多维的。)manbetx万博体育app 官方下载

根据客户的合身反馈和购买历史,我们可以了解特定的客户和风格属于哪个范围。这些潜在特征可以用于我们的混合效应模型和其他地方。

除了传统的协作过滤,我们还需要考虑大量的图片和文本数据:库存风格照片、Pinterest公告板,以及我们从客户那里收到的大量书面反馈和请求说明。

有时很难用语言来描述你的风格偏好,但当你看到它时,你就知道了——所以我们让机器查看客户喜欢的衣服照片(比如Pinterest上的照片),并在库存中寻找视觉上相似的物品。我们使用训练有素的神经网络来获得“固定”图像的向量描述,然后计算这些向量与库存中每个物品的预计算向量之间的余弦相似度。

自然语言处理用于根据客户的请求、注释和来自其他客户的关于同一项的文本反馈对项目进行评分。

所有这些算法得分——以及许多其他类似的得分——在为人类专家造型师排序和提供选项时都被考虑在内。

相亲

一旦这台机器排名完成,发货请求就会被路由到人类。

人类比机器更加异质。机器都是一样的 - 只是选择一个。但人类的造型师将更适合某些客户而不是别人。所以我们使用算法来优化这场比赛。

为此,我们首先计算每位可用的造型师和每个客户在当前期间提出货物的匹配分数。此匹配分数是该客户端和造型师(如果有的话)之间历史的复杂功能,以及客户端的规定和潜在风格的偏好和造型师之间的关联。

随后,造型师分配优化问题类似于上面描述的仓库分配问题,除了(a)只需要考虑等待出货量的那些客户端,而(b)我们必须更频繁地重新运行优化问题以解释造型师的队列在工作时变化。

智能工具的智能人类

虽然机器非常适合机械计算的任务,但也有其他任务需要即兴发挥、社会规范的知识和与客户打交道的能力。这些任务属于人类的职权范围。这是我们的造型师执行只有人类能做的计算类型的地方。

在开始设计货物时,造型师要在一个定制的界面中完成一项任务,该界面旨在帮助她快速深入地了解客户。

我们的人类计算团队在这个界面上做了很多不同的测试,帮助我们理解造型师是如何做出决定的。

这些知识在许多方面帮助我们:改进我们的算法造型,改进我们的造型师培训程序,并不断改进造型师用来设计盒子的界面。

最后,发型师从库存清单中最终确定选择,并写一份个人说明,描述客户可能会如何为特定场合搭配这些衣服,以及/或他们如何将这些衣服与衣橱里的其他衣服搭配。

这样就完成了造型过程,现在可以处理货物了。

智能物流

在该处理步骤中可以找到各种操作研究问题。

例如,给定要装运的物品,取货员通过仓库填充箱子的最佳路径是什么?

该选择路径路由问题是NP-hard旅行商问题的一个实例。在实践中,我们甚至把这个问题更进一步,看看可以同时挑选的最优发货分组。

然后通过所要求的交货日期向客户发送货物。

客户体验第二部分:尝试和反馈

但这只是一个开始。

她打开盒子,满怀希望地高兴,留下她想要的东西然后送回去休息,然后<一世>告诉我们她对每一件衣服的看法.她和Stitch Fix之间有一种共生关系,她给了我们非常有洞察力的反馈,我们不仅使用更好的下一次服manbetx万博体育app 官方下载务她,也更好的服务其他客户。

大斗篷

要重新填写填写单个装运请求的过程:客户创建样式配置文件并请求货件,我们将它们与仓库相匹配,我们的造型算法和人类造型师一起工作,致力于选择款式,我们提供了一个注释发货,客户保持自己喜欢的东西,返回其余部分,并为我们提供反馈。

但这只是一批货。缩小范围,我们可以把系统看作一个整体。在这个层面上,业务的其他两个方面变得清晰起来:

(1)我们必须不断补充库存,为我们的客户购买和/或设计新的服装,这为从我们丰富的数据中获益提供了极好的机会;

我们必须预测客户的需求,以确保我们在正确的时间拥有足够的正确的资源。

让我们先看看我们如何预测客户的需求,然后我们将转而考虑库存管理和新风格的开发。

状态机

我们查看这种需求的方式之一(以及相关问题)是考虑每个客户端的每个客户端的“状态”。他们是一个新客户吗?他们是否通过推荐或自己抵达?他们的壁橱差不多了?在生活变化后,它们是否在建立衣柜的阶段?或者只是想尝试新的东西?根据他们的州,他们可能会有差异发货节奏,电子邮件联系等不同的愿望等。

我们跟踪我们与每个客户的每一个接触点——我们发送的每一个项目,我们得到的每一个反馈,每一个推荐,每一封电子邮件,等等。

通过这些数据,我们试图在这些不同状态时理解客户的状态及其需求。然后,我们可以检测状态的变化,并考虑可能的触发器。这种过程本身可以导致有助于我们让客户更快乐的洞察力。

一旦我们定义和理解状态,并检测和理解客户在它们之间的转换,我们就可以开发状态转移矩阵和马尔可夫链模型,使我们能够研究系统级的效应。

需求建模

这些马尔可夫链式模型的许多用途之一是预测未来的需求,这很重要,因为我们经常需要在仓库到达仓库之前购买库存。我们还必须确保我们有正确的资源和人类造型师在合适的时间提供。

库存管理

客户需求导致的库存损耗最终必须被新库存的购买所抵消。其中一个挑战是正确的采购时间,这样我们就可以为造型师保持足够的库存,同时最小化订购成本和持有成本(与库存曲线下面积相关的运营成本和资本机会成本)的总和。

满足未来的需求只是我们的库存管理挑战之一:我们还必须适当地分配给不同的仓库,偶尔捐赠旧库存以为新风格腾出空间。我们可以使用算法来帮助我们解决这些过程。

(请注意,情况比这个简单的示例要复杂得多,因为我们必须深入查看每个仓库中不同类型和风格的服装的可用性。但为了整洁起见,我们将坚持使用简单的插图。)

购买的款式多少?哪些物品应该去哪个仓库?应该捐赠哪些库存?

我们通过使用系统动力学模型来回答这些问题,将其与历史数据拟合,并在预测中给定量化的不确定性时,将其用于稳健优化。

新风格的发展

容量的挑战并不是库存更换的唯一考虑因素:我们还希望通过购买和开发新衣服的方式来不断提高库存,帮助我们的造型师给广大客户带来更大的乐趣。

为我们的针脚设计新风格独家品牌提供了一个很好的机会,为特定客户段定manbetx万博体育app 官方下载制新设计,往往被其他品牌提供服务。

我们从遗传算法中获得了灵感:我们使用重组和突变以及适应度测量——与自然母亲在自然选择的进化中使用的机制相同。

第一步是将每种风格视为一组属性(“基因”)。

然后考虑通过这种方式,考虑我们的大量样品,并考虑我们为每个人提供的客户反馈(“健身”)。

现在考虑通过从现有风格中重新组合属性并稍微突变它们来创建新样式。注意,可能的组合数量非常大(π<一世>K..一世).

在下一步中,我们偏离了各种规范遗传算法:而不是简单地选择适合,然后释放随机重组和突变作为下一代款式,我们有点挑剔,关于我们的库存。

我们首先开发一个模型,说明给定的属性集适合目标客户的程度。然后,我们使用这个模型来突出各种各样的我们认为有很高的爱情可能性的属性集。

然后,我们与我们的人类设计师合作,审查和完善这个系列,并最终产生下一代的风格。

这些新样式被生产出来,并提供给造型算法,然后被高兴的客户使用,然后演变的循环继续。

我们的算法团队有很多事情。

到目前为止,我们已经接触了我们三个垂直对齐的团队中的一些项目:造型算法,商品算法和客户端算法。

数据平台

数据平台团队提供数据和计算基础架构 - 以及内部SaaS产品的集合 - 允许垂直对齐的数据科学家有效和有效地进行分析,写入其算法,并将它们放入生产中。该平台很好地封装了数据分布,并行化,自动缩放,故障转移等属性。这允许数据科学家主要关注<一世>科学方面仍然享有可扩展系统的好处。并且,数据平台工程师专注于建筑物......嗯,平台。也就是说,它们不会受到业务逻辑和要求的负担,他们没有上下文。这是全堆栈数据科学家的工作。在它的心脏是“工程师不应该写的ETL”的想法。我们的数据平台团队使数据科学家能够从概念到生产的一路一直携带算法开发。

DOC_1066 LDA2VEC. S. j (1) ,年代 j (2) ,年代 j (3) S. j 服装矢量 j C 一世 (1) c 一世 (2) c 一世 (3) C 一世 一世 客户向量 一种 B. TX. C 1 2月 14 客户端数据 装运请求 项目的选择 设计师指出 客户反馈 仓库作业 客户 (1) 新风格的发展 库存管理 (2) 状态机 需求建模 仓库分配。 人体计算 相亲 Recomm。系统 物流优化 一世 j X Σ Σ D. ij X ij 酸处理 X ij { 0 1 } X ij S≤| | - 1 S. V,年代 i, j S, i j Σ X ij = 2 一世 j Σ 在哪里 D. ij = | P. 一世 (y) - P. j (y) | +| P. 一世 (x) - P. j (x) | + β ij 如果 K. 酸处理( P. 一世 (x) > γ K. )&( P. 一世 (x) < γ k + 1 ) & P. j (x) > γ K. )&( P. j (x) < γ k + 1 然后 β ij = 2 ( ( P. 一世 (x) - γ K. ),( γ k + 1 - P. 一世 (x) ), P. j (x) - γ K. ),( γ k + 1 - P. j (x) )) 其他的 β ij = 0 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 在哪里 X K. = 一些因素(例如季节,最近通过电子邮件发送,月亮阶段) P. 反式。我→j = 分对数 β 0. + β 1 X 1 + β 2 X 2 + ...... 客户国家 一世 Σ 需求 T. = N 我,不 P. (需求| 一世 问: ij = F shipping_cost ij 运送时间 ij inventory_match ij ,…… 0.235 0.172 0.624 0.382 0.832 客户 一世 仓库 j 成本 问: ...... 0.347 0.825 0.722 ...... 0.533 0.874 0.193 ...... ...... TX. 加利福尼亚州 WI. 作业 一种 0. 1 0. ...... 1 0. 0. ...... 0. 0. 1 ...... ...... TX. 加利福尼亚州 WI. 一世 j 一种 Σ Σ 一种 ij 问: ij 酸处理 一种 ij = 1 一世 j Σ 一种 ij { 0 1 } 我,我 ...... 一种 ij < K. j j 一世 Σ 成本矩阵 优化 解决方案 解决此客户行中的缺失元素...... 0.83 0.54 0.27 0.92 0.13 0.85 0.76 匹配 反馈 0.47 0.23 ...... 0.59 0.14 ...... 0.62 0.90 ...... 显式的 客户端功能 0.21 0.74 0.53 0.26 0.85 ...... ...... ...... ...... ...... 显式的 风格 特征 C 一世 S. j ...... ...... ...... ...... ...... 潜在的 风格 特征 ...... ...... ...... 潜在的 客户端功能 m ij = F fix_history ij 反馈 ij style_profile_alignment. ij ,…… 比赛的分数 m 0.235 0.624 0.172 ...... 0.825 0.347 0.722 ...... 0.193 0.874 0.533 ...... ...... 造型师 j 客户 一世 作业 一种 0. 1 0. ...... 1 0. 0. ...... 0. 0. 1 ...... ...... 一世 j 一种 Σ Σ 一种 ij m ij 酸处理 一种 ij = 1 一世 j Σ 一种 ij { 0 1 } 我,我 ...... 一种 ij < K. j j 一世 Σ P. correct_prediction = β ex_cell + α 1 P. 1 | 造型师 + α 2 P. 1 | 客户端 一种 B. log =. α + Xβ. + Zb B. N (0,σ) P. 1 - P. { { 固定的 影响 随机 影响 匹配得分 协同过滤 混合效应模型 卷积神经网络 NLP按要求说明 例如潜在的大小 S. m L. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 1 1 1 1 0. 0. 0. 0. 刺激 摄入 API load_my_data(params ...) run_my_algorithm(params ..) deploy_to_production(params ...) 余弦 相似 0.62 固定 图像 她喜欢 ...... 向量 描述 图像 的衣服 在库存 ...... 向量 描述 17 42. 35. 86 59. 17 42. 35. 86 59. 兴奋的 开始! 我有, 婚礼 即将到来的 HM。我的衣橱 是完整的 datetime 事件 第1州 国家2 国家3. 国家2 时间 需求 仓库 CA仓库 TX仓库 Wi仓库 PA仓库 GA仓库 补充 分配 交付 返回 (1) 新风格的发展 库存管理 模型 X T. = F X T. T. W. T. 在哪里 X =库存水平 =购买,分配和清关 决定 W. =需求预测 总成本 TC. 携带成本 H 订货费用 K. 订单数量 成本 每单位 TC * 问* 问* K. 需求 H 1/2 2.14 H / W. 1.27 1.32 H / W. 9.53 1.87 H / W. 3.93 1.52 H / W. 8.42 1.17 H / W. 2.55 2.83 H / W. 2.84 1.72 H / W. 4.42 1.19 H / W. 1.93 1.73 H / W. 6.14 1.32 H / W. 9.23 1.52 H / W. 7.26 2.31 H / W. 3.24 1.52 H / W. 8.42 1.52 H / W. 7.23 1.52 H / W. 8.42 壁橱 仓库 初始种群 选择 重组 突变 下一个人口

由制成
Eric Colson,Brian Coffey,Tarek Rached和Liz Cruz


Mike Bostock的<一种Href="https://d3js.org/" target="_">D3.js和Jim Vallandham的<一种Href="http://vallandingham.me/scroller.html" target="_">scrollytelling代码

灵感来自于
Stephanie Yee和Tony Chu的<一种Href="http://www.r2d3.us/visual-intro-to-machine-learning-part-1/" target="_">机器学习的视觉介绍那Victor Powell和Lewis Lehe's<一种Href="http://setosa.io/ev/" target="_">解释视觉项目那和伊利亚克松特的<一种Href="https://highlyscalable.wordpress.com/2015/03/10/data-mining-problems-in-retail/" target="_">邮寄零售中的数据挖掘问题

这个互动之旅的目标仅仅是在针脚修复上分享数据科学的一些多样化应用。manbetx万博体育app 官方下载可以肯定的是,我们难以限制在上面特征的十个故事的范围 - 在生产中已经存在,甚至更仍然是陷害的。然而,我们称之为应用数据科学的大部分都是一种多样化的优雅微观经济理论。在历史上,在历史上缺乏数据和计算资源实际上适用它们,这些概念已经被历史上被禁止;目前限制概念仅仅是理论的最终堡垒是人和文化(组织难以改变)。然而,针脚修复似乎manbetx万博体育app 官方下载相对不含这种障碍。也许我们所做的唯一特别是通过独特的商业模式赋予自己丰富的数据,然后促进数据科学家可以成功的环境。从那里,好奇心,创造力和对休息的影响铺平的愿望。