告別直男直女審美,AI教你如何成為時尚弄潮兒
告別直男直女審美,AI教你如何成為時尚弄潮兒
這個項目的目標是建立一個穿衣打扮推薦系統,用戶可從一些 Instagram 時尚博主的圖片中進行選擇,我們的演算法就能推薦給他們相似風格的衣服,並且獲得比圖片中款式更加實惠的價格。
用戶選擇了照片後,我們就會在fashion-rec.com網站所有的電商中進行篩選,給你推薦對應的衣服。
時尚界的KOL增加很快,變化也很快。他們是流量的掌控者,對大家的購物行為有很強的影響力。根據mediakix的數據,廣告主僅僅是為Instagram平台的廣告就支付了16億美元。
廣告主會給他們廣告費,讓他們穿著自家品牌的衣服拍照上傳到Instagram,並且要提到這個品牌。這是品牌商常用的廣告方式,希望關注博主的用戶會購買他們的衣服。我們的推薦系統似乎有些與此為敵的意思,但我們最終是幫助了消費者,提供更多選擇。
我們使用了敏捷(Agile)的項目流程來完成我們的終極項目(Capstone Project) 。這包括使用機器學習模型進行訓練以及不同組員同時開發 Flask 應用。
下面是把所有元素結合在一起的流程:
從梅西百貨、H&M、ASOS、Bloomingdales、Fashion Nova這五個網站爬取了女士裙子和上衣的數據;信息包括產品名稱、價格、產品描述以及圖片爬取了13個Instagram KOL(意見領袖)過去6個月的點贊、點評以及帖子數據使用NLP的潛在狄利克雷分布方法,將爬取的產品描述歸類為6種不同的風格我們嘗試了基於FGVC5(一個有1014544無偏衣服圖片以及228個品類標籤數據的kaggel圖片資料庫)的iMaterialist Challenge (Fashion)我們從上面分好的6個風格類別提出圖片,使用步驟4的方法找到與KOL們發的圖片相似的產品我們開發了一個Flask 應用,可以給用戶提供交互功能,並能讓用戶無限地提交搜索請求,對KOL的圖片和我們的主要產品銷售渠道的庫進行搜索(建在亞馬遜雲AWS上)
我們有約10000個產品信息,約1000份IG(Instagram,以下簡稱IG)的數據。不同產品價格中位數在150美元到20美元之間。
大多數的產品來自ASOS,基於可負擔的價格區間,以及衣服的風格多樣性。
每個不同博主的帖子數據如下,平均的發帖頻率在每月5到20帖子。
每個帖子的點贊數的中位數反應了受歡迎程度,其中號稱全球第一大網紅的Kylie Jenner比中位數多了600萬(即為平均每一張圖有600萬點贊),所以下圖沒有包括她。
我們的資料庫里點贊數很高,說明大家被博主推薦的衣服吸引,我們的平台能讓大家根據他們的喜好找到類似的衣服。
NLP
我們將NLP(自然語言處理技術)應用到分析產品描述上,從而發現當下市場的流行趨勢。NLP發現的風格之後會用來區分不同博主的風格,並且保證它們可以在市場上購買到。
基於預測和基於頻率的方式是兩種最常見的NLP 方法。基於頻率的方法假設文檔中的詞語彼此獨立,只會考慮出現的頻率。相反,基於預測的方法會考慮單詞共同出現的情況,在處理有很強的單詞間關聯的文本時它有優勢。
Word2Vec 和 Doc2Vec我們使用了兩種方法來比較他們的效果。對於基於預測的方式,我們試了這兩種方法Word2Vec 和 Doc2Vec 來生成每個產品描述文字對應的矢量,之後使用K-means基於矢量距離來將產品分類成不同的風格類別。
對於Word2Vec 分析,詞語的矢量來自一個提前訓練好的Word2Vec 模型(可以在此找到https://github.com/stanfordnlp/GloVe)。對不同的單詞矢量進行平均,得到代表某一個物品的描述文字的單一的矢量。對於Doc2Vec,我們基於一個使用我們的物品描述文本為數據,用Gensim進行訓練的Doc2Vec模型來得到相應的矢量。
使用Doc2Vec的矢量得到前十個最相似矢量中更加相似的物品圖片。我們決定使用Doc2Vec生成的矢量來進行K-means,將物品描述按照它們的矢量間的餘弦距離分成六個不同組別。基於預測的方式這一次表現並不理想,從K-means得出的 t-SNE圖並沒有顯示出不同組別之間的明顯 區別。一個可能的解釋是,產品描述的文本是由關鍵片語成而非彼此聯繫緊密的句子。
Latent Dirichlet Allocation (LDA)另一方面,基於頻率的方法,尤其是Latent Dirichlet Allocation (LDA) 潛在狄利克雷分布顯示出了更好的結果。作為最知名的話題模型,它將所有單詞以及他們出現的次數作為輸入,然後嘗試在沒有打標籤的文檔中找到結構或者話題。話題模型假設單詞的使用與話題出現相關。每一個話題指的是不同詞語的組合,它們有不同的權重,而每一個文檔又是不同話題的組合。
在我們的項目里,文檔就是物品描述,而話題指的是不同關鍵詞描述出的不同時尚風格。對於每一個產品,得分最高的那個風格就是它對應的風格種類。一個問題是,我們並不知道我們收集來的零售網站數據里有多少種不同的風格。我們試過多個之後認為6會是個合理的選擇。因此也會存在其他的可能,而且這也正是無監督聚類問題的美麗之處。
分組完成後我們使用t-SNE來進行更好的可視化,它能起到對數據降維的作用,從而讓我們得到二維圖。在下面的圖裡,所有產品被分為六種顏色。左上角為對應的關鍵詞。從圖可以看到,這個演算法成功對所有產品進行了分類。這些關鍵詞有更多的信息並能更好地反映出這些產品的風格。
圖像分類
我們應用了深度卷積神經網路演算法,以及提前訓練好的imageNet(VGG16)來進行一個多類別的分類,分類的對象是最近Kaggle比賽中已經打好標籤的上百萬時尚圖片。藉此,我們得到了我們的第一版圖像識別模型。與餘弦相似衡量方法結合,這個演算法可以推薦線上購物平台。
Kaggle 資料庫訓練數據來自228個時尚屬性類,它們每張圖都擁有多個標籤。1014544張圖片用於訓練,10586張用於確認,42590張用於測試。我們的項目並沒有用kaggle 資料庫里的測試圖片。
模型表現驗證數據組整體的 ROC 和PR曲線。整體的表現不錯。然而,也有一些標籤表現不好。下一階段我們希望能更直觀的用可視化的形式看到模型表現究竟如何。因此我們將模型放在AWS上。
AWS我們項目的最終產品是叫做 Fashion-Rec 的網站,搭建在AWS上,使用Flask應用。首頁包括有影響力的時尚KOL們的圖片,供用戶選擇。
當用戶點擊其中任意圖片,網站會跳轉到另一個包括這個特定博主的圖片的網頁。演算法會通過NLP分析來將每個博主的圖片分類成5-6種服裝流行趨勢類別。
這能保證用戶有足夠多的選擇。下圖是一個具體例子,可以看到六種不同的分類。
比如,當你選擇「風格0」,系統會自動生成風格類似的衣服,並且是在我們資料庫里的網站上可以買到的。用戶還可以繼續點擊「相似物品」,系統也會不斷推薦新的產品。
為了進一步豐富用戶體驗,我們還會在頁面上顯示與用戶傾向最不一樣的衣服。這樣,當他們想要換一種風格嘗試,他們可以輕鬆地把這些產品直接添加到購物車裡。
※國產摩托車125cc有哪些?摩友:現才知道,原來有這款啊!
TAG:李白講歷史 |