天天看點

KDD 2019 | 基于知識的個性化推薦理由生成解析

小叽導讀:目前電商場景之下,單純的商品推薦已不足以滿足使用者需求,基于内容的推薦應運而生。那麼其中的關鍵問題就是我們要為推薦的商品産出優質的推薦理由,進而可以:幫助消費者做出選擇;開拓使用者對商品的興趣;引導多種産品以提高多樣性。而在春節雲主題推薦理由生成的場景中,我們的目标是讓文本生成系統能夠生成基于知識的個性化推薦理由。

作者 | 霜清、捉雲、行嗔、鴻俠

1. 引言

文本生成系統能夠生成基于知識的個性化推薦理由主要有以下幾個難點:1. 生成的文案需要符合文法,表達流暢通順;2. 推薦理由的内容需要與商品屬性相關,同時要符合商品相關的知識,比如食品的推薦理由不能使用其他領域的表述,比如“便于組裝”這類常用于描述玩具的表達;3. 推薦場景下的文本生成要盡可能做到個性化,對于同一個商品類目(後續我們會根據基于 graph embedding 的 interest category 替代目前 physical category),不同的使用者群體能夠獲得不同的推薦理由。

過去文本生成大多基于傳統的基于 RNN 的 Seq2Seq+Attention (Sutskever et al., 2014; Bahdanau et al, 2014; Luong et al., 2015) 的架構實作。這個模型最早用于機器翻譯,後來逐漸擴充到各大文本生成類的任務。而目前機器翻譯領域已經發生了一些改變,學術界和工業界普遍青睐于速度更快、效果更好的 transformer 架構。我們率先把 transformer 架構 (Vaswani et al., 2017)引入到推薦理由生成的場景中,在 baseline 的層面上獲得比傳統的 RNN-based Seq2Seq 更好的表現。而針對以上提出的兩大問題,知識引入和個性化推薦,我們在 transformer 架構的基礎上提出我們的新模型,KOBE (KnOwledge-Based pErsonalized text generation system)。下圖簡述了目前任務以及模型運作流程。

KDD 2019 | 基于知識的個性化推薦理由生成解析

在下文中,本文将在第二章對目前問題進行定義,在第三章對基礎模型架構以及我們的 KOBE 模型的具體實作進行闡述,在第四章彙報實驗結果并在第五章介紹在春節雲主題場景的應用。

2. 問題定義

KDD 2019 | 基于知識的個性化推薦理由生成解析
KDD 2019 | 基于知識的個性化推薦理由生成解析

而對于我們目前的推薦場景,我們的問題定義相較過去有所改變。為了實作推薦理由的知識引入和個性化,我們引入了特征屬性和知識。特征屬性指的是商品的某些方面,如外觀、品質等。針對每一個商品,目前的輸入除了 x 以外,還有與它對應的特征屬性

KDD 2019 | 基于知識的個性化推薦理由生成解析

。l 表示特征類别的總量,而針對每一個特征類别,存在多個具體特征。在下文模型實作部分,我們将詳細介紹特征屬性的來源。這些特征屬性可以是經常關注相似商品的使用者标簽,于是系統可以利用這部分資訊去追求更加個性化的文案。

此外,我們使用了外部知識庫,使得我們輸入的商品和其相關的知識聯系起來。我們使用了具有文本描述的外部知識庫 CN-DBpedia。該知識庫中對每個命名實體都有相關的純文字描述。針對每個商品,我們從知識庫 w 挖掘其對應的知識:

KDD 2019 | 基于知識的個性化推薦理由生成解析

在此基礎上,我們的問題轉變為,輸入商品名稱 x ,以及它對應的特征屬性 a 和相關知識 w ,系統需要生成一段針對該商品的并具有相關知識的個性化推薦理由 y 。

3. KOBE 模型設計

