解構(gòu)電商、O2O:挖掘用戶的“潛意識” – 推薦系統(tǒng)
編輯導(dǎo)語:隨著人們?nèi)找嫣岣叩纳钏?,對于商品的要求也都趨于個性化,個性化的推薦系統(tǒng)也就順勢而生。這篇文章作者詳細(xì)拆解了推薦系統(tǒng)的運(yùn)作方式以及用戶的“潛意識”,感興趣的小伙伴一起來看看吧~
隨著人們?nèi)找嫣岣叩纳钏?,對于商品的要求也都趨于個性化。每個人對于商品的喜好都有著自己的習(xí)慣,而抓住習(xí)慣并養(yǎng)成也是電商平臺推廣宣傳的有效手段,就這樣推薦系統(tǒng)應(yīng)運(yùn)而生。
推薦顧名思義按照用戶的喜好和行為推薦可以滿足用戶訴求和需要的商品以求達(dá)到用戶購買的目的。廣義上來講所有主動推送給用戶的商品信息都可以視作推薦的范疇,而這里面具有商業(yè)變現(xiàn)能力的商品推薦又叫做廣告。廣告的管理一般會由單獨(dú)的廣告系統(tǒng)負(fù)責(zé),下文講述的推薦主要指除廣告以外的商品推薦內(nèi)容。
一、推薦的基礎(chǔ)信息
推薦系統(tǒng)從根本上是為了解決營銷選品決策的問題,所有就需要有一些指標(biāo)來衡量和評估效果為后續(xù)的推薦策略參數(shù)調(diào)整和方式進(jìn)行優(yōu)化提過依據(jù)。常見的推薦系統(tǒng)的指標(biāo)和搜索的比較類似包括準(zhǔn)確率、召回率以及新穎度等。
- 準(zhǔn)確率(Precision):表示召回的商品中推薦正確的商品占整體召回商品的百分比。
- 召回率(Recall):表示召回的商品占整體商品的百分比。
- 新穎度:表示推薦長尾區(qū)間的商品情況,如果推薦商品都是熱門商品,即新穎度很低,反之則新穎度較高。
- CTR:點(diǎn)擊率,也是廣告系統(tǒng)的衡量指標(biāo)之一。
- CVR:轉(zhuǎn)化率,指從用戶點(diǎn)擊推薦商品到完成購買的轉(zhuǎn)化率。公式為CVR=(轉(zhuǎn)化量/點(diǎn)擊量)*100%
我們接下來看下推薦系統(tǒng)在電商平臺用戶端都有哪些常見展現(xiàn)形式,如下圖:
推薦的使用一般多放在售前環(huán)節(jié)通過瀏覽時的推薦提高用戶的購買率,少部分頁會放在購買完成后提示用戶增加二次消費(fèi)的幾率。電商是全天候的售賣平臺,但在實(shí)際消費(fèi)的時候用戶會有不同的購買場景。不同的購買場景對于推薦的要求也是有差異的。
- 時間維度:包括節(jié)假期、促銷周期等,對于020甚至還需要更細(xì)分的時間劃分,比如早中晚、加班等。不同的時間維度用戶對于購買的訴求不一樣,推薦給用戶的商品也不應(yīng)該完全相同。
- 地點(diǎn)維度:地點(diǎn)維度更多會影響到發(fā)貨的周期,本地倉庫/商家是否有貨確定是否可以早一點(diǎn)送到用戶的手里。
推薦系統(tǒng)要達(dá)到場景推薦差異化的情況就要根據(jù)不同情況的獲取不同的數(shù)據(jù)進(jìn)行分析處理。推薦系統(tǒng)的底層數(shù)據(jù)源和搜索一樣都是來自于各個業(yè)務(wù)系統(tǒng)的,推薦系統(tǒng)本身并不會產(chǎn)生業(yè)務(wù)數(shù)據(jù)。推薦系統(tǒng)主要是分析人與物之間的關(guān)系,所以數(shù)據(jù)都是圍繞這兩個點(diǎn)進(jìn)行延伸。
人指的就是用戶本身的信息。包括用戶自身的基礎(chǔ)信息比如用戶名、聯(lián)系方式、地址、收藏。還有消費(fèi)信息比如訂單信息、會員信息等。這些信息可以對于用戶在系統(tǒng)中的實(shí)體進(jìn)行初步的構(gòu)建,以便推薦系統(tǒng)可以通過這些信息分析出人的“特性“。
而物品也就是商品信息。商品數(shù)據(jù)主要是商品的基礎(chǔ)信息、促銷信息。初次之外對于埋點(diǎn)的數(shù)據(jù)也需要進(jìn)行統(tǒng)計(jì),結(jié)合上述內(nèi)容一起分析。埋點(diǎn)信息包括訪問數(shù)據(jù),點(diǎn)擊數(shù)據(jù)等。
很多時候一些新的用戶和新上架商品并沒有歷史的數(shù)據(jù)可以追溯,這樣就無法提取特征,也就是我們常說的“冷啟動“。冷啟動的問題也會影響到使用哪種推薦策略,因?yàn)椴煌耐扑]策略可能對于數(shù)據(jù)量的要求也不一樣。
某一些策略則依賴于大量的數(shù)據(jù)進(jìn)行分析,這個時候沒有處理冷啟動的問題就無法積累數(shù)據(jù)。為了應(yīng)對冷啟動的問題人們也找到了一些方法,根本思路就是通過變形或者轉(zhuǎn)化來獲取特殊的數(shù)據(jù)源來解決無數(shù)據(jù)的問題。
第一種方式提供相對穩(wěn)定的數(shù)據(jù)篩選結(jié)果,最為常見的例子就是熱銷排行榜。這種方式是假定所有用戶屬于一個整體的集合,在這個集合下最關(guān)注的商品就是熱銷品。
考慮到人群的從眾心理在新用戶前期通過推薦熱銷商品其實(shí)是一種相對穩(wěn)妥的方式,實(shí)際證明新用戶在冷啟動階段對于熱銷品有更大的購買動力,而老用戶則也會更多考慮長尾推薦。在數(shù)據(jù)收集到一定程度后再將推薦數(shù)據(jù)轉(zhuǎn)化為更為精細(xì)的個性化推薦內(nèi)容。很多平臺的發(fā)現(xiàn)頁面就是通過這種方式去處理早期數(shù)據(jù)不全的情況。
第二種則是利用用戶前期注冊時留下的信息進(jìn)行判斷。目前很多平臺都會在初始階段讓用戶填寫一些個人信息和興趣愛好,這種手段在音樂或閱讀類平臺用的會比較多。
通過用戶填寫的信息來初步構(gòu)建特征進(jìn)行商品推薦的匹配。除了用戶本身在平臺填寫的信息外,目前絕大多數(shù)都會使用第三方登錄,比如微信、支付寶等。通過第三方登錄在用戶授權(quán)的情況下也可以導(dǎo)入部分用戶行為數(shù)據(jù)輔助分析用戶特征。
但這種推薦由于信息的匱乏會造成顆粒度很粗,導(dǎo)致可能很大一部分用戶看到的商品是完全一樣,但實(shí)際上他們本身的群體還是有一定區(qū)別的。
此外也可以結(jié)合上面兩種情況來獲取信息。比如提供一些特定分類如熱銷品的商品讓用戶進(jìn)行選擇喜好,根據(jù)用戶的選擇匹配相似的商品數(shù)據(jù)。這樣對于冷啟動時可以更好的提供相對精準(zhǔn)的推薦數(shù)據(jù)。
不過這個方法對于前期提供選擇的商品集合有一定的要求,不能過分的從單一的分類中獲取商品,平臺要提供更品類豐富的選項(xiàng)以便后續(xù)分析時候可以更加準(zhǔn)確。
上面講到的是新用戶冷啟動的數(shù)據(jù)獲取方案,除了用戶的冷啟動還有商品的冷啟動。對于上新的商品我們?nèi)狈τ谏唐焚徺I人群的數(shù)據(jù)特征,就需要通過冷啟動獲取關(guān)聯(lián)數(shù)據(jù)如下圖。獲取數(shù)據(jù)的思路和用戶基本類似,最基礎(chǔ)的方式就是提供特殊標(biāo)簽如新品。通過標(biāo)簽提高權(quán)重已達(dá)到展示推薦的目的。
此外由于商品的信息是由內(nèi)部運(yùn)營人員進(jìn)行錄入,所以我們可以通過人為的方式獲取到更多商品的基礎(chǔ)信息。推薦系統(tǒng)可以通過關(guān)鍵詞或者標(biāo)簽Tag的方式獲取商品的關(guān)鍵信息,計(jì)算新品與老品之間的相似度來進(jìn)行推薦。
同時我們也可以通過獲取第三方的數(shù)據(jù)來判斷用戶情況,如手機(jī)安裝時獲取已安裝應(yīng)用情況判斷性別、年齡、愛好等信息??偨Y(jié)下來冷啟動主要是通過三個方向獲取數(shù)據(jù):引導(dǎo)用戶自填、運(yùn)營人工分類、第三方獲取。
二、推薦策略的“演變”
判斷用戶喜歡的商品進(jìn)行推薦就是建立人、商品的關(guān)系。所有上述提到的元數(shù)據(jù)都需要根據(jù)推薦策略進(jìn)行關(guān)聯(lián)。推薦的策略發(fā)展至今已經(jīng)由簡單的概率分析延伸為現(xiàn)在比較流行的深度學(xué)習(xí)。我們講到推薦的核心就是建立人與商品的關(guān)系,關(guān)系靠近的則是認(rèn)為他們相關(guān)度更高,關(guān)系較遠(yuǎn)則認(rèn)為相關(guān)度更低。
在人與商品的關(guān)系中還包含人與人、商品與商品的關(guān)系,由此構(gòu)建出一個關(guān)系圖譜。比如我們常說的用戶畫像就是設(shè)定人與人關(guān)系的基礎(chǔ)數(shù)據(jù)。按照人和商品我們可以建立一個二維的坐標(biāo)。
根據(jù)坐標(biāo)遠(yuǎn)近來判斷相關(guān)度進(jìn)而產(chǎn)生推薦的商品信息。由于推薦系統(tǒng)比一般的電商業(yè)務(wù)系統(tǒng)對于算法的要求要高,所以這里我們更多從產(chǎn)品維度來介紹下推薦策略和算法的一些情況。如果大家想深入了解一些算法可以自行研究。
上面說到推薦策略即是判斷人、商品之間的各種關(guān)系,關(guān)系越近則認(rèn)為匹配度越高。那如何去判斷關(guān)系的遠(yuǎn)近呢?對于這個核心的問題推薦系統(tǒng)也一直在進(jìn)行發(fā)展演變,人們隨著技術(shù)的提升思路也變的越來越智能化。
在沒有系統(tǒng)推薦的時候,推薦系統(tǒng)更多是承載人工配置商品的過程。通過人工設(shè)定固定商品進(jìn)行推薦,目前在一些不具備推薦算法能力的平臺依然會使用此類方法。這樣的方式固然可以實(shí)現(xiàn)推薦商品,但效率和效果卻無法讓人恭維,于是就出現(xiàn)了基于內(nèi)容的推薦策略。
基于內(nèi)容推薦的思路是將所有的商品、內(nèi)容、人等基礎(chǔ)實(shí)體進(jìn)行標(biāo)簽標(biāo)記。系統(tǒng)通過標(biāo)記不同的商品屬性特征進(jìn)行分類,當(dāng)用戶進(jìn)行購買時系統(tǒng)通過購買的商品進(jìn)行判斷具備相同屬性或者相似屬性的商品集合,再通過消重、過濾等規(guī)則完成最終的推薦列表。
基于內(nèi)容推薦實(shí)際上是來判斷商品與商品的固定關(guān)系,我們以一個實(shí)例看下策略的處理方式。假定平臺上有一個圖書商品庫(包括商品A、B、C三個商品),我們基于圖書的相關(guān)信息為所有圖書制定標(biāo)簽特征,包括但不限于圖書名稱關(guān)鍵詞、圖書作者、圖書分類、圖書定價(jià)、圖書關(guān)鍵字等。通過標(biāo)簽整理我們看到三個商品的特征集為:
如果用戶購買商品B,則購買完成以后可以推薦商品A給用戶,因?yàn)樯唐稟和商品B具備相同或相似的屬性(包括書名關(guān)鍵詞、作者、分類)。而商品C則和商品B相差較遠(yuǎn)所以不進(jìn)行推薦。
這里面的判斷規(guī)則一般是通過加權(quán)的方式來判斷多個屬性最終是否和購買商品的特征相似和相同,其中加權(quán)以及消重等規(guī)則和搜索使用的方法類似。特別說明下推薦策略做加權(quán)同樣需要考慮詞頻的因素,一般使用的概念是TF-IDF(termfrequency–inverse document frequency)。
TF為詞頻即關(guān)鍵詞在當(dāng)前文本中出現(xiàn)的次數(shù),這里包括所有特征屬性。IDF為逆文本頻率指數(shù),指在所有文本屬性中出現(xiàn)次數(shù)的倒數(shù)。計(jì)算方式是TF X IDF,這項(xiàng)指標(biāo)表示我們認(rèn)為在當(dāng)前文本中出現(xiàn)的高頻詞是高權(quán)重的,但如果該關(guān)鍵詞在所有文檔出現(xiàn)頻率也高則認(rèn)為該詞不具備特殊意義故而權(quán)重是很低的。
如上表中的經(jīng)濟(jì)詞匯如果只在當(dāng)前文本特征中出現(xiàn)次數(shù)較高,則是屬于高權(quán)重。如果在所有語料文本中都出現(xiàn)很多次,則認(rèn)為他不應(yīng)該是代表特定意義只是一個通用的詞匯,權(quán)重應(yīng)該降低。
基于內(nèi)容過濾規(guī)則比較簡單,初期搭建時可以快速實(shí)現(xiàn)推薦功能的自動化節(jié)省人力。但問題也是明顯的,首先需要通過對所有的商品構(gòu)建特征標(biāo)簽工作量巨大,同時由于推薦策略的顆粒度和構(gòu)建特征的多少有直接關(guān)系,所以會造成顆粒度過于粗糙推薦商品不準(zhǔn)確的問題。如果平臺本身不具備太多推薦算法的能力,可以通過人工配置加基于內(nèi)容推薦的方式獲取推薦的基本自動化能力。
基于固定的內(nèi)容無法獲取更加精準(zhǔn)的推薦商品,那么我們可以換個角度來看待這個問題。我們把從商品與商品的固定關(guān)系轉(zhuǎn)變成參考人和商品、商品和商品之間的變化關(guān)系來進(jìn)行推薦策略的構(gòu)建,也即是說基于用戶的行為來判斷商品的關(guān)系。
用戶的行為具有復(fù)雜多變的特性,但不代表沒有規(guī)律可循。常見基于用戶行為的策略主要分為幾種:關(guān)聯(lián)規(guī)則和協(xié)同過濾。
關(guān)聯(lián)規(guī)則是指通過收集每個用戶一段的購買數(shù)據(jù),可以得出買過商品A的所有用戶以及這些用戶同時買了哪些其他商品,然后將這些商品合并就得出了一個同時被購買商品列表的排序?;谏唐妨斜磉M(jìn)行消重、去除低關(guān)聯(lián)商品等行為最終實(shí)現(xiàn)推薦商品列表輸出。關(guān)聯(lián)規(guī)則的核心策略就是診斷關(guān)聯(lián)度進(jìn)行處理,關(guān)聯(lián)度有兩個常用指標(biāo):支持度和置信度
- 支持度(Support):買過商品A,同時買過商品B的人數(shù) / 總的人數(shù)
- 置信度(Confidence):買過商品A,同時買過商品B的人數(shù) / 買過商品A的人數(shù)
計(jì)算公式關(guān)聯(lián)度 = support * confidence。下面我們舉一個例子看下算法是如何運(yùn)行的。Alice購買了商品item1,這個時候我們想計(jì)算item5是否應(yīng)該推薦。根據(jù)公式我們來計(jì)算下支持度和置信度。支持度support=2/4,置信度confidence=2/2,需要說明的是計(jì)算時要刨除alice本人。這樣我們可以得到support=0.5,confidence=1,所以item5對于item1的關(guān)聯(lián)度就是0.5*1=0.5。
從上面的例子我們可以看到通過關(guān)聯(lián)度可以推薦到購買時被人們最常用的組合是哪些。對于一些品類單一的商品結(jié)構(gòu)是非常適用的,策略的邏輯本身并不復(fù)雜對于技術(shù)要求也不會特別高。但從計(jì)算量上來看,需要對所有的商品進(jìn)行遍歷計(jì)算才能獲取所有的指標(biāo)。對于離線的數(shù)據(jù)挖掘成本來說有些過于的大了。
顯而易見關(guān)聯(lián)規(guī)則作為主要的算法是有些不符合的,那我們就需要尋找一個效率更高、成本更低的算法來作為主要的推薦算法,協(xié)同過濾就是目前主流的推薦算法。協(xié)同過濾主要原理是運(yùn)用群體的協(xié)同智慧,志在通過一個群體的喜好判斷來確定單體的特征和情況。這個群體既可以是用戶群體,也可以是商品群體。
協(xié)同過濾有幾個基本的假設(shè):
- 用戶會對物品給出評價(jià)(隱性或顯性)
- 用戶偏好一定時間內(nèi)不會發(fā)生變化
協(xié)同過濾的處理主要包括兩個部分:評測和群體搜索。我們來看下協(xié)同過濾的處理流程。如下圖:
獲取所有的用戶數(shù)據(jù)信息,用戶信息包括用戶自行填寫的內(nèi)容、評價(jià)、消費(fèi)記錄等信息。對于新用戶的情況可以通過上文講到的冷啟動的方式獲取數(shù)據(jù)。同時要對用戶的數(shù)據(jù)進(jìn)行一些基本的預(yù)處理。
主要的預(yù)處理為降噪和歸一化。降噪主要是剔除一些異常數(shù)據(jù),比如用戶的誤操作、未支付訂單等。而歸一化的目的是為了保證所有的用戶信息在進(jìn)行推薦計(jì)算的時候不會受到極值的影響出現(xiàn)過大偏差。
比如訂單的數(shù)量就遠(yuǎn)大于收藏的數(shù)量,需要將這樣的信息通過處理變?yōu)橐粋€相對合理的區(qū)間范圍,一般會將歸一化的數(shù)據(jù)分布變?yōu)閇0,1]區(qū)間內(nèi)。常用的歸一化方法也有很多,比如對數(shù)歸一、指數(shù)歸一等。歸一化的概念和地圖的比例尺有些相似,目的是在保證相對關(guān)系的情況下將所有樣本縮放到一定范圍內(nèi)以便進(jìn)行計(jì)算。
數(shù)據(jù)處理完畢后推薦系統(tǒng)就會根據(jù)信息對用戶或商品進(jìn)行評估打分。這里面主要是基于已知的用戶或者商品集合的信息判斷與當(dāng)前用戶或商品的相似度。推薦算法基于不同的相似度得到每個集合的分值,根據(jù)計(jì)算的分值判斷與當(dāng)前用戶或商品的臨近群體。通過將臨近群體和當(dāng)前商品或用戶進(jìn)行比對完成推薦結(jié)果的輸出。
關(guān)于相似度的計(jì)算也是推薦算法的核心,相似度主要是指當(dāng)前群體和已知群體之間的臨近程度。關(guān)于臨近算法也是隨著技術(shù)逐步發(fā)展起來的。這里面我們以kNN算法為例看下臨近算法的原理。
kNN(全稱 k-NearestNeighbor K臨近算法)意思是k個最近的鄰居,指是每個樣本都可以用它最接近的k個鄰居來代表。策略的思路是通過指定一個數(shù)量范圍K,判斷最相似的K個商品內(nèi)具備的共有特征,則認(rèn)為查詢的商品或用戶的本身也具有這個特征。簡單的說就是認(rèn)為你跟你附近K個最近的群體具有相同特征。
由下圖我們可以看到首先我們會將所有的樣本數(shù)據(jù)與當(dāng)前需要比對的樣本進(jìn)行距離測算,根據(jù)測算距離生成一個由近及遠(yuǎn)的列表。在所有樣本比對完畢后將當(dāng)前列表選取K個樣本并判斷當(dāng)前樣本中多數(shù)項(xiàng)的屬性特征,將該屬性特征賦予被比對的商品完成推薦結(jié)果輸出。我們通過圖來看下臨近算法運(yùn)行的原理。
當(dāng)范圍K選取的是C1值時,則認(rèn)為當(dāng)前比對樣本的特征應(yīng)該是圓形,因?yàn)樵诜秶鷥?nèi)圓形占多數(shù)項(xiàng)。而當(dāng)我們把范圍K的值調(diào)整為C2時,我們發(fā)現(xiàn)比對樣的特征變?yōu)榱苏叫?。所以kNN的臨近算法會因?yàn)镵的范圍選取產(chǎn)生結(jié)果的巨大變化。如下圖
而目前的主流協(xié)同過濾雖然還是使用計(jì)算相似度來進(jìn)行推薦,但策略上已經(jīng)發(fā)生了變化。按維度分包括基于用戶維度和基于商品維度?;谟脩艟S度(User-Based: Row similarity )是指以用戶為參照物判斷和當(dāng)前用戶相似的用戶群體的喜好,從而得到相似用戶群體中包含且當(dāng)前用戶未曾購買的商品進(jìn)行推薦。
如果我們把用戶和商品關(guān)系列一個矩陣,則按用戶維度也可以看做是行相似性。下表可以看到用戶A購買時,我們通過查詢比對發(fā)現(xiàn)用戶A和用戶C是相似群體,所以根據(jù)用戶C的特征推薦商品D給用戶A。
基于商品維度(Item-Based:Colunm similarity)也叫做基于項(xiàng)目維度,通常指除人以外的實(shí)體。項(xiàng)目在電商平臺則代表商品維度,而新聞、音樂類平臺則代表其他的實(shí)體。與基于用戶維度不同的地方,基于項(xiàng)目維度是以商品(下文將項(xiàng)目統(tǒng)一稱作商品)為參照物判斷找到和當(dāng)前物品偏好相似的物品,然后根據(jù)用戶歷史的拍好情況推薦相似品。
我們還用上述的這個關(guān)系矩陣來看基于商品維度的處理方式。購買商品A的用戶和商品D的人群很相似,所以當(dāng)用戶購買A時,我們可以推薦商品D給用戶。所以基于商品維度又叫做列相似性。
兩種維度的算法都各有優(yōu)缺點(diǎn),衡量使用的標(biāo)準(zhǔn)主要是選取參照物叫少的維度。例如電商平臺相對于龐大的用戶群體來說商品相對固定,商品之間的關(guān)系變化也較少,所以使用以商品為參照物可以大大減少計(jì)算的量級和復(fù)雜度。而新聞類則相反,用戶相對內(nèi)容更為穩(wěn)定,則使用用戶為參照處理起來更為便捷。
同時基于商品維度的算法相對于基于用戶維度的算法,結(jié)果集更為穩(wěn)定,但豐富性相對較低。所以如何取舍要依賴于平臺對于推薦的實(shí)際業(yè)務(wù)要求。更多的時候可以使用混合算法,即按照一定的配比從多種算法上獲取商品進(jìn)行去重、加權(quán)、排序。
一般來說在使用協(xié)同過濾算法時候有幾個技巧:
- 低頻的物品可以做過濾,減少雜質(zhì)對于整體計(jì)算的影響
- 降低高頻熱門物品的權(quán)重,避免出現(xiàn)大量推薦重復(fù)顯示高頻商品的問題。
- 打分的分值可以根據(jù)時間的遞進(jìn)進(jìn)行衰減,即越靠近現(xiàn)在越高
這里簡單介紹幾種算法的公式,具體的算法細(xì)節(jié)可以自行百度。產(chǎn)品層面知悉就可以了。
Cosine-basedSimilarity(Cosine相似度):常用于計(jì)算文檔數(shù)據(jù)相似度。
Pearson Correlation Similarity (皮爾遜相關(guān)度):計(jì)算兩個定距變量的相似度。
AdjustedCosine Similarity (校正Cosine相似度):修正了余弦相似度算法對于絕對數(shù)值不敏感的部分。
三、推薦系統(tǒng)架構(gòu)
推薦系統(tǒng)按照處理流程的劃分也有若干層。從效果來看業(yè)務(wù)特征加特殊特征的精細(xì)度決定效果的最終上限。結(jié)構(gòu)如下圖
- 特征層:負(fù)責(zé)沉淀所有特征內(nèi)容。
- 樣本層:提供樣本選取和訓(xùn)練。
- 模型層:提供模型算法。
- 召回層:負(fù)責(zé)召回?cái)?shù)據(jù)。
- 排序?qū)樱禾峁┐蚍?、排序、去重等功?/li>
作者:高暉
來源:https://mp.weixin.qq.com/s/8n2MF7h3zQlJkZm6sEVEQQ
本文由 @產(chǎn)品老高 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
- 目前還沒評論,等你發(fā)揮!