目的
概念(Concept)蘊(yùn)含著世界知識(shí),指導(dǎo)著人類(lèi)認(rèn)知的發(fā)展,具有抽象性,概括性等特點(diǎn)。
標(biāo)簽的挖掘和標(biāo)簽體系建設(shè)也是一個(gè)重要的研究問(wèn)題,尤其是針對(duì)UGC/PGC文檔的處理更為實(shí)用和重要。但是目前的工作主要集中在綜合領(lǐng)域的文檔中的概念提取,垂直領(lǐng)域的概念標(biāo)簽挖掘的工作相對(duì)較少。
另外從推薦系統(tǒng)使用概念標(biāo)簽角度來(lái)說(shuō),要求概念標(biāo)簽必須要和用戶興趣及用戶認(rèn)知相匹配,所以直接從文章或者百科中抽取普通、粒度粗、表層的概念,會(huì)和用戶認(rèn)知和興趣相抵觸,不利于在推薦系統(tǒng)中的應(yīng)用。舉個(gè)例子:別克GL8是個(gè)“mpv”(一個(gè)普通的概念),用戶更感興趣的可能是,“省油的mpv”或者“進(jìn)口mpv”。另外針對(duì)垂直領(lǐng)域的特點(diǎn),只是簡(jiǎn)單抽取表層的概念,也會(huì)和用戶的認(rèn)知相悖。舉個(gè)例子:豐田普拉多是個(gè)“越野車(chē)”(是個(gè)表層的概念),用戶在專(zhuān)業(yè)汽車(chē)領(lǐng)域的APP里面感興趣的更可能是,“適合山路越野的suv”或“硬派suv”,這樣深層或者專(zhuān)業(yè)的概念。
從UGC/PGC等物料中挖掘概念標(biāo)簽并構(gòu)建標(biāo)簽體系是內(nèi)容理解的一個(gè)重要工作。如下圖所示,一般來(lái)說(shuō)內(nèi)容理解可以按照抽象的程度劃分為業(yè)務(wù)層、抽象層、細(xì)粒度層,每個(gè)層次都會(huì)產(chǎn)出一些語(yǔ)義結(jié)果。分類(lèi)和主題直接和業(yè)務(wù)側(cè)強(qiáng)耦合,細(xì)粒度層則顯得語(yǔ)義跨度更加大同時(shí)也更加分散,概念標(biāo)簽、話題、需求則處于兩層之間,構(gòu)成了抽象層。
在推薦中,標(biāo)簽(Tag)被定義為能夠代表文章語(yǔ)義的最重要的詞或短語(yǔ),相比于分類(lèi)和主題,是更細(xì)粒度的語(yǔ)義。標(biāo)簽可以認(rèn)為是推薦系統(tǒng)的“血液”,作用于推薦系統(tǒng)各個(gè)環(huán)節(jié),多樣性打散,畫(huà)像維度、排序模型特征、召回模型特征等。
介于篇幅原因,本篇文章主要介紹概念標(biāo)簽挖掘相關(guān)的工作,闡述期間遇到的問(wèn)題和解決方案。概念標(biāo)簽的文檔打標(biāo)模型則留待下一篇再做介紹。
候選概念標(biāo)簽挖掘
這部分會(huì)闡述候選概念標(biāo)簽挖掘的三種方法,以及遇到的問(wèn)題和解決方案。
為了使挖掘出的概念標(biāo)簽符合用戶認(rèn)知和興趣點(diǎn),我們選擇從query日志中挖掘候選的概念。其中挖掘方法包括一種無(wú)監(jiān)督策略,半監(jiān)督方法,另外也嘗試了有監(jiān)督的方法。
先舉一些例子,展示我們從query中挖掘出來(lái)的概念。
再看下候選概念挖掘的整體框架
1、基于模式匹配的無(wú)監(jiān)督挖掘方法
這種方法主要是針對(duì)query,目標(biāo)是從query中抽取符合模式的概念。這樣做的好處有兩個(gè)
a)因?yàn)槭怯脩糨斎氲膓uery,所以抽取的概念詞或短語(yǔ)更符合用戶認(rèn)知。
b)可以根據(jù)query的頻次和點(diǎn)擊率,篩選出用戶感興趣的詞,并界定概念標(biāo)簽的粒度。
舉個(gè)例子,“適合山路越野的車(chē)”這個(gè)概念可以進(jìn)行縮放得到上下位詞。它的上位詞可以是"越野車(chē)",下位詞可以是“山路越野suv”。假如“適合山路越野的車(chē)”這個(gè)概念相比于其他兩個(gè)概念頻次更高,那么我們認(rèn)為這個(gè)概念的粒度更符合用戶的興趣點(diǎn)和認(rèn)知。
如流程圖的最左邊所示,這種方法首先基于預(yù)定義的patterns抽取concepts。比如“最XXX的車(chē)”,“適合XXX的車(chē)”。可以通過(guò)這個(gè)模式抽取出一些概念,比如“最便宜實(shí)惠的車(chē)”中的“便宜實(shí)惠的車(chē)”,“適合露營(yíng)的小車(chē)”中的“適合露營(yíng)的車(chē)”。
但是預(yù)定義的patterns畢竟是有限的,我們還需要基于已有的concepts發(fā)現(xiàn)新的patterns。這里面可以分為兩種方法:
第一種方法是基于機(jī)器的方法去發(fā)現(xiàn)新patterns。
首先我們根據(jù)已經(jīng)挖掘到的概念“便宜實(shí)惠的車(chē)”和“適合露營(yíng)的車(chē)”,來(lái)找出來(lái)所有包括這些概念的query,
然后從這些query里面找到新的pattern。比如“便宜實(shí)惠的車(chē)”可以匹配到“比亞迪有便宜實(shí)惠的車(chē)嗎”可以找到“有XXX的車(chē)”這樣的新pattern。然后通過(guò)新的pattern匹配得到新的concept。
這里面有個(gè)關(guān)鍵點(diǎn)是如何評(píng)估新pattern是否可用,既要保證pattern具有一定的泛化性,否則匹配到極少的query沒(méi)有意義;又要保證pattern不會(huì)太寬泛,導(dǎo)致匹配的query過(guò)多。舉個(gè)例子比如說(shuō)“xx車(chē)”就是一個(gè)過(guò)于寬泛的模式,在語(yǔ)料中能匹配到20%的query。在實(shí)踐中,對(duì)于新模式P,會(huì)計(jì)算P匹配到的query的覆蓋率a,當(dāng)a處于某個(gè)區(qū)間時(shí),才會(huì)將P加入到模式庫(kù)中。
第二種方法是基于品牌和車(chē)型去發(fā)現(xiàn)新patterns。
首先我們找出所有包含品牌和車(chē)型的query,
然后將品牌和車(chē)型進(jìn)行mask,
最后將mask字符替換后從剩余的query中抽取concepts。舉個(gè)例子,如下圖所示我們使用這種方法可以得到概念“夜晚氛圍燈”和“改裝航空座椅”。
最終該方法從最近一段時(shí)間的query中獲取到若干個(gè)concept,經(jīng)過(guò)人工評(píng)估之后,顯示此種方法的concept的挖掘準(zhǔn)確率還是不錯(cuò)的。
2、基于AutoPhase的半監(jiān)督挖掘方法
基于模式匹配的方法的優(yōu)點(diǎn)是準(zhǔn)確率較高,符合用戶認(rèn)知和興趣,比較容易界定concept的粒度問(wèn)題。但是缺點(diǎn)也很明顯,依賴人工校準(zhǔn)pattern,產(chǎn)出的concept不夠多,并且由于用戶輸入會(huì)導(dǎo)致抽取的concept存在語(yǔ)序顛倒,過(guò)于口語(yǔ)化等問(wèn)題。鑒于此,我們使用了AutoPhase的方法從點(diǎn)擊率和曝光率較高的文章Title中抽取concept。
AutoPhase是韓家煒團(tuán)隊(duì)提出的自動(dòng)短語(yǔ)抽取框架。該框架獨(dú)立于領(lǐng)域,只需要很少的人力或者語(yǔ)言分析,并包含了一種遠(yuǎn)程短語(yǔ)質(zhì)量估計(jì)訓(xùn)練方法,提高了短語(yǔ)抽取的質(zhì)量。
AutoPhase方法的整體流程
如上圖所示,AutoPhase根據(jù)遠(yuǎn)程監(jiān)督的方式抽取phrase candidates。根據(jù)wiki的詞條和文檔篩選出適合做短語(yǔ)的正例作為Positive Pool和不適合做短語(yǔ)的負(fù)例作為Noisy Negative Pool。由于正例是wiki詞條,所以比較準(zhǔn)確,而Negative Pool中則存在噪音,所以文中提到使用集成學(xué)習(xí)的方式降低噪音。
具體實(shí)現(xiàn)方式是,構(gòu)建多組基本的分類(lèi)器,分別從Positive Pool和Negative Pool中隨機(jī)抽取出K個(gè)candidates。為了盡可能低的降低訓(xùn)練誤差的基礎(chǔ)分類(lèi)器,構(gòu)建一棵未進(jìn)行剪枝的決策樹(shù)的方式,當(dāng)在perturbed training set中沒(méi)有兩個(gè)positive和negative phrase共享相同的特征值時(shí),我們認(rèn)為此時(shí)的決策樹(shù)可以達(dá)到100%的訓(xùn)練準(zhǔn)確率。最后通過(guò)ranking的方式輸出排序的結(jié)果。
可以看下AutoPhase方法抽取的concept。
AutoPhase原始方法是使用wiki語(yǔ)料構(gòu)建正負(fù)例,在這里我們改成方法1中得到的concept作為正例添加到Positive Pool,把包含concept的文章經(jīng)過(guò)分詞和POSTag處理后的token序列隨機(jī)選擇之后,作為負(fù)例添加到Negative Pool中。
最后,AutoPhase的結(jié)果雖然是可用的短語(yǔ),但可能不適合作為concept。比如“高冷女神”,“比亞迪汽車(chē)”。
首先我們使用一些規(guī)則可以排除,比如檢測(cè)是否包含品牌車(chē)系,首尾詞的詞性,短語(yǔ)長(zhǎng)度,分詞后包含token個(gè)數(shù)等等。
其次我們使用語(yǔ)義的方法,對(duì)于抽取的短語(yǔ)P,可以利用語(yǔ)義相似性得到相關(guān)的query,然后根據(jù)query的頻次進(jìn)行篩選。
最終我們利用AutoPhase框架從最近一段時(shí)間的高點(diǎn)擊率文章title中抽取了大量的multi短語(yǔ),利用上述方法經(jīng)過(guò)篩選,最后得到concept(不包含方法1產(chǎn)生的concept),經(jīng)過(guò)人工評(píng)估之后,此種方法的concept的可用率比較高。
3、基于NER有監(jiān)督的方法的嘗試
上述兩個(gè)方法優(yōu)點(diǎn)很明顯,只需要少量人工,不依賴大量的標(biāo)注數(shù)據(jù)。但是缺點(diǎn)也比較明顯,準(zhǔn)確率較低,產(chǎn)生的結(jié)果不能直接作為concept,需要規(guī)則過(guò)濾。所以如果我們考慮使用端到端的模型抽取concept。
我們的思路是利用NER的方法去抽取concept。采用BIO標(biāo)簽體系,為concept所在的token預(yù)測(cè)BIO標(biāo)簽。我們主要在幾個(gè)方面做了微創(chuàng)新。
一個(gè)方面是監(jiān)督數(shù)據(jù)的構(gòu)造。NER模型訓(xùn)練數(shù)據(jù)如果用人工來(lái)標(biāo)注,成本很高,也比較耗費(fèi)時(shí)間,所以我們監(jiān)督數(shù)據(jù)來(lái)源是前兩種挖掘方法的結(jié)果,訓(xùn)練數(shù)據(jù)構(gòu)造如下:
首先我們挖掘的有concept和query的映射關(guān)系,以及query和title的點(diǎn)擊數(shù)據(jù)。這樣我們就得到了concept和title的對(duì)應(yīng)關(guān)系,所以在構(gòu)造數(shù)據(jù)時(shí)把concept對(duì)應(yīng)的token當(dāng)做實(shí)體,標(biāo)記為B標(biāo)簽和I標(biāo)簽,其他詞作為標(biāo)記為O。
在模型訓(xùn)練方面,我們采用經(jīng)典的預(yù)訓(xùn)練模型Bert-CRF做finetune,模型結(jié)構(gòu)如下:
這里面有個(gè)trick,需要為bert和crf兩層設(shè)置不同的學(xué)習(xí)率,讓crf層充分學(xué)習(xí)到標(biāo)簽的概念分布,如果設(shè)置相同的學(xué)習(xí)率,會(huì)減弱crf層矯正標(biāo)簽的作用。
最終這種方法的標(biāo)簽產(chǎn)出率相比上述無(wú)監(jiān)督和半監(jiān)督方法稍高,準(zhǔn)確率也有所提升。
4、標(biāo)簽重復(fù)問(wèn)題
在整理標(biāo)簽庫(kù)和標(biāo)注打標(biāo)訓(xùn)練數(shù)據(jù)時(shí),我們發(fā)現(xiàn)了這個(gè)問(wèn)題。這個(gè)問(wèn)題會(huì)有兩個(gè)表現(xiàn)。
a)同一個(gè)概念有兩個(gè)不同的tag,比如“好看的車(chē)”和“顏值高的車(chē)”
b)兩個(gè)概念之間有isA的關(guān)系,比如“適合長(zhǎng)途的車(chē)”和“適合高速跑長(zhǎng)途的車(chē)”。
這個(gè)其實(shí)屬于標(biāo)簽庫(kù)整理的問(wèn)題,標(biāo)簽重復(fù)不僅會(huì)造成標(biāo)簽庫(kù)冗余,還會(huì)造成后面打標(biāo)時(shí)指標(biāo)計(jì)算不準(zhǔn)的問(wèn)題。所以必須解決標(biāo)簽重復(fù)問(wèn)題。
首先分析問(wèn)題的來(lái)源,一個(gè)原因是由于我們的抽取語(yǔ)料來(lái)自于query,這就導(dǎo)致同一個(gè)概念不同的用戶會(huì)有不同的表達(dá)方式。另外一個(gè)原因是由于我們?cè)诔槿〉臅r(shí)候只判斷候選concept是否準(zhǔn)確,而忽略了和其他concept的關(guān)系。
針對(duì)這個(gè)問(wèn)題,我們采用了兩種解決方法。
解決方法一:利用編輯距離和同義詞,篩選出來(lái)包含同義詞或者詞序不同的concept pair。比如“內(nèi)飾色是白色的車(chē)”和“白內(nèi)飾的車(chē)”可以計(jì)算編輯距離?!斑m合家庭自駕游的車(chē)”和“適合全家自駕游的車(chē)”可以利用word embedding計(jì)算相似度。
解決方法二:利用句子的語(yǔ)義相似性,篩選出來(lái)語(yǔ)義相似的concept pair。比如“適合個(gè)子小女孩子的車(chē)”和“適合矮個(gè)子女孩子的車(chē)”,利用simbert模型計(jì)算句子的語(yǔ)義相似度。
經(jīng)過(guò)篩選,最終我們得到?jīng)]有重復(fù)的概念標(biāo)簽。
總結(jié)
本文介紹并實(shí)踐了概念標(biāo)簽的挖掘的通用方法和技術(shù)方案,總共有基于模式匹配的無(wú)監(jiān)督方法,基于AutoPhase框架的半監(jiān)督方法、基于NER的有監(jiān)督方法,并闡述了三個(gè)方法之間的關(guān)系和實(shí)際效果。另外針對(duì)垂直領(lǐng)域的特點(diǎn)介紹了所做的優(yōu)化,也對(duì)標(biāo)簽重復(fù)等實(shí)際問(wèn)題介紹了解決方案。下期主要介紹下概念標(biāo)簽打標(biāo)的相關(guān)方法。