Amazon SageMaker Canvas產(chǎn)品測評——人人都是“業(yè)務(wù)分析師”

1 評論 3669 瀏覽 8 收藏 29 分鐘

編輯導(dǎo)語:可能每個人的日常工作中,都或多或少地會涉及到業(yè)務(wù)分析模塊,那么在社會普遍對效率有所追求的情況下,我們在日常業(yè)務(wù)中,是否可以借用工具來實現(xiàn)業(yè)務(wù)分析價值的最大化?也許,亞馬遜云科技推出的Amazon SageMaker Canvas就屬于這類型工具之一。本文作者就對其進行了測評體驗,一起來看一下吧。

一、事實是,我們都在做業(yè)務(wù)分析

無論你是否意識到,我們每天的工作實際上都包含了業(yè)務(wù)分析。

試著想象以下這些場景:

  1. 移動游戲運營想提升付費用戶比例,會通過分析用戶使用行為,得出影響付費的因素,從而采取針對性的運營手段。
  2. 超市老板進貨時,會綜合考慮以往銷售情況、地段、季節(jié)等因素,分析出每件商品要備的庫存量。
  3. 房屋中介在管理客戶時,會根據(jù)客戶的個人情況、背景資料和意向信息分類跟進,提升成交量。

盡管上述場景的主人公都并非專業(yè)的業(yè)務(wù)分析師(business analyst),但他們知道怎樣讓自己做出更聰明的判斷。

而這恰恰就是業(yè)務(wù)分析的本質(zhì):通過收集和處理業(yè)務(wù)數(shù)據(jù),分析得出某種趨勢、模式或根本原因,并根據(jù)這些洞察做出數(shù)據(jù)驅(qū)動的業(yè)務(wù)決策 [1]。

二、可是問題是……

盡管我們都或多或少在用自己的方式,通過“業(yè)務(wù)分析”來完成工作,但是問題也在一一浮現(xiàn)。

1. 期望更進一步

數(shù)據(jù)量大、影響因素多、缺乏專業(yè)的建模能力等等,都會使我們在實際分析業(yè)務(wù)時往往停留在表面,而錯過了挖掘背后更深的洞見。

比如,在分析影響用戶付費的因素時,我們的運營同學(xué)定位到多種相關(guān)的行為指標(biāo):

  • 用戶來源:來源于渠道A的用戶付費比例更高;
  • 日均活躍時長:活躍的用戶付費比例更高;
  • 日均互動數(shù):互動多的用戶付費比例更高;
  • 是否參與激勵活動:參與過的用戶付費比例更高。

以上的結(jié)論雖能幫我們判斷出哪些特性的用戶更具有付費意愿,但想進一步知道:哪些指標(biāo)影響更大,指標(biāo)間是否會相互影響,能否在下次運營活動前就能預(yù)測出最終效果,往往還是無從下手。

2. 結(jié)論對么?能不能快速驗證

或許憑借業(yè)務(wù)經(jīng)驗,我們能覺察出某一指標(biāo)是決定用戶付費的關(guān)鍵因素,或是能預(yù)估到下一個季度的銷售情況。

但問題是:能否通過數(shù)據(jù)來快速驗證我們的結(jié)論;或者是否有更專業(yè)的方法來論證我們的猜想。

3. 溝通的成本

此外,當(dāng)我們期望將自己的洞察分享給團隊其他伙伴,又開始思考要怎樣有效地闡明自己的判斷。

或是當(dāng)我們的洞察可以提煉出一套能長期執(zhí)行的決策模型時,要如何讓數(shù)據(jù)科學(xué)家或算法工程師在此基礎(chǔ)上進一步優(yōu)化并部署發(fā)布。

三、更好的方式:工具助力分析

幸運的是,很多專業(yè)的服務(wù)團隊也發(fā)現(xiàn)了以上這些問題,從不同角度為我們提供了解決方案。

1. 入門級全能選手:Excel

Excel絕對是人手一個的必備辦公軟件,它簡單易用,也是很多原始數(shù)據(jù)的存儲格式,方便加工處理。我們可以通過簡單的函數(shù)處理、數(shù)據(jù)透視以及可視化圖標(biāo)等功能,快速地發(fā)掘數(shù)據(jù)中一些潛在的信息。適用于數(shù)據(jù)量不大,較簡單的統(tǒng)計、分析和預(yù)測。

