iT邦幫忙

2022 iThome 鐵人賽

DAY 13
1
AI & Data

那些在科技公司和 app 背後的資料科學系列 第 13

[Day 13] 更貼近消費者需求的購物網站搜尋結果 - Alicoco

  • 分享至 

  • xImage
  •  

國慶連假快到了,Skylar 和 Kristina 預計要去三天兩夜的露營,於是 Skylar 決定在購物網站採購一些露營相關的用具。他拿出事先列好的商品清單,一項一項輸入並加入購物車,過程不免有點繁瑣,無法直接輸入「露營」之後,就在一個頁面中看到所有相關用具。

https://ithelp.ithome.com.tw/upload/images/20220926/20152325yeN2S7VKbe.png

他想到如果是在量販店的話,店員通常都會把相同主題的商品陳列於同一區。如果有任何需要的內容,其實也可以直接詢問店員「露營需要準備神的東西?」,通常都能夠得到完整的推薦清單。

如果購物網站也能夠如同在實體店面一樣,輸入一個特定主題,就顯示所有相關商品的話,是不是會對消費者更方便呢?甚至,是否能夠讓網站自己有對應的搜尋結果,而非需要人為建立相同主題的頁面呢?

今天,讓我們來聊聊阿里巴巴是如何做到這件事的吧!


阿里巴巴利用 product knowledge graph,建立出 AliCoCo 這套系統,使得其購物網站能夠輕易完成我們上述要求。當消費者輸入「父親節禮物」、「露營」、「海邊」等等不同主題,網站即會自動跳出相對應的主題,甚至配合當時的天氣或其他外在條件,也會生成不同推薦清單。

在討論 Alicoco 的細節之前,先來看看人類會怎麼思考。以 Skylar 的情境為例,當他在陳列「露營」的購物清單時,會先想到「戶外」和「烤肉」兩個概念,再從這三個主題分別延伸出不同商品。

  • 露營 -> 桌椅、帳篷。
  • 戶外 -> 考量十月的天氣,認為需要保暖衣物。若是在夏天,也許會想到泳衣。也需要運動鞋。
  • 烤肉 -> 肉、奶油、烤肉架。

https://ithelp.ithome.com.tw/upload/images/20220926/20152325Uwrxg6GkMA.png

AliCoCo 的基本架構也如同人類的思考模式,將所有商品個別建立一個節點(node),這些節點(node)再連接到更高層次的**「分類(taxonomy)」、「原始概念(primitive concepts)」和「線上購物概念(e-commerce concepts)」**,讓我們來一ㄧ介紹。

https://ithelp.ithome.com.tw/upload/images/20220926/20152325RC1mc15oEk.png

線上購物概念(e-commerce concepts)

線上購物概念(e-commerce concepts)是一些用以描述購物情境的短句,例如「戶外烤肉」、「給祖父的聖誕節禮物」或「讓小孩保持溫暖」。

建立這些概念的原因如同上述,阿里巴巴認為消費者不一定知道自己在特定情境下需要什麼物品,若能跳脫既有的分類方式,更能助於用戶搜尋到需要的產品。

分類(taxonomy)和原始概念(primitive concepts)
為了組合較高層次的線上購物概念(e-commerce concepts),阿里巴巴需要一些較低層次的詞彙以敘述情境。舉例而言,「戶外烤肉(online barbecue)」可以拆解成「<事件:烤肉><地點:戶外><天氣:晴天>」。阿里巴巴將「烤肉」、「戶外」和「晴天」稱為原始概念(primitive concepts),再將他們分別歸類在對應的「分類(taxonomy)」下(i.e., 事件、地點和天氣)。

阿里巴巴使用的分類(taxonomy)共有 20 個主要領域(domains),如下圖直接連接 Root 節點的 20 個圓圈,有些領域(domain)會有階層式的架構,如 category、和 time。

https://ithelp.ithome.com.tw/upload/images/20220926/20152325WYGEmwD1zG.png

