利用詞嵌入模型打造 KKday 部落格第一個內容推薦模型

江奕泓 (Henry Jiang)
KKday Tech Blog
Published in
9 min readMay 24, 2022
KKday 部落格

概覽

KKday 除了有龐大的電商資源外,近年來也積極佈局自媒體。目的是讓用戶除了在意向明確的時候進行購買外,也能夠在意向不明確的時候透過 KKday的內容來尋找購物的靈感,並且培養與品牌更加深厚的連結。而在行銷團隊長期的經營之下,目前主要的渠道為 Facebook, Instagram, Youtube, KKday 部落格,而 KKday 部落格正是本篇分析的主角。

從2014年以來,KKday 部落格已經累積上千篇由專業編輯撰寫的內容,在許多關鍵字上都有非常好的成效。透過包羅萬象的主題,我們吸引許多不同目的的用戶,尤其在疫情之後,對於旅遊的需求逐步復甦,用戶的成長不斷增加。透過數據分析,我們發現內容用戶也是極具潛力的付費用戶,因此現在面臨到的挑戰便是,如何將這群用戶的需求轉為行為,成功地引導這群用戶完成購買他們需要的產品,以下將會描述如何利用自然語言處理來達成這個目標。

用戶旅程

如下圖所示,在 KKday 部落格當中,用戶旅程始於對資訊的需求,終於對需求的滿足,抑或是找不到資訊而離開。因此,我們必須要在每個和使用者的接觸點中盡可能的讓用戶快速的找到需要的資訊。

KKday Blog 用戶旅程

個人化文章推薦

目前 KKday 首頁的文章呈現方式是以時間排序,因此用戶可以第一時間了解到最新發表的文章;但考量到用戶可能都會有一些個人化的閱讀需求,因此若能從探索讀者的閱讀偏好給予客製化的推薦列表,或許也是一個能在短時間內讓他們獲得精準資訊的機會。因此,後續我們希望能夠透過用戶的屬性與瀏覽歷程提供個人化的文章推薦,提升用戶的 page views,讓讀者有更多的機會留在站上。

KKday Blog 首頁

相似文章推薦

推測當用戶在看某一類型文章的時候,是有意圖的想搜尋該類產品的資訊,因此我們也希望在用戶瀏覽文章的時候,推薦其他有類似內容的文章,舉例而言,當用戶今天瀏覽樂園類相關文章的時候,若有其他樂園類相關的文章列表,就能繼續吸引用戶閱讀。

位於文章下方的相似文章推薦版位

文章相似產品推薦

過去在部落格的內容就已經會置入 KKday 的產品,較多是以編輯的角度選擇產品放置於文章內,考量到還有一些使用者習慣會偏好看文章旁邊的推薦列表,因此我們決定再增加一些讀者點擊產品的機會,試著透過模型來計算出與文章最相似的產品,放置於文章旁的推薦列表,進而吸引用戶點擊。未來相信也能給予編輯在文章內放入產品的選品參考。

文章相似產品推薦版位

方法

在此以文章相似產品推薦為例子,我們會將推薦的流程分為四個流程:

  1. 以文章的資料產出 Article embeddings matrix
  2. 以產品的資料產出 Product embeddings matrix
  3. 以餘弦相似度(Cosine similarity)計算 Article embeddings matrix 與 Product embeddings matrix 間的距離
  4. 排序 Cosine similarity,可以找出與 article 最相近的 product
模型建置流程

Article embedding / Product embedding

在 Article embedding / product embedding 模型上,目前使用 Word2vec 來獲得不同詞彙的 embedding。Word2vec是從2013年由 Google Research Scientist Tomas Mikolov 等人 所發展出來的技術。傳統的NLP模型(ex: N-gram model)將文字視為彼此獨立的原子單位(atomic units),使文字間失去關聯性,且在許多的任務上也已經到達了技術上的極限。因此,Word2Vec model 在當時很好的解決了這些問題,以下就用簡單的方式說明 Word2Vec model。

Word2Vec 提出兩種新的模型架構來學習詞向量(distributed representations of words),包含 CBOW 與 Skip-gram。觀察下圖的模型架構,可將 CBOW 模型理解為透過當前文字的上下文來預測當前文字;而 Skip-gram 則是透過輸入當前文字來預測來預測上下文,而在本次的模型中,使用的是 CBOW。

Word2Vec 模型示意