2. 專精可視化分析:Tableau、PowerBI

主打拖拽操作和全程可視化,幫助我們在數(shù)據(jù)準(zhǔn)備(包括多表合并、數(shù)據(jù)清理等)和數(shù)據(jù)展現(xiàn)上實現(xiàn)自助,大大降低普通用戶與數(shù)據(jù)交互的門檻。更適合團隊內(nèi)共享數(shù)據(jù)洞察。

3. 分析預(yù)測大師:Python、各大公司提供的云上AI服務(wù)、專業(yè)BI軟件等

相較于前2類,這一類產(chǎn)品我們可能比較陌生,多是數(shù)據(jù)科學(xué)家在使用。

雖然它們在海量數(shù)據(jù)處理、統(tǒng)計預(yù)測、數(shù)據(jù)建模、數(shù)據(jù)挖掘等方面具有絕對的優(yōu)勢,但也正因為專業(yè)度過高,需要編寫代碼或機器學(xué)習(xí)等專業(yè)知識,一般人很難上手。

所以不會寫代碼、零經(jīng)驗就真的無法享受到機器學(xué)習(xí)帶來的超強助攻么?

不慌,亞馬遜云科技為我們帶來了解決方案:

亞馬遜云科技的機器學(xué)習(xí)服務(wù)下的SageMaker Canvas平臺,主打0代碼機器學(xué)習(xí)預(yù)測服務(wù),讓普通從業(yè)者也能方便地構(gòu)建機器學(xué)習(xí)模型來獲取洞察和進行預(yù)測。

接下來,就一起來體驗下 Amazon SageMaker Canvas (下面簡稱Canvas)的實操效果吧。

四、Canvas初體驗

體驗官:未接觸過機器學(xué)習(xí)的產(chǎn)品經(jīng)理。

體驗場景:這里設(shè)想了2個場景,分別看看Canvas在業(yè)務(wù)獲取洞察和進行預(yù)測上的表現(xiàn)。

場景一:獲取洞察

1)背景

公司引入外部供應(yīng)商承接項目時,往往會先經(jīng)過競標(biāo)流程。

競標(biāo)時會將同樣的測試任務(wù)指派給多個供應(yīng)商完成,依據(jù)返回的效果判斷最終哪幾個供應(yīng)商中標(biāo)。

2)目標(biāo)

哪些是決定供應(yīng)商是否中標(biāo)的關(guān)鍵因素。

3)體驗過程

① 數(shù)據(jù)導(dǎo)入

通過業(yè)務(wù)分析篩選出可能影響供應(yīng)商中標(biāo)的字段包括:

  • task_id:任務(wù)編號(一個任務(wù)可以指派給多個供應(yīng)商)
  • total_num:任務(wù)的數(shù)據(jù)總量
  • task_type:任務(wù)類型
  • if_standard:是否為標(biāo)準(zhǔn)任務(wù)(標(biāo)準(zhǔn)任務(wù)才有報價單價)
  • unit_price:供應(yīng)商報價的單價
  • tech_percent:技術(shù)分占比;技術(shù)分占比高表示更注重技術(shù)評分
  • busi_percent:商務(wù)分占比;商務(wù)分占比高表示更注重價格便宜
  • supplier_id:供應(yīng)商編號
  • bid_result:是否中標(biāo)
  • est_time:預(yù)計任務(wù)總工期
  • deliver_time:本次交付的時間
  • deliver_score:本次交付的技術(shù)評分

取的是最近3個月的數(shù)據(jù),一共是一個csv文件,共12列*1068行。

來到Canvas平臺,先按指引配置了支持本地上傳能力后,直接將表拖拽上傳就OK了。

整體的數(shù)據(jù)導(dǎo)入流程還是比較順暢的。不過因為我最開始的原始數(shù)據(jù)是中文的,而Canvas暫時不支持中文字符的顯示,所以這里又返回重新處理了一遍數(shù)據(jù)。

② 創(chuàng)建模型

切換到【Build】模塊后,可以方便地在下方預(yù)覽關(guān)聯(lián)的數(shù)據(jù)集字段:包括字段的缺失比例、是否有和數(shù)據(jù)類型不匹配的值、有多少唯一值、平均數(shù)/眾數(shù)等等??梢院芎玫貛椭覀兛焖倭私庹w數(shù)據(jù)情況。