然而,有成千上萬種產品,無論是線上購物概念(e-commerce concepts)或原始概念(primitive concepts)都不可能是人為一一標注,阿里巴巴是如何產生這些分類的呢?讓我們繼續看下去。


原始概念(primitive concepts)

產生原始概念(primitive concepts)的方式是爬蟲和文字序列標記(sequence labeling tasks),使用購物網站中消費者輸入的搜尋文字(search queries)、產品標題、使用者評價和商品介紹作為文字內容。標記模型是利用 BiLSTMCRF model 執行文字序列標記(sequence labeling tasks),輸入上述的文字內容,輸出為一連串是先定義的類別,而這些輸出都會再經過人為確認。

舉例而言,在商品介紹中的「這是宜家(Ikea)的舒適沙發」會分別被標記為:

  • 宜家:品牌(brand)
  • 舒適:風格(style)
  • 沙發:種類(category)

至於訓練資料是如何產生?原始概念(primitive concepts)是如何對應到分類(taxonomy),使用的方法稱為上下位關係對應(hypernym discovery)

上下位關係對應(hypernym discovery)主要有兩個方法:

  1. Pattern based:利用文字本身的特性,例如 XX 褲(下位,hyponym)一定是褲子(上位,hypernym)這一個類別。
  2. Projection learning:訓練一個將下位(hyponym)對應到上位(hypernym)的模型。其輸入為下位(hyponym)的 word embeddings(線上購物概念 e-commerce concepts 訓練而得),輸出為候選上位(hypernym)可能的對應分數,再選出分數最高者。

線上購物概念(e-commerce concepts)

線上購物概念(e-commerce concepts)是整套架構的核心概念,需要滿足以下幾個條件:

  1. 具線上購物的概念:能夠輕易想到跟線上購物有關的情境,例如「藍色天空」或「母雞下蛋」這幾個短句,雖然是有邏輯的,但是跟線上購物無關。
  2. 連貫性:整句話是有連貫性的,例如「給聖誕節的祖父禮物」不符合邏輯,應為「給祖父的聖誕節禮物」。
  3. 合理的:整句話是合理的,例如「性感的嬰兒洋裝」是不合理的。
  4. 清楚的:要是清楚且容易理解的,例如「給嬰兒和孩童的補充品」,這句話同時有嬰兒和孩童,較不明確
  5. 正確性:整句話不能有文法錯誤

生成線上購物概念(e-commerce concepts)分為兩個階段,第一階段為候選清單產生(candidate generation),第二階段為分類(classification)。

候選清單產生(candidate generation)

產生候選清單的方式分為兩種:

  1. 從消費者輸入的搜尋文字(search queries)、產品標題、使用者評價和商品介紹等等爬蟲而得

  2. 使用已知的原始概念(primitive concepts)利用一些規則組合而成,例如將「地點:室外」和「事件:烤肉」組合成「室外烤肉」。其他組合的例子可參考下圖。

https://ithelp.ithome.com.tw/upload/images/20220926/20152325wWjtDNZodC.png

分類(classification)

最後,訓練一個分類器以判斷爬蟲和組合出的句子是否符合線上購物概念(e-commerce concepts)的條件,以供後續購物網站的使用。


以上為阿里巴巴如何建立出更符合使用者需求的購物網站之介紹。


謝謝讀到最後的你,如果喜歡這系列,別忘了按下喜歡和訂閱,才不會錯過最新更新。
也歡迎到我的 medium 逛逛!


Reference:
X. Luo et al., “AliCoCo: Alibaba E-commerce Cognitive Concept Net.” arXiv, Mar. 30, 2020. Accessed: Sep. 26, 2022. [Online]. Available: http://arxiv.org/abs/2003.13230


上一篇
[Day 12] Spotify 怎麼知道要在「每週新發現」推薦什麼歌給你?(下)Bart Model
下一篇
[Day 14] 改善 Airbnb 的房源排序模型(上)- NDCG 介紹
系列文
那些在科技公司和 app 背後的資料科學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言