迈向电商认知智能时代的基石:阿里电商认知图谱揭秘
阿里妹導讀:電商平臺最大的挑戰是從日益增長的海量商品(數十億)中挑選出的一個小的子集(幾十或上百)展示給用戶,以滿足用戶的個性化的購物需求。為了解決仍存在的重復推薦、缺少新意等問題,我們提出建設大規模電商認知圖譜。
今天,搜索推薦事業部認知圖譜團隊全面總結了目前在構建電商認知圖譜方面的探索,主要介紹認知圖譜的定義、整體的構建思路,構建過程中一些具體的算法問題,和最終在搜索推薦上的應用。
背景
縱使近年來電商搜索、推薦算法已經取得了長足的進步,但這些算法依然存在許多問題,如推薦中經常為人詬病的重復推薦、缺少新意等。究其本質,這是因為現有的算法主要還是沿襲“商品到商品”的思路,并不是直接從用戶需求來驅動的,甚至對用戶需求沒有一個清晰的定義。而另一方面,理解并滿足用戶需求又是這些算法所要達成的最終目標,這兩者之間的有著天然的隔閡。
為了打破這個隔閡,讓搜索、推薦算法更好地認知用戶的需求,我們提出建設大規模電商認知圖譜(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)??傮w流程如下:
其中,候選的生成分為兩塊,一塊是使用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關系構建的主要難點在于:
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
- 推理式推薦
總結和展望
認知圖譜的建設需要耗費大量的資源,涉及領域廣泛,內容繁雜,離不開算法、工程、運營、以及大量眾包/外包資源的幫助。本文只是淺顯地總結了從算法工程師的角度來講述的認知圖譜構建,很多模塊仍在探索和優化中。
我們相信,以更好地認知用戶需求為目標的電商認知圖譜,將助力搜索推薦等從基于行為的方式邁向基于行為與語義融合的認知智能時代,將是平臺生態穩定和日益進步的重要基礎。
關于我們
阿里巴巴集團搜索推薦事業部認知圖譜團隊,旨在打造全球最大的中文電商知識圖譜,支持包括淘寶、天貓優酷乃至海外電商在內整個阿里集團的推薦與搜索業務,每天服務上億用戶。電商"認知"圖譜,從電商場景下的用戶需求出發,不局限于傳統的商品圖譜,而是一個連接商品,用戶,購物需求,以及各類開放領域知識、常識的大規模語義網絡。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的迈向电商认知智能时代的基石:阿里电商认知图谱揭秘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 揭秘 | 双11逆天记录背后的数据库技术
- 下一篇: 看图了解RocksDB