電商平臺最大的挑戰是從日益增長的海量商品(數十億)中挑選出的一個小的子集(幾十或上百)展示給使用者,以滿足使用者的個性化的購物需求。為瞭解決仍存在的重覆推薦、缺少新意等問題,我們提出建設大規模電商認知圖譜。
今天,阿裡巴巴搜尋推薦事業部認知圖譜團隊全面總結了目前在構建電商認知圖譜方面的探索,主要介紹認知圖譜的定義、整體的構建思路,構建過程中一些具體的演演算法問題,和最終在搜尋推薦上的應用。
本文轉載自:阿裡技術
公眾號ID:ali_tech
背景
縱使近年來電商搜尋、推薦演演算法已經取得了長足的進步,但這些演演算法依然存在許多問題,如推薦中經常為人詬病的重覆推薦、缺少新意等。究其本質,這是因為現有的演演算法主要還是沿襲“商品到商品”的思路,並不是直接從使用者需求來驅動的,甚至對使用者需求沒有一個清晰的定義。而另一方面,理解並滿足使用者需求又是這些演演算法所要達成的最終標的,這兩者之間的有著天然的隔閡。
為了打破這個隔閡,讓搜尋、推薦演演算法更好地認知使用者的需求,我們提出建設大規模電商認知圖譜(E-commerce ConceptNet),將使用者需求顯式地表達成圖中的節點(稱為E-commerce Concept),並將這些需求點和電商領域內的商品、類目,電商外部的通用領域知識等關聯起來,為商品認知、使用者認知和知識認知提供統一的資料基礎,併為下游搜尋推薦演演算法提供新的最佳化思路和更多的可能性。
什麼是e-commerce concept?
前面提到,我們將使用者需求稱為“e-commerce concept”: 一個有商品需求的概念,一般情況下以一個符合常識,語意完整,語序通順的短語表示。例如:“連衣裙”、“兒童防走失”、“燒烤必備”、“寶寶保暖”、“波西米亞連衣裙”、“春節慶祝”等。這些concept需要滿足如下的基本原則:
如上所示,右邊的短語均違背了電商概念的基本原則,所以在實際挖掘過程中都是會被過濾掉的。進一步,我們將concept分為了三大類:
-
購物場景(shopping scenario):表示一類非特定品類的使用者需求,場景感較強,如“兒童防走失”、“春節送禮”等。
-
泛品類(extensive category):表示一類有特定品類的使用者需求,可以是不加修飾的純凈品類,如“連衣裙”、“水果”等,也可以是有屬性限制的品類,如“韓版波點連衣裙”、“兒童羽毛球拍”等。
-
通用概念(general concept):表示一類通用的概念,可以和電商外部的開放領域知識相關聯,如“防曬”、“燒烤”、“老人”等。
E-commerce concept從哪裡來?
在明確了定義和基本原則之後,我們需要挖掘大量的concept用以改寫各式各樣的使用者需求。目前,我們認為使用者在使用淘寶或天貓搜尋時輸入的搜尋詞(query)和商品的標題(title)是concept挖掘可以利用的最大來源。而我們的工作主要是要將滿足我們上述原則的concept短語,從充滿噪音的query、title中挖掘出來,這一步稱為“Concept Mining”。
Concept Mining主要分為兩步,一個是候選生成(Candidate Generation),另一個是概念正確性判斷(Concept Classification)。總體流程如下:
其中,候選的生成分為兩塊,一塊是使用AutoPhrase按照字粒度從句子中切分出來的短語資訊,一塊是透過序列模板抽取器(Sequential Pattern Extractor)做頻繁序列挖掘後的模板資訊,結合2-gram的統計語言模型,得到concept候選。在得到候選後,我們會利用一個判別模型來融合語言模型embedding,concept的序列資訊,以及規則前字尾,pv統計等特徵,判斷concept是否是符合要求的。
★ Candidate Generation
我們首先透過pattern抽取器從現有的正負concept中提取pattern並計算權重,然後透過這些pattern,並結合三個視窗內的統計語言模型,進行候選的剪枝,最後生成的候選基本都是符合語序,滿足基本常識的。
★ Concept Classification
我們一方面結合一些簡單的規則進行特徵抽取,另一方面,利用現有的序列特徵訓練Wide&Deep; model,來進行concept的合理性判斷。在初始資料的處理方面,由於我們大部分的concept都是短文字,而query和title中大部分的term序列不符合正常的語序,我們還利用長文字的parsing infomation進行候選抽取和截斷,訓練了ELMo作為基礎的語言模型,併在同樣長度的gram內調整語序,來得到最佳的序列資訊再給判別模型。
Ontology
在明確了e-commerce concept的定義並挖掘出了大量的concept後,我們會疑惑,concept作為一個詞(phrase),除了name之外,沒有分類(domain),沒有描述(description),也沒有屬性(attributes),怎麼叫”圖譜“呢?這麼少的資訊量如何能在下游應用中起到作用呢?concept要成為圖中的節點,那我們的圖到底是什麼呢?
為了更好地理解e-commerce concept,同時和外部知識圖譜對齊,引入更多的通用知識,我們定義了一套電商認知圖譜的本體(Ontology),用以描述物體、概念的屬性和其之間的關係。物體表示客觀世界存在的具體實體,例如,歌手劉德華為一個具體的實體。概念表示客觀世界中的寬泛概念,例如,娛樂明星為一個泛指的概念。分類體系與屬性關係定義(Schema),包括定義物體和概念的類別,以及物體和概念具體的屬性與屬性值。例如,在分類體系中,歌手劉德華屬於人物→娛樂人物→歌手,屬性包含出生日期,代表作等。
在這裡,我們參考Schema.org、cnSchema.org中對客觀事物進行描述的結構,建立了以事物類(Thing)為根節點的電商知識圖譜底層本體分類體系。在事物類的子類中,包括“動作”、“創作品”、“活動”、“無形物”、“品類”、“醫療物體”、“機構”、“人物”、“地點”共9大類。每一個子類又有其自己的子類,每一個子類將繼承父類的所有屬性和關係。具體結構如下圖所示:
本體分類體系,其中括號內內容為類別對應的中文名和英文縮寫
在這裡,中心白色節點為事物類,是所有類的根節點。環繞在事物類周圍的9個節點是事物類的直接子類。其中每一個類別又有自己的節點。在該圖中,以無形物類為例,受眾類是無形物類的子節點,而受眾:動物類、受眾:身體部位類、受眾:人群類、受眾:植物類是受眾類的子節點。在透過結構化、半結構化、非結構化資料進行知識獲取時,資料按照該分類體系進行錄入。
如前文所述,電商認知圖譜的終極標的是刻畫使用者需求,因此,在本體中我們定義了多個電商專用類來對電商環境下的客觀世界進行建模:
-
Brand (品牌) Category (品類):品類是顧客在購買決策中所涉及的最後一級商品分類,由該分類可以關聯到品牌,並且在該分類上可以完成相應的購買選擇。品類中的實體是我們進行本體構建過程中重點挖掘的內容。
-
Audience (受眾):受眾是商品直接對應的購物人群或種群,是電商場景下一個非常重要的分類。受眾類下包括四個子類:受眾:動物、受眾:身體部位、受眾:人群、受眾:植物。
-
Style (風格):對於一件商品,一定會有其特有的風格來吸引購買的人群,風格類主要對其進行描述。風格類下包括六個子類:文學風格、音樂舞蹈風格、氣味風格、觸覺風格、口味風格、以及視覺風格。
-
Function (功能):對商品進行功能的具體描述,可以精準的定位商品,將商品和需求直接聯絡起來。功能類下包括四個子類:美妝功能、服飾功能、保健功能、家居功能。
-
Material(材質):所謂材質,簡單的說就是物體看起來是什麼質地。透過材質對商品進行描述,可以使商品更加具體化。
屬性是詞彙固有的屬性,比如“別名”、“描述”等;關係是本體詞彙之間存在的客觀聯絡,如Person類中實體的“出生地”將連結到另外一個Place類的實體中。在本體的分類體系中,每個類別都有其特有的屬性和關係,子類將繼承父類所有的屬性和關係。在這裡,我們以事物類和品類類為例,介紹屬性和關係,具體如下圖所示:
事物和品類的屬性&關係
-
事物類:在該類別中,我們定義了“別名”、“描述”、“圖片”、“名稱”共四個屬性和關係。“別名”實際上是當前詞彙的一個同義詞,是一個屬性;“描述”是對當前事物特點的一種描述;“圖片”可以連線到另外一個“圖片物件”,實際上是兩個事物之間的關係;“名稱”是當前事物的標準的名字。
-
品類類:品類類是事物類的直接子類,將直接繼承事物類的所有屬性和關係。與此同時,品類類含有自己特有的屬性“品型別別”。
本體分類體系下所有的類、子類均有其特有的屬性和關係,在對本體中的每個類別進行建模時,我們定義了140+個屬性和關係。
在進行本體詞彙構建時,我們充分調動集團內各大BU的優質結構化資源,來源包括淘系、優酷、飛豬、神馬等等,對多來源的結構化、半結構化資料進行知識的整理與融合。具體的,如果將多來源結構化資料看成不同來源的知識體系,獲取和融合就包括了本體和實體的匹配(Ontology/Enity Matching)和知識融合(Knowledge Fusion)。
我們採用了基於文字特徵的匹配方法,對多來源的資料進行了批次的合併。我們定義的知識融合任務是:在同一個類別下,含有相同意義的詞彙需要合併為一個id,其中最為常見的詞彙作為主鍵,其他同義詞彙作為別名。如“老漢”與“老朽”是同義詞,在同一個id下,“名稱”屬性內容為“老漢”,“別名”屬性內容為“老朽”。在匹配的基礎上,透過衝突檢測,Truth Discovery等技術將知識進行一致性的合併消解。對於衝突,處理方法包括忽略,避免和消解。
常見的消解方法包括:Voting、Quality-based、relation-based的方法。我們採用的是Quality-based的方法,對single-valued attribute進行消解。最終透過整理和融合結構化資料,獲取了百萬級的物體和Concept資料。
自然文字以非結構化的形式存在,包含了大量豐富的語意關係,描述了客觀世界裡面物體,概念以及相互之間的關係。因此,對文字的理解也成為了獲取物體和概念資訊的重要來源。物體和概念作為圖譜的關鍵元素,對其在文字中的識別成為了知識獲取的重要技術。其中命名物體識別(NER)將文字中提及的物體進行劃分並歸類,可以從海量陳述句中挖掘指定類別的物體。我們採用基於遠端監督(Distant Supervision)的序列標註模型,標註的型別標簽包含上文提到的事件,功能,物件,時間,空間,品類,風格等多個大類。
至此,我們搭建了一個為電商設計的ontology體系,並擴充了大量的物體、概念、屬性和關係,也可以將其看做一個普通的電商知識圖譜。
從知識圖譜到認知圖譜
上文介紹的認知圖譜本體結構(Ontology),包含了比較完整的分類法以及相應的schema,並融合了大量的外部、電商物體、概念和屬性關係,是一個比較初級的電商知識圖譜,其目的是為了結構化我們挖掘得到的大規模的e-commerce concept,將這些concept連結到圖中成為節點,讓“知識圖譜”真正邁向了“認知圖譜”。這一步叫做Concept Tagging。
理想情況下,我們希望concept經過分詞後,每一個詞單元都能夠連結到本體詞彙庫的詞彙上,從而獲得相應的知識體系,但是由於本體不一定能改寫全部的concept詞彙,導致concept只有部分能夠被連結,屬性關係並不完整。其次,本體中存在一詞多義的問題,相同的詞彙具有不同的型別,因此需要進行詞義消歧。而concept通常是短文字,背景關係十分有限,常規的序列標註模型並不能取得可觀的效能,並且目前的本體分類體系是樹形結構,存在一個詞彙分佈於同一個大類,不同小類中。例如,“丹麥”這個詞的型別有“空間→國家”以及“空間→行政區”,這也為詞義消歧帶來了難度。
我們的標的是準確地將concept連結到本體詞彙庫的詞彙上,輸入是concept串列以及本體庫,輸出是對應的詞彙及型別:
針對上述難點,演演算法的整體流程圖如下:
下麵我們將針對圖中的模組具體說明:
1) 基於詞典的最大正向匹配及字首匹配:給定一個concept,演演算法首先使用最小粒度分詞,將concept切分成詞,然後使用最大正向匹配演演算法,從左到右將分詞後的concept的幾個連續詞與本體庫的詞典匹配,如果匹配上則傳回本體詞彙及型別(ID)。
在這個過程中,存在匹配上的詞在本體分類體系中的不同位置中,即一詞多義的問題,在這裡,我們將所有的可能候選傳回,以供後續消歧處理。值得一提的是,我們在使用詞表的時候,並沒有使用全部的詞表,其中的品牌表和IP表(名人、作品、電視電影等)非常龐大,歧義詞很多。
例如,我們平時十分常見的高頻詞也會是一個IP詞,但大多數情況下並不表示一個IP。因此我們在最大正向匹配的過程中去除了這一部分資料,而是增加了一個字首匹配的模組,將未標識的字首與品牌表和IP中的人名錶進行匹配,能夠進一步的提升改寫度。
2)詞義消歧: 與常規的消歧方法不同,concept通常由短文字組成,背景關係能夠提供的資訊十分有限。因此我們選用了序列標註模型來學習詞彙型別的組合,例如:“物件”+“風格”+“品類”等等。由於考慮到不同行業下,詞彙的型別不同,例如,“拼接”這個詞,在“服飾”領域下,“拼接針織連衣裙”中的“拼接”型別為“風格”,而在“傢具燈具”領域中,“拼接水管”的型別為“功能”,因此我們使用了attention機制來學習領域相關的資訊。序列標註的模型如下圖所示:
得到序列標註的模型輸出後,再根據單詞的sense候選,輸出最終的tagging結果。後續會嘗試將序列標註作為特徵,再結合concept的其他特徵,使用分類模型來對候選sense打分排序。
3) 細粒度的tagging :在存在問題的討論中,我們提到了存在一個詞彙屬於相同大類不同小類的情況。通常序列標註模型的標簽類別隻有十幾種,而目前我們的本體庫分類體系中包含幾十種甚至上百種型別,傳統的序列標註模型並不能夠解決這個問題。因此,我們需要更細粒度的序列標註模型來進一步消歧。
4) 對齊長文字召回:經過詞表匹配與詞義消歧後,由於現有本體庫並沒有涵蓋concept中所有的詞彙,因此我們需要tagging未標識的term,並識別出相應的型別,可以迴流本體庫。一種可行的方式就是利用大量電商領域的長文字句子,將concept遠端對齊到長文字來進行序列標註,從而將未標識的term召回。
認知圖譜中的邊
知識圖譜的關係是機器能夠理解知識的關鍵。關係型別由頭尾節點型別決定,節點可以是vocabulary、concept、entity的任意一種。目前我們定義了19中關係型別,並用三元組表示所有節點之間的關係。這些關係包括“is_related_to(相關)”、“isA(是一種)“、”has_instance(有實體)“、”is_part_of(是一部分)“等。 這裡重點介紹對電商場景用途最大的兩種關係:
concept-isA-concept
例子:波西米亞連衣裙 isA 連衣裙。
電商需求大部分是品類需求,對品類需求的語意表達至關重要。isA關係使得我們的concept從偏平的結構變為圖的結構,對機器理解語意非常重要。 通常,isA關係的構建包含兩個步驟:
-
在大規模文字語料中抽取isA關係,這裡主要包括模板匹配(pattern-based)和基於向量表示的isA關係預測(distributional)
-
在第一步抽取得到的isA關係集合中構建層次結構,例如去重,消歧,去環等清洗工作以及補充更細粒度的isA關係。
而在電商認知圖譜構建的特殊場景中,isA關係構建的主要難點在於:
-
電商是一個垂直領域,尤其在淘寶這樣一個”只有你想不到,沒有淘寶買不到”的平臺,涉及的品類五花八門,有不少品類詞相對冷門但又十分重要。
-
電商相關的文字語料稀缺,品類詞在語料中的共現非常稀疏,給抽取帶來了極大的難度。針對這些難點,我們正在著手設計一套人工+演演算法不斷迭代最佳化的active learning流程,希望為後續的concept理解和推理應用提供可靠的支援。
concept-is_related_to-item
在現有電商環境下,構建概念和商品之間的is_related_to關係也會面臨諸多挑戰:概念過短、商品標題堆疊、無關詞語、商品屬性錯誤、商品圖文不符等,這些會造成匹配錯誤或者帶來歧義。
針對上述問題我們採用的整體方案流程如下:首先使用文字匹配/i2i/語意模型的方式進行將concept與item (title、描述)進行語意匹配,然後會根據concept到category分數進行校準,再經過消歧後,最終會根據概念間關係進行商品的合併。下圖是深度語意匹配模型的一個示意:
完整的大圖
講到這裡,電商認知圖譜的大圖也呼之欲出了:
如上圖所示,完整的認知圖譜包含以下幾個部分:
-
Concept:表達使用者需求的最重要的語意節點。
-
Ontology:一個為電商設計的知識圖譜的分類體系、schema,透過與concept的連線形成最終的認知圖譜,可以融合外部知識圖譜資料,引入電商中很難直接挖掘到的常識。
-
Relation:我們定義了十幾類關係,用於描述不同節點之間的語意,是機器理解語意的關鍵。
-
Item:基於圖譜構建大規模的concept、vocabulary和relation,可以更加精確的理解商品。
-
User:基於圖譜構建大規模的concept、vocabulary和item attributes,可以更加精準的理解使用者需求、推理使用者需求。
應用
顯式應用
電商認知圖譜現已在淘寶搜尋推薦等多個產品落地應用,主要的產品形式是以concept為載體的主題卡片,如首頁猜你喜歡瀑布流中的”購物百科“:
寶貝詳情頁中的場景推薦:
隱式應用
透過電商認知圖譜提供的以concept為核心的點、邊關係資料,為搜尋和推薦演演算法增加了新的資訊粒度和資訊結構,會帶來更大的想象空間,可以更好地滿足多樣的使用者需求。
同時,很多新的基於認知圖譜應用的課題我們還在進行中,如:
-
可解釋推薦
-
Knowledge Graph Embedding
-
推理式推薦
總結和展望
認知圖譜的建設需要耗費大量的資源,涉及領域廣泛,內容繁雜,離不開演演算法、工程、運營、以及大量眾包/外包資源的幫助。本文只是淺顯地總結了從演演算法工程師的角度來講述的認知圖譜構建,很多模組仍在探索和最佳化中。
我們相信,以更好地認知使用者需求為標的的電商認知圖譜,將助力搜尋推薦等從基於行為的方式邁向基於行為與語意融合的認知智慧時代,將是平臺生態穩定和日益進步的重要基礎。
關於我們
阿裡巴巴集團搜尋推薦事業部認知圖譜團隊,旨在打造全球最大的中文電商知識圖譜,支援包括淘寶、天貓優酷乃至海外電商在內整個阿裡集團的推薦與搜尋業務,每天服務上億使用者。電商”認知”圖譜,從電商場景下的使用者需求出發,不侷限於傳統的商品圖譜,而是一個連線商品,使用者,購物需求,以及各類開放領域知識、常識的大規模語意網路。生長於全球最大的中文電商平臺,認知圖譜賦能搜尋、推薦等核心業務,是推動集團新零售戰略的強大知識引擎,歡迎志同道合的朋友加入我們共同建設和應用電商認知圖譜,可以直接傳送簡歷至 huazai.yyh@alibaba-inc.com。
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜尋「PaperWeekly」
點選「關註」訂閱我們的專欄吧
關於PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。