KOBE 的模型架構差別于傳統的 RNN-based Seq2Seq,采用現在在機器翻譯任務取得 SOTA 表現的 transformer 架構 (Vaswani et al, 2017)。考慮到傳統的 RNN-based Seq2Seq 對長距離依賴的捕捉效果不如自注意力,我們把我們的方法建立在基于自注意力機制的 transformer 模型。在 baseline 的對比中,transformer 的表現要優于 RNN-based Seq2Seq。在接下來的部分中,我們首先介紹 transformer 模型,然後介紹我們如何基于這個模型引入個性化相關特征和外部知識,完成 KOBE 模型的建構。下圖展示了 KOBE 模型的基本架構。

KDD 2019 | 基于知識的個性化推薦理由生成解析

3.1. Transformer

Transformer 本身也是一個基于編碼器-解碼器架構的模型,也可認為是 Seq2Seq 的一種。與基于 RNN 的 Seq2Seq 不同的是,編碼器和解碼器的實作均基于自注意力機制,而沒有使用 RNN 的架構。在這裡我們簡單介紹編碼器和解碼器的實作。

編碼器由多層的自注意力層疊而成(一般為6層,如果要實作大模型的話可以增加層數)。編碼器接受文本序列的輸入x,通過詞嵌入層将其轉變為詞嵌入序列

KDD 2019 | 基于知識的個性化推薦理由生成解析

。而由于模型不同于 RNN,無法直接捕捉到輸入的序列關系,我們給 e 加上位置編碼以後再送入編碼器的自注意力層。

每個自注意力層主要包括自注意力機制和全連接配接層,内部使用了殘差連接配接和 layer normalization。此處以第一層為例。注意力機制可以用如下方法表示:

KDD 2019 | 基于知識的個性化推薦理由生成解析

其中,mathbf{Q},mathbf{K} 和 mathbf{V} 分别代表注意力機制的輸入。在自注意力機制中,這三項均為輸入 e 的線性變換,其中

KDD 2019 | 基于知識的個性化推薦理由生成解析

。自注意力則可以表示為:

KDD 2019 | 基于知識的個性化推薦理由生成解析

其中 在此處可以表示隐藏層的大小,而在多頭注意力機制中則為頭的大小。多頭注意力機制将輸入切分成多頭,分别進行注意力計算,然後将各自輸出拼接起來。

在自注意力子產品後,全連接配接層(FFN)将之前的輸出進行變換,具體實作如下:

KDD 2019 | 基于知識的個性化推薦理由生成解析

而解碼器的實作近似于編碼器,同樣采用了多層的自注意力層。不同的是解碼器增加了 context attention,将編碼器和解碼器聯系起來。具體實作上近似于自注意力的實作,隻需把 K 和 V 替換成編碼器輸出 h 的線性變換。

在接下來的部分,我們将重點介紹我們的 KOBE 模型,其中包括 Attribute Fusion 子產品和 Knowledge Incorporation 子產品,解釋如何将個性化推薦相關特征和外部知識引入到原有架構中。

3.2. Attribute Fusion

包括 transformer 和 RNN-based Seq2Seq 在内,baseline 模型都有生成文本多樣性不足的問題。這些模型通常會采用比較寬泛和模糊的表述,而且表達方式比較單一,内容也比較雷同和單調。為了減輕這個問題,我們引入個性化推薦相關特征屬性,主要集中在兩個方面。第一個是 aspect,指的是産品的特定方面,比如外觀、品質等。第二個是 user category,即該産品比對的使用者群體,比如機械鍵盤對應的使用者群體是科技愛好者等。通過這個方法,模型能夠根據不同的使用者群體生成他們所偏好的文本, 包括風格和内容層面。以下我們将介紹這些特征的來源以及它們如何通過 Attribute Fusion這一子產品融入到模型中。

KDD 2019 | 基于知識的個性化推薦理由生成解析

對于 aspect,我們希望模型能夠根據給定的方面生成相對應的推薦理由。比如給定“品質”,模型應當生成描述産品品質的推薦理由。但由于訓練集規模較大,我們難以獲得大量的标注好 aspect 的推薦理由。我們利用啟發式的方法,首先用标注資料集訓練一個基于 CNN 的文本分類器,能夠将輸入的推薦理由分類到對應的 aspect,然後我們利用這個分類器對大量未标注資料進行标注。于是訓練集中所有的樣本都得到屬于自己的 aspect。而對于 user category,我們使用了資料超市中使用者特征偏好興趣度的資料,我們把這些标簽認為是使用者類别。我們利用使用者的隐性回報來給資料進行标注,如點選行為和停留時間等,進而每個樣本都能得到相對應的使用者類别。資料準備完畢後,我們利用 Attribute Fusion 子產品将它們實作有機融合。