word embedding 之於詞彙就如同 RGB 之於顏色,我們能夠過調整 RGB 不同比例來拼湊出千變萬化的顏色;而在此我們透過模型學習詞彙的表達方式(word representation),如維度1可能代表該詞彙表達生物概念的權重(living being)、維度二代表該詞彙表達貓概念的權重(feline)。最後,我們就能利用特定數量的維度來表達各式各樣的詞彙。

本次模型中,我們利用 Word2Vec 取得 N 個維度的 article embedding / product embedding 後 ,再透過 t-distributed stochastic neighbor embedding(t-sne)的方式將資料降至二維讓我們可以直覺地觀察文章 / 產品之間關聯的分佈,內容越相近的便會被演算法分為同一群,也因此我們可以類似的概念找出與文章最相似的產品。

透過 t-sne 用二維空間視覺化文章的分佈狀況
t-SNE(t-distributed stochastic neighbor embedding,t-隨機鄰近嵌入法)是一種非線性的機器學習降維方法,由 Laurens van der Maaten 和 Geoffrey Hinton 於 2008 年提出,由於 t-SNE 降維時保持局部結構的能力十分傑出,因此成為近年來學術論文與模型比賽中資料視覺化的常客。資料來源: 資料降維與視覺化:t-SNE 理論與應用

Cosine similarity

Cosine similarity 指藉由計算兩個向量夾角的餘弦值,來衡量它們之間的相似性。在這裡一個向量代表的是某一個用戶的 user embedding 或某一篇文章的 article embedding,值越接近1表示文章與用戶行為越相近。

餘弦相似度公式

推薦結果

透過以上的計算方式我們可以得到下列的文章與用戶相似度矩陣,再將相似度降冪排序後便可以得到與用戶行為最相近的文章並推薦給用戶;相較於過往單純使用最新的文章呈現於首頁提供用戶選擇,這個方式的好處是根據不同用戶過往的行為,展示其可能有興趣的內容,增加其點擊文章與留存在站內瀏覽的機率。

文章-產品相似矩陣

成果

根據測試指標顯示,新增文章推薦產品版位未能顯著提升預期的指標

測試方式: 由於產品推薦版位為新增的區塊且不影響用戶體驗,因此為了快速蒐集數據結果並未採用控制變因的實驗設計,而是直接上線並與未採用推薦板位的時間區段進行比較。

測試時間: 版位上線一個月。

測試指標: 在本次測試中,指標主要分為兩項

  1. 產品頁點擊率 : 總產品頁連結點擊數/總文章瀏覽數

就檢定結果而言,文章推薦產品的板位並未造成產品頁點擊率顯著上升,推測原因如下:

  • 產品推薦的廣度仍有提升空間,在選品上過度重疊可能會限縮能吸引到的點擊用戶數量
  • 台灣於四月開始疫情加劇,影響到台灣市場用戶的旅遊意願,因此也使得整體產品頁點擊率無法直接與未受到疫情影響下的時段進行比較。
KKday Blog 產品連結點擊率趨勢

2. 產品推薦版位流量佔比 : 來自部落格推薦的產品流量 / 部落格所有頁面的產品流量

  • 目前產品推薦版位的流量佔比仍有提升空間,但由於能集中提供用戶更明確的相關產品版位並能以固定頻率更新最新的產品給予用戶更好的體驗,未來在模型上仍會持續優化此項指標。

3. 來自部落格推薦的訂單數:

  • 目前蒐集到來自部落格推薦的訂單數量有限,最主要的原因為受限於產品推薦版位所帶到主站的流量占比仍有提升的空間,因此未來會先以優化產品推薦版位流量佔比作為首要目標。

未來展望

在模型優化上,未來希望透過數據分析驗證:

  1. 不點擊產品連結用戶的行為與點擊產品連結用戶的行為差異
  2. 不同文章類型轉換用戶點擊行為的差異
  3. 不同裝置用戶點擊行為的差異(ex: mobile / desktop / tablet)

除此之外,儘管文章推薦產品版位上的表現仍有許多優化空間,但我們仍對於跨出 KKday 在 own channel 結合數據分析與文字探勘技術應用的第一步感到雀躍。同時也基於內容數據的研究以及提升用戶在部落格的體驗等考量,KKday 將持續投入研發能力到內容數據的應用上,加速用戶在旅遊資訊蒐集的流程,並希望未來能夠帶給 KKday 部落格的讀者們更加一致化的體驗。

--

--

江奕泓 (Henry Jiang)
KKday Tech Blog

目前正在旅遊電商擔任數據分析師。熱愛數據分析,喜歡用數字說故事的生活型玩家,期許自己深度結合數據與商業應用。Linkedin:https://pse.is/3fjxpt