阿里巴巴的 Kubernetes 應用管理實踐經驗與教訓

阿里巴巴雲原生發表於2019-12-12
  2019-12-09 13:07:09

導讀:高德地圖擁有幾千萬的POI興趣點,例如大廈、底商、學校等資料,而且每天不斷有新的POI出現。為了維持POI資料的鮮度,高德會通過大量的資料採集來覆蓋和更新。現實中POI名稱複雜,多變,同時,名稱制作工藝要求嚴格,通過人工來製作POI名稱,需要花費大量的人力成本。

因此,POI名稱的自動生成就顯得格外重要,而機器對商戶掛牌的語義理解又是其中關鍵的一環。本文主要介紹相關技術方案在高德的實踐和業務效果。

一、背景
現實世界中,商戶的掛牌各式各樣,千奇百怪,如何讓機器正確的理解牌匾語義是一個難點。商戶掛牌的文字種類有很多,如下圖所示,我們可以看到一個商戶牌匾的構成。

深度學習在商戶掛牌語義理解的實踐

結合POI的名稱制作工藝,我們目前將POI的牌匾的文字行分為4大類:主名稱、經營性質(包括經營範圍,具體的進行專案)、分店名、噪聲(包括非POI文字,地址,聯絡方式),前面3個類別會參與到POI名稱制作中。如上圖所示的牌匾,它輸出的規範名稱應該是“世紀巨集圖不動產 (興業路店)”。其中“世紀巨集圖”是主名稱,“不動產”是經營範圍,而“興業路店”是分店名。

從牌匾中找出製作名稱所需要的文字,不僅僅需要文字行自身的一些特徵,還需要通過結合牌匾上下文,以及影像的資訊進行分析。單純的文字行識別會遇到下面的問題,如下圖,在兩個牌匾中都提到了“中國電信”,但是它們的意義是不一樣的,這時必須結合上下文的理解。

深度學習在商戶掛牌語義理解的實踐

二、技術方案

單純從文字的語義理解的角度出發,那麼這個應該是一個文字分類問題。但是直接的分類效果不佳。現實中在理解牌匾文字行語義的時候,需要結合圖形,位置,內容,以及上下文關係綜合來判斷。為此,我們將商戶掛牌理解的這個問題分解成兩個子問題來解決,1.如何結合影像、文字、以及空間位置;2.如何結合上下文關係。因此,我們提出了Two-Stages級聯模型。

深度學習在商戶掛牌語義理解的實踐

2.1 Two-Stages 級聯模型

Two-stages級聯模型分為兩個主要的階段:第一階段提取單文字資訊特徵,包括文字位置和文字內容等,第二階段提取牌匾中文字行上下文關係特徵,消除只用單個文字識別容易造成的歧義,準確識別出該文字屬性。

2.1.1 Stage One 單文字行特徵提取

單文字行特徵可以分為詞性結構(token level)特徵和句子語義(sentence level)特徵。除此之外,位置資訊(PV)也是比較重要的資訊,需要進行特徵提取和編碼。將以上特徵進行融合,得到了單文字行特徵。

深度學習在商戶掛牌語義理解的實踐

token level層的特徵提取方面,結合名稱的構成以及名稱工藝,我們定義了三種詞性: 核心詞(C)、通用詞(U)、結尾詞(T)。在這裡我們使用LSTM網路來學習名稱的詞性序列。

深度學習在商戶掛牌語義理解的實踐

sentence leve層的特徵提取方面,由於我們的標註量相對比較少,採用了具有大量先驗知識的BERT模型。同時,為了更好的符合當前業務場景的需求,我們結合業務中POI的資料集合,在原來Google官方提供的預訓練模型基礎上繼續pre-training,得到新的模型BERT-POI。

預訓練的POI文字語料沒有太多的上下文環境,在構造樣本時,我們將兩個POI名稱串起來或是同一個POI隨機切分,中間都用SEP隔開,進行多工學習:缺字補全和預測兩個文字行是否屬於同一POI。經過實驗發現,在POI資料上預訓練模型BERT-POI 比Google釋出模型BERT-Google,缺字補全和同一POI判定兩項任務上名,正確率高20%左右。

此外,將預訓練的模型用於下游屬性識別任務上,BERT-POI與BERT-Google相比,提升主名稱,分店名,營業範圍的召回3%~6%。

下圖展示了我們預訓練的過程圖:

深度學習在商戶掛牌語義理解的實踐

隨後,我們對預訓練好的BERT-POI在進行了finetune,提取出sentence leve層的特徵。

2.1.2 Stage-Two 文字相互關係提取

Stage One提取到了單文字行的特徵,那如何去實現上下文的關聯,我們加入了Stage Two的模組,模型結構如下:

深度學習在商戶掛牌語義理解的實踐

Stage Two最主要是用BILSTM(Bidirectional LSTM)處理stage one輸出特徵,能夠將當前文字特徵和牌匾內其他文字特徵進行學習,消除歧義。

三、業務效果

牌匾通過語義理解後,會根據具體的輸出型別來制定名稱生成的策略。例如:對於單主+噪聲牌匾,我們直接將主名稱作為POI名稱,而對於單主+分店名+經營性質+噪聲的牌匾,我們會分析主名稱的結構,看是否需要拼接經營性質。

下圖展示了當前我們牌匾語義理解和名稱的部分拼接策略:

深度學習在商戶掛牌語義理解的實踐

圖3.1單主+噪聲場景

深度學習在商戶掛牌語義理解的實踐

圖3.2 單主+分店名場景

深度學習在商戶掛牌語義理解的實踐

圖3.3單主+經營性質場景(主名稱中有經營性質)

深度學習在商戶掛牌語義理解的實踐

圖3.4 單主+經營性質場景(主名稱中無經營性質)

四、小結

目前商戶牌匾語義理解模組的準確率在95%以上,在POI的名稱自動生成中起到的重要的作用。商戶牌匾的語義理解模組只是POI名稱自動化的一部分內容,在POI名稱自動化中還會涉及到噪聲牌匾過濾、牌匾是否依附建築物、敏感類別、文字的缺失、名稱生成、名稱糾錯等模組。我們會在圖文多模態這塊更深入的探索,更多地應用於我們現實場景中,生產更多、更高質量的資料。



https://www.toutiao.com/i6769743362980315659/




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2668429/,如需轉載,請註明出處,否則將追究法律責任。

相關文章