當(dāng)選擇好目標(biāo)字段“bid_result”后,系統(tǒng)會根據(jù)所選目標(biāo)列的類型自動推薦合適的模型“2 category prediction”;當(dāng)然你也可以根據(jù)實際情況進行修改。目前看到Canvas給出的模型大類包括:分類預(yù)測、數(shù)值模型和時間序列預(yù)測。

可以在quick build之前先預(yù)覽模型,快速獲得模型預(yù)估準(zhǔn)確率和各個字段的影響分值。

可以看出,影響供應(yīng)商是否中標(biāo)的最重要的前3個因素是supplier_id、deliver_score和deliver_time,而最不重要的2個因素是task_id和if_standard。

這樣的結(jié)論基本符合實際情況:

  • 一些供應(yīng)商的交付能力比較高,所以更容易中標(biāo)。
  • 供應(yīng)商得分和交付時間本身就是定標(biāo)時的重點考核依據(jù)。
  • 而任務(wù)編號以及是否屬于標(biāo)準(zhǔn)任務(wù)屬于任務(wù)本身的屬性,應(yīng)該影響比較小。

我們可以綜合Canvas給出的字段影響分值以及業(yè)務(wù)實際情況,來篩選最終用于訓(xùn)練的字段:

比如我嘗試取消勾選了impact值最小的task_id和if_standard,更新后發(fā)現(xiàn)模型預(yù)測準(zhǔn)確性反而降低了。這也許是因為在實際情況,任務(wù)編號或是否屬于標(biāo)準(zhǔn)任務(wù)可能會影響供應(yīng)商的選擇范圍。

又取消勾選了那些在試標(biāo)前未知的因素(包括est_time、deliver_score和deliver_time),現(xiàn)在最重要的前3個因素變成了供應(yīng)商編號、報價單價和任務(wù)總數(shù)據(jù)量。

有一點疑惑的是,我發(fā)現(xiàn)系統(tǒng)會自動給出字段的數(shù)據(jù)類型且不支持修改。但是有部分字段的數(shù)據(jù)類型是不符合預(yù)期的:比如supplier_id被判斷為了numeric類型,但該字段本身應(yīng)該屬于categorical,這可能是因為supplier_id的取值是數(shù)字的原因。

想了解錯誤的數(shù)據(jù)類型會不會對模型準(zhǔn)確率造成影響,所以我又新建了一個模型,將supplier_id的取值修改為了N1、N2、N3…,這時data type成功變成了categorical。但預(yù)覽后發(fā)現(xiàn)模型的預(yù)測準(zhǔn)確率其實沒有太大的變化。

確認(rèn)沒有影響后,使用quick build看下最終生成的模型效果。

③ 模型分析

Quick Build得到的模型準(zhǔn)確率和Preview Model一致,但是可以看到各個字段更詳細的影響度分布和模型評分。

a)supplier_id

supplier_id的影響度是用箱型圖呈現(xiàn)的??梢钥吹焦?yīng)商N1最易中標(biāo),供應(yīng)商N2和N3相對容易中標(biāo),供應(yīng)商N5和N8則相對不容易中標(biāo)。這一洞察能引導(dǎo)我們進一步分析這些供應(yīng)商的能力或資質(zhì)有哪些差異,從而更早篩選出能力優(yōu)的供應(yīng)商。

b)unit_price

報價這一塊沒有得到很好的洞察,貌似整體看都是偏向中標(biāo)的。

還是之前的那個疑問,unit_price的數(shù)據(jù)類型為什么會被系統(tǒng)自動定義為Categorical(分類)呢,是因為它的unique取值只有46個么?

c)total_num

total_num的影響度是用散點圖呈現(xiàn)的。粗略看,好像是任務(wù)總數(shù)據(jù)量過大時不容易中標(biāo)。

不過因為過多的點集中在1~200001這個區(qū)間,不容易看出當(dāng)任務(wù)總數(shù)據(jù)量少時的影響。這里如果能支持調(diào)節(jié)橫坐標(biāo)區(qū)間的話,可能會更加方便。

最后來看一下模型的混淆矩陣(誤差矩陣):