具體實作上,我們分别利用不同的詞嵌入層分别獲得 aspect 和 user category 的詞嵌入表示

KDD 2019 | 基于知識的個性化推薦理由生成解析

KDD 2019 | 基于知識的個性化推薦理由生成解析

,然後将兩者平均後獲得 attribute 的表示

KDD 2019 | 基于知識的個性化推薦理由生成解析

。随後我們将這個attribute 的表示和商品标題的詞嵌入序列 e 的每個時間點的詞嵌入表${e_{i}$相加,等到一個新的詞嵌入序列,然後再将它送入到 transformer 模型中。

3.3. Knowledge Incorporation

另一個文本生成的常見問題就是缺乏資訊量。baseline 模型生成的推薦理由相對比較單調,資訊量不足,尤其缺乏傳達相關知識的能力。對于讀者來說,讀者希望看到的推薦理由應當包含有效資訊,也就是有用的知識。考慮到這個問題,我們設計了 knowledge incorporation 這一子產品,目的是将産品相關的知識融入到文本生成模型中。進而,模型生成的推薦理由能變得更加“言之有物”。

KDD 2019 | 基于知識的個性化推薦理由生成解析

為了對知識進行編碼,我們建立了一個知識編碼器。該編碼器同樣是一個基于自注意力機制的編碼器,具體模型構造和上文所述編碼器一緻。類似于上文編碼器的行為,知識編碼器将輸入的知識編碼成新的表示 u。至此,我們得到了商品标題表示 h 和相關知識表示 u。

為了實作商品标題表示和相關知識表示的有效結合,我們實作雙向注意力機制 (Seo et al., 2016),分為“标題到知識的注意力”和“知識到标題的注意力”。兩者的功能各有不同。标題到知識的注意力能夠擷取和标題相關的知識,而知識到标題的注意力則擷取和知識相關的标題内容。對于這部分的注意力,首先計算兩者的相似度然後根據權重對要擷取的内容進行權重求和。相似度計算如下:

KDD 2019 | 基于知識的個性化推薦理由生成解析
KDD 2019 | 基于知識的個性化推薦理由生成解析

4. 春節雲主題實戰

在春節期間,我們在春節雲主題的項目上線了 KOBE 模型,為每個類目提供相應的個性化推薦理由。可以看到我們生成的推薦理由表達流暢,能夠根據類目和産品特點選擇符合産品相關知識的描述,并且能夠攜帶一些具有趣味性的表達。以下是上線效果示意圖和 demo 視訊:

KDD 2019 | 基于知識的個性化推薦理由生成解析
KDD 2019 | 基于知識的個性化推薦理由生成解析

5. 結果&展望

對于推薦理由生成,可能與經典的 recommender system 推薦具體商品的解釋有所不同,但是我們上述考慮的推薦理由生成技術已經逐漸成熟。消費内容是目前趨勢,電商平台的内容化一定大有可為,我們希望在内容生成的探索上為平台帶來些許幫助。

Reference:

[1] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. 2014. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473 (2014). [2] Thang Luong, Hieu Pham, and Christopher D. Manning. 2015. Effective Approaches to Attention-based Neural Machine Translation. In EMNLP’15. 1412–1421. [3] Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. 2016. Bidirectional attention flow for machine comprehension. arXiv preprint arXiv:1611.01603 (2016). [4] Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. 2014. Sequence to Sequence Learning with Neural Networks. In NIPS’14. 3104–3112. [5] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is All you Need. In NIPS’17. 6000–6010. [6] Bo Xu, Yong Xu, Jiaqing Liang, Chenhao Xie, Bin Liang, Wanyun Cui, and Yanghua Xiao. 2017. CN-DBpedia: A never-ending Chinese knowledge extraction system. In IEA/AIE’19. Springer, 428–438.

繼續閱讀