一,、知識圖譜概述 1.1 什么是知識圖譜 知識圖譜是谷歌在2012年提出來的,,最初的目的是優(yōu)化其搜索引擎。在現實世界中是存在很多的實體的,各種人,、物,,他們之間是相互聯系的。知識圖譜就是對這個真實世界的符號表達,,描述現實世界中存在的一些概念,,以及它們之間的聯系。具體來說是一個具有屬性的實體,,通過關系連接而成的網狀知識庫,。 1.2 知識圖譜的基本組成 在電商的知識圖中,包括用戶,、商家,、商品,他們帶有各自的屬性,,彼此之間又互相聯系,。知識圖譜的基本組成三要素:實體、屬性,、關系,。實體-關系-實體 三元組;實體-屬性-屬性值三元組,,在電商的知識圖譜中,,用戶和商品都是實體。 在知識圖譜中,,有一類特殊的實體叫做本體,,也叫做概念或語義類。它是一些具共性的實體構成的集合,。比如說,,比爾蓋茨和喬布斯都是人,,微軟和蘋果都是公司,。 二、知識圖譜構建 目前的知識圖譜分為兩類,。一類是開放域的知識圖譜,,另一類是垂直領域的知識圖譜。比如谷歌為搜索引擎所建立的知識圖譜就屬于開放域的,。垂直領域的知識圖譜,,比如說金融的,電商的,。 首先就是要先處理數據,。互聯網上的數據基本上都是結構化的,非結構化的和半結構化的,。結構數據一般就是公司的業(yè)務數據,。這些數據都存儲到數據庫里,從庫里面抽取出來做一些簡單的預處理就可以拿來使用,。半結構化數據和非結構化數據,,比如對商品的描述,或是標題,,可能是一段文本或是一張圖片,,這就是一些非結構化數據了。但它里面是存儲了一些信息的,,反映到的是知識圖譜里的一些屬性,。所以需要對它里面進行一個抽取,這是構建知識圖譜中比較費時費力的一個工作,。 從數據里需要抽取的其實就是之前所提到的實體,、屬性、關系這些信息,。對于實體的提取就是NLP里面的命名實體識別,。這里相關的技術都比較成熟了,從之前傳統的人工詞典規(guī)則的方法,,到現在機器學習的方法,,還有深度學習的一些使用。比如說,,從一段文本里面,,我們提取出來比爾蓋次這個實體以及微軟這個實體,然后再進行一個關系提取,。比爾蓋次是微軟的創(chuàng)始人,,會有這么一個對應的關系。另外還有屬性提取,,比如比爾蓋茨的國籍是美國,。在這些提取完成之后都是一些比較零散的信息,然后在再加之前用結構化信息所拿到的東西以及從第三方知識庫里面所拿到的信息做一個融合,。 另外還需要做的是實體對齊和實體消歧,。 關于實體對齊。舉例來說,,比爾蓋茨這四個字是中文名稱,,Bill Gates是他的英文名稱,但其實這兩個指的是同一個人,。由于文本的不一樣,,開始的時候導致這是兩個實體,。這就需要我們對它進行實體對齊,把它統一化,。 另外是實體消歧,。舉例來說,蘋果是一種水果,,但是在某些上下文里面,,它可能指的是蘋果公司。這就是一個實體歧義,,我們需要根據上下文對它進行實體消歧,。 在完成了以上步驟之后,接下來就是本體抽取,。比如之前提到的微軟和蘋果,,它們的實體是公司。從文本里面可能無法直接提取出來,,它們是公司,。那么需要一些方法對他們進行抽取。然后搭建出本體庫,,比如說公司是一個機構,,它是有這種上下流的關系的。對于平級的也需要計算一個他們的相識度,,比如比爾蓋茨和喬布斯在實體層面,,他們是比較相似的。他們都屬于人這個實體,。他們跟公司的差別還是挺大的,,所以需要一個相似度的計算。 在以上步驟完成之后需要對知識庫進行質量評估,,這是一個避免不了的人工步驟,。在做完質量評估以后,最終形成知識圖譜,。形成知識圖譜以后,,有些關系可能是無法直接得到的,然后需要進行知識推理,,這可以對知識圖譜進行擴展,。比如,,貓是貓科動物,。貓科動物是哺乳動物。這就可以推理出來,,貓是哺乳動物,。但是這個推理也不是隨便就可以推出來的。比如,比爾蓋茨是美國人,,比爾蓋茨創(chuàng)建了一個公司,,但這個公司并不一定是美國的。 三,、二手電商知識圖譜 主要從以下四個部分闡述:業(yè)務理解、知識圖譜設計,、算法,、開發(fā)。 3.1 二手電商特性 搜索優(yōu)化和個性化推薦是我們最開始所做的初衷,。主要去做一些意圖識別或是自動化查詢這些,。個性化推薦這里,我們利用知識圖譜做一些召回源以及推薦排序模型特征,。在電商運營這里,,主要是幫助后臺運營組貨。在垂直業(yè)務這塊,,主要是做一些價格模型和供需關系分析,。 二手電商不同于一手電商。首先就是數據源的質量,。二手電商平臺上面的商品都是個人發(fā)布,。商品的描述信息不像商家那樣完整。我們提供給他們的可選項,,也都不一定會被完整的填寫,。 第二點就是數據稀疏的問題。二手電商的商品大多都是無標品,。相比于一手店上電商來說,,數據較為稀疏。 第三點是具備一些二手屬性,。二手店電商的商品都有很多二手屬性,。比如說成色、外觀,、屏幕劃痕,、是否換屏、是否翻新等等,。 最后是價格差異,。商品進行折舊以后,他們的價格會有一些差異,。二手商品的價格是具備很強區(qū)分度的特征,。 3.2 二手電商知識圖譜構建 先構建商品的知識圖譜。商品的知識圖譜是類似樹的形態(tài),。樹由一級一級的節(jié)點組成,,最后的葉子節(jié)點是商品實體,它的下面是一些商品的屬性,。 遵循業(yè)務需求循序漸進,。在制作知識圖譜的過程中,是邊做邊用的過程,,而不是花費了很長的時間來做的很完整后才去使用,。我們是根據具體的需求將知識圖譜拆成幾個步驟,然后進行持續(xù)的輸出,。 那么怎么拆分,?根據之前提到的樹的形態(tài)的知識圖譜,首先要做的是先描點,。先把圖中的節(jié)點標好,,然后再去挖掘屬性中一些K-V信息,得到一些零散的點邊關系,,接著再把這些零散的點和邊的關系串起來形成一張圖,,變成知識庫。最終,,再把商品掛上去,。 首先,,是term層面的一些應用,。提取物品詞,完成本體構建,。然后,,K-V層面就是連接點和邊。提取tag詞,,完成屬性抽取,。接著,在圖的層面,。tag詞樹結構化,,完成知識庫構建。最后,,商品粒度,。將商品掛靠上去,完成實體抽取,。 3.3 商品理解——物品詞 首先從商品中提取出它的物品詞,,然后根據用戶的行為數據得出用戶偏好物品詞,,接著根據這個用戶偏好物品詞進行召回或是排序特征,。 那么具體的實現方案: 先是物品詞庫的構建,,不斷地挖掘當前都有哪些東西,以及以后還打算做哪些東西,。這部分的數據大部分是從我們自有的結構化數據那里拿到的,,也有一部分是從外部爬去得到的,還有是從命名實體識別得到的,。 接著是上下位關系提取,,沙發(fā)是個實體,布藝沙發(fā)也是個實體,。布藝沙發(fā)也是沙發(fā)的一種,,它們是一個上下位的關系。 然后是并列相似度計算,。像布藝沙發(fā)和皮質沙發(fā)的相似度是比較高的,,而沙發(fā)和相機的相似度就比較低。還有是文本對齊,。類似于同義詞,,比如,相機和照相機其實是指代的同一個東西,。 當以上完成以后,,就構架出了一個物品詞庫。接著就是商品層面,,商品物品詞提取,,使用到的數據源有:分類信息、標題文本,、商品描述,、商品圖片。 應用場景主要就是: - 個性化推薦:倒排索引召回 - 個性化推薦:排序特征 3.4 商品理解——tag詞 后面做了一個商品理解的Tag詞,,這是物品詞的演進,這是服務的升級,,剛才我們提取到的是用戶感興趣的東西,,但是人往往不會局限于對這個東西感興趣,還有可能對這類物品有很多的要求,。所以需要從屬性的角度去挖掘用戶的興趣,,比如右下角的例子。對該商品提取出更多的屬性,。那這個套路和剛才的物品詞比較相似,。這里需要注意的是,,一手化的數據可以從自有結構的數據,爬蟲,,文本抽取中可以拿到,,但是二手數據只能從文本挖掘中抽取。還有屬性對齊,。還有商品Tag詞的提取,,他的數據源來源于結構化數據,標題文本,,商品描述,,商品圖片等。應用場景和物品詞一致,。最后就完成了屬性抽取,。 3.5 Tag詞樹結構化 上面做完之后,,我們發(fā)現提取出的key-value屬性,,都是各自離散存在的。然后會出現數據質量的問題,,所以把之前挖掘出的term給提取出來組成一個樹,,下面是例子。從這個樹里面可以追溯到他的所有信息,。 這樣的做法還提供了query結構化,,對query進行理解,他的應用場景有三部分,,個性化推薦和智能搜索,,這一塊截止,做完了商品庫的知識庫的構建,。后面就是商品掛靠,。 3.6 商品掛靠 商品掛靠指利用分類信息、商品標題,、商品描述,、商品圖片等數據,對本體庫(Tag詞樹型結構)中的節(jié)點進行匹配和生成商品知識路徑,。同時消岐有可能一個商品會匹配到本體庫中的多個本體(物品詞)和 對屬性節(jié)點賦予權值,,選取匹配權重最高的本體。 這還是剛才的例子,,商品掛靠之后生成一個實體(右側)這一塊做完之后完成實體的抽取與知識圖譜的構建,。目前我們有一些關于知識推理和知識圖譜的應用,優(yōu)先級并不是這樣的,目前還沒有發(fā)力去做,。 3.7 二手電商知識圖譜構建 根據場景去介紹就可以構建出下面的架構,首先是數據抽取,,在進行本體構建和屬性抽取,,在進行知識庫的構建,最后完成商品的掛靠,,把這些數據存儲在HDFS或者OrientDB中,,就可以進行智能推薦和智能搜索以及價格模型的構建,。這里有一個消岐的概念,,他主要是做根據樹的權重的加和,權重較高的路徑他的置信度就越高,。消除一些無效的路徑和屬性,。 四,、在價格模型中的應用 它的應用很多,,這里說一下在價格模型中的應用,為什么做這件事情,,對于二手商品的來說,,很難去定一個合理的價格,所以我們這邊希望提供一個定價的能力,。 4.1二手標品化 首先需要二手標品化,,先做知識譜圖商品掛靠,然后去篩選出價格敏感的二手屬性,。舉個例子,,我的二手手機屏幕碎了,這是很影響定價的一個因素,。但是另外一個手機僅僅是劃痕,,這個屬性對二手手機的定價不是明顯的。所以需要去篩選一些對價格影響的屬性,。在同本體,、 同一手屬性值和同價格敏感二手屬性值下歸納二手標品,把這個ID作為這個實體新的屬性打到知識圖譜圖譜上,。我們假設這個標品的商品價格是同分布,。針對這個假設,我么做了統計方法做估計價格區(qū)間和生成二手標品ID到價格區(qū)間的的映射,。最后得到的結果是可以支撐這個假設的,。 4.2二手標品估價 這塊就是整個流程,前面要進行樣本構建,,然后在加載樣本知識圖譜和樣本商品售出價格,,在開始離線計算二手標品商品ID的價格區(qū)間,。由于我們也沒有二手商品的真正的價格,所以這里需要另外一個假設,,我們認為大部分成交的二手商品的成交價是合理的,,因為這是買家和賣家討價還價之后的結果,并且基本上滿足了雙方的心理預期,。所以我們收集已成交商品的價格,,在按照二手標品ID聚合,對異常點刪除,,在進行數據變化,。計算價格區(qū)間。最后生成二手標品ID的價格區(qū)間放到數據庫中,,在線估價的時候,,首先加載待估計商品知識譜圖路徑,然后定位二手標品ID,,最后確定價格區(qū)間,。 4.3 非二手標品商品估價 上面僅僅說了二手標品ID的估價,,這里還有非二手標品商品估計,。手機很好說,但是衣服的話,,從一手狀態(tài)就不太好標品化,,這有一套另外的解決方案,首先還是基于知識圖譜制作,,查找圖譜中最近的TopN個出售商品,,在聚合出售的價格,刪除異常點,,進行數據變化,,計算價格區(qū)間,最后進行逆變換,,生成商品價格區(qū)間,。 4.4 數據變換 對于價格來說,,他的分布有明顯偏態(tài)的,,但是區(qū)間估計需要分布是無偏的,為了能更精準地通過控制置信度來調整區(qū)間大小,,最好無偏正態(tài)化,。類似于左下角的分布,拿對數變換或者平方根變換就可以變換成近似正態(tài)分布,但實際數據的情況會復雜多樣一些,,為了能很好得無偏正態(tài)化,,我們采用Box-Cox變換。對數變換和平方根變換是其特例,。 4.5 區(qū)間劃分 有了正態(tài)分布之后,我們可以做區(qū)間的劃分,,首先我們希望這個區(qū)間可以涵蓋大多數的商品,,可以求均值,標準差,,根據不同業(yè)務的需要,,計算出價格區(qū)間,然后將計算出來的區(qū)間的上下限,,做Box-Cox逆變換,。這樣才是真正的價格區(qū)間,。 4.6 Embedding Regression 剛才所說的是基于統計的方法,,后面還有另外一種能夠做法,基于回歸的方法,。先進行知識譜圖的學習,,挖掘出價格敏感的term作為屬性打到實體上,在把商品用向量表示,,做回歸模型,。然后可以用回歸的方式去預測出商品的基本的定價。 作者介紹: 張青楠,,算法架構師,轉轉算法部基礎模型團隊負責人,。主導了整套電商基礎模型體系的建立,。曾就職于當當推薦部,任資深推薦算法工程師,。 |
|