總體來說,生成的模型在預(yù)測未中標(biāo)時的準(zhǔn)確率更高(可能是因為原始數(shù)據(jù)里Yes的比例更高吧)。

④ 模型預(yù)測

從上面的分析模塊,可以大致獲得以下2個洞察:

  • 供應(yīng)商N1相對容易中標(biāo),供應(yīng)商N5和N8則相對不容易中標(biāo);
  • 任務(wù)總數(shù)據(jù)量過大時不容易中標(biāo)(相對影響較?。?/li>

我們可以通過【Predict】這個模塊快速驗證一下。

預(yù)測方式包括2種:批量預(yù)測和單行預(yù)測。

a)單行預(yù)測

各個字段的默認(rèn)值應(yīng)該取的是平均數(shù)/眾數(shù)。右側(cè)顯示當(dāng)前輸入值下的中標(biāo)結(jié)果預(yù)測以及平均預(yù)測結(jié)果。

當(dāng)修改supplier_id到N8后,可以看到當(dāng)前場景中標(biāo)結(jié)果預(yù)測是No,與猜測一致。

當(dāng)修改total_num到1000000后,預(yù)測結(jié)果沒變。但是新的預(yù)測值相對于平均預(yù)測結(jié)果來說,No的概率變高了一點。

可以看到,單行預(yù)測能方便地更改輸入值來更新對應(yīng)的預(yù)測結(jié)果,以及觀察新的預(yù)測值相對于平均預(yù)測結(jié)果的變化情況。

b)批量預(yù)測

可以選擇一個字段匹配的數(shù)據(jù)集來批量生成預(yù)測值以及對應(yīng)的概率。因為這里我用的是已有數(shù)據(jù),可以對比看到準(zhǔn)確率還是挺高的,并且和洞察基本吻合。

場景二:預(yù)測

1)背景

超市老板進貨時,會綜合考慮以往銷售情況、店鋪位置、季節(jié)等因素,來預(yù)估未來各個商品的銷售情況,從而提前準(zhǔn)備合適的庫存。

2)目標(biāo)

預(yù)測未來7天各個店鋪不同類別商品的銷售量。

3)體驗過程

① 數(shù)據(jù)導(dǎo)入

這里用的數(shù)據(jù)來源是kaggle上的store sales數(shù)據(jù) [2]。

影響物品銷售量的因素包括:

  • 時間——季節(jié)或周期性波動
  • 是否有促銷活動
  • 店鋪位置
  • 商品種類
  • 歷史銷售情況
  • 一些其他可能的影響:比如工資漲幅、地震、油價等。

由于Canvas的免費測試單元格只有100w,所以先線下對數(shù)據(jù)做了簡化處理。

最終選擇了3個表。

train.csv

  • prod_id:商品編號(包含店鋪信息和商品類別)
  • sell_date:銷售日期
  • store_nbr:店鋪編號
  • prod_family:商品類別;共6個
  • prod_sales:商品銷售額
  • onpromotion:打折幅度

一共是6列*32670行。

stores.csv

  • store_nbr:店鋪編號
  • store_city:店鋪所在城市;共6個
  • store_type:店鋪分類;共4類

一共是3列*15行。

holidays_events.csv

  • sell_date:銷售日期
  • holiday_type:節(jié)假日類型;共2類

一共是2列*84行。

因為數(shù)據(jù)來源于3個不同的表,所以這次嘗試了一下Canvas的join功能。

Join預(yù)覽這里的統(tǒng)計只是顯示前100個的,這里給體驗造成了2個阻礙:

  • 當(dāng)我看到holiday_type的Distinct values為0時,一開始以為3個表join沒有成功。
  • 不能直觀看到不同的join方式所形成的數(shù)據(jù)集差異。

字段名這里是可編輯框,但實際是不支持修改的。如果像Tableau那樣支持修改的話,會更方便。

數(shù)據(jù)導(dǎo)入這里還有一個問題是后來發(fā)現(xiàn)的:到了生成模型的時候,遇到了一個這樣的錯誤提示“Field state should not contains a reserved word”。

上網(wǎng)搜索后才發(fā)現(xiàn)預(yù)測模型對上傳的數(shù)據(jù)集字段名有一些限制,所以又要返回第一步進行修改。這個如果能在一開始導(dǎo)入的時候做好提醒,或者出錯后能直接修改字段名就好了。

最終join完成后,3張表變成了一個9列*33660行的大表,可以進入下一步了。

② 創(chuàng)建模型

這里的數(shù)據(jù)集字段預(yù)覽出現(xiàn)了一個提示:onpromotion這個字段有“Missing Values”,提示說源數(shù)據(jù)集中的某些字段缺少未來值,可能會造成預(yù)測準(zhǔn)確度偏低,建議更新數(shù)據(jù)集。

這個提示還是有點疑惑的:比如為什么只有onpromotion需要給出未來值,返回后更新數(shù)據(jù)集的入口在哪里。在查詢了使用手冊 [3]后也沒有得到很好的說明,所以暫時沒有做處理。

看了一下目標(biāo)字段prod_sales有42%的值為0,總體分布圖呈現(xiàn)右偏斜。

這里還發(fā)現(xiàn)了新功能“數(shù)據(jù)清洗”,可以快速為一些缺少值的數(shù)據(jù)設(shè)置默認(rèn)值。

最后為時間序列預(yù)測模型配置好參數(shù)后,直接standard build(暫僅支持)就好了。

③ 模型分析

可能是因為沒有處理missing value的問題,最后生成的模型準(zhǔn)確率比較低。

時間序列預(yù)測模型的分析維度和二分類預(yù)測不太一致,它主要是選取了2個維度:

  • 模型整體的WAPE準(zhǔn)確度(加權(quán)絕對百分比誤差 [4])
  • 各字段對預(yù)測值的影響度:onpromotion、holiday_type和store_city會提升預(yù)測值;而prod_family和store_type會降低預(yù)測值。

可以理解打折促銷以及節(jié)假日能提升商品的銷量;但是為何店鋪所在地能提升銷量,而商品類型和店鋪類型會降低銷量,就需要進一步分析了。

④ 模型預(yù)測

最后來看看模型預(yù)測的效果吧。

預(yù)測方式也包括2種:全部預(yù)測和單行預(yù)測。

a)單行預(yù)測

這里只需要選擇待預(yù)測的字段值(某個店鋪的某類商品)就可以自動生成相應(yīng)的時間序列預(yù)測模型。

因為我之前配置的預(yù)測天數(shù)是7,這里展示了14天的數(shù)據(jù)(包括預(yù)測前7天)。

紫色的線為給出的預(yù)測值,還有對應(yīng)的上下限。預(yù)測結(jié)果總體還是比較直觀的,但是由于之前未處理missing數(shù)據(jù)的原因,預(yù)測準(zhǔn)確度不高。

b)全部預(yù)測

點擊后需要運行的時間比較久,而且這里沒有限制多次預(yù)測,不知道會不會影響預(yù)測速度。

耐心等待后發(fā)現(xiàn)最后效果如下:P50應(yīng)該是給出的預(yù)測結(jié)果,p10和p90是對應(yīng)的上下限。

整體評價

整體來說,作為一個小白用戶能全靠自己摸索走完整個模型創(chuàng)建、分析和預(yù)測的流程,實際體會一下機器學(xué)習(xí)在業(yè)務(wù)分析中的作用,還是很有成就感的。

當(dāng)然出于對產(chǎn)品能不斷優(yōu)化完善的期望,這里從用戶體驗和產(chǎn)品功能2個角度給出了個人評價。

1)用戶體驗

① 加分項

  1. 易用性強:點擊式、可視化界面操作,小白用戶也能快速上手。
  2. 流程易學(xué):能一步步引導(dǎo)用戶完成 數(shù)據(jù)選擇 – 創(chuàng)建模型 – 模型分析 – 模型預(yù)測 4個步驟。
  3. 布局合理:頁面設(shè)計(圖標(biāo)、提示文案、按鈕等)十分清晰合理,能快速找到所需的信息和功能。

② 待提升項

a)提示不夠及時

  • 比如模型已經(jīng)開始運行了,等待幾分鐘后卻提示要新增配置forecast。
  • 或者模型運行后告知字段和系統(tǒng)保留字段有沖突,要返回第一步修改數(shù)據(jù)。

b)容錯性一般

比如誤點了standard build或多次點擊prediction后不支持取消,需要等待幾小時。

c)有一定的學(xué)習(xí)成本

  • 對于非專業(yè)數(shù)據(jù)分析人員,一些提示或說明比較迷惑。
  • 普通用戶可能不知道如何通過箱型圖、散點圖、混淆矩陣等進行分析獲取洞察。

d)對中文的支持度不夠好

  • 平臺目前全英文展示,部分提示或說明理解起來比較困難。
  • 不支持帶中文字符的源數(shù)據(jù)。
  • 時間序列模型的節(jié)假日模式也不支持中國。

e)延遲感偏強

部分操作響應(yīng)速度比較慢,也遇到過幾次長時間loading的情況。

2)產(chǎn)品功能

① 超預(yù)期

a)數(shù)據(jù)導(dǎo)入

靈活度高:可支持多個數(shù)據(jù)表自由join。

b)創(chuàng)建模型

  • 可視化程度高:用戶可以方便地預(yù)覽數(shù)據(jù)集字段的各項統(tǒng)計指標(biāo)。
  • 自動化程度高:可以根據(jù)用戶所選的預(yù)測目標(biāo)列準(zhǔn)確推薦最合適的訓(xùn)練模型。
  • 模型預(yù)覽能力:能快速獲得模型預(yù)估準(zhǔn)確率和各個字段的影響分值。
  • 支持Quick build和Standard build2種方式,滿足不同場景的模型創(chuàng)建需求。

c)模型分析

  • 可視化指標(biāo)豐富:包括各個字段的影響度分布箱型圖、散點圖、模型整體的混淆矩陣等。
  • 能方便地復(fù)制或下載數(shù)據(jù)圖表,與他人共享。

d)模型預(yù)測

支持批量和單行2種方式,滿足不同場景的預(yù)測需求。

② 待滿足

a)數(shù)據(jù)導(dǎo)入

沒有發(fā)現(xiàn)支持更新數(shù)據(jù)的入口。

b)創(chuàng)建模型

  • 對已導(dǎo)入數(shù)據(jù)的處理能力較弱。
  • 缺少不同模型對原數(shù)據(jù)要求的說明。
  • 不支持設(shè)置目標(biāo)預(yù)測對象為組合列。

c)模型分析

  • 不能給出進一步優(yōu)化預(yù)測準(zhǔn)確率的建議。
  • 支持用戶自定義分析的配置較少。
  • 一些專業(yè)的統(tǒng)計圖表缺少像Tableau數(shù)據(jù)解釋 [5] 類似的功能,幫助用戶更好地發(fā)現(xiàn)洞察。

d)模型預(yù)測

  • 預(yù)測失敗時缺乏解釋或指引,只能重試。
  • 缺少對預(yù)測結(jié)果較為詳細的說明,比如一些新增的字段含義是什么、為什么批量預(yù)測表最后有多行空值等。

五、總結(jié)

回歸最開始的問題,Canvas真的能使普通從業(yè)者進行專業(yè)的業(yè)務(wù)分析,方便地構(gòu)建機器學(xué)習(xí)模型來獲取洞察和進行預(yù)測么?

從體驗結(jié)果來看,能,但也不全能。

現(xiàn)階段,Canvas的確能做到讓普通用戶也能0代碼通過機器學(xué)習(xí)從已有數(shù)據(jù)分析生成可用的預(yù)測模型。但最終能否獲取有價值的洞察,預(yù)測是否準(zhǔn)確,仍會受很多因素的影響:比如輸入數(shù)據(jù)的質(zhì)量、用戶自身的統(tǒng)計學(xué)知識和分析能力等等。

從普通業(yè)務(wù)人員到真正的業(yè)務(wù)分析師,工具只是我們強大的助手,正如Amazon SageMaker Canvas 并非智者本身而是其引路人。

引用

[1]?https://www.oracle.com/cn/business-analytics/what-is-business-analytics/

[2] https://www.kaggle.com/competitions/store-sales-time-series-forecasting/data

[3] https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-make-time-series-forecast.html

[4] https://aws.amazon.com/cn/blogs/china/measuring-forecast-model-accuracy-to-optimize-your-business-objectives-with-amazon-forecast/

[5] https://help.tableau.com/current/pro/desktop/zh-cn/explain_data_basics.htm

 

本文由 @咯咯咯 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Pexels,基于CC0協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 很漲知識的一篇文章!就是小白的我看著還是比較懵的哈哈

    來自廣西 回復(fù)