如何提升推薦系統的可解釋性?京東智能推薦賣點技術全解析

来源:https://www.cnblogs.com/datafuntalk/archive/2022/05/07/16244204.html
-Advertisement-
Play Games

**導讀:**京東智能商客之推薦賣點是基於NLP的產品,目前已廣泛地助力和賦能於京東商城的各個平臺。今天和大家分享一下自然語言處理如何在工業界落地實現。主要圍繞以下5個方面展開: 推薦賣點技術背景 架構描述 核心AI技術 模型研發與實踐 產品的落地與回報 -- 01 推薦賣點技術背景 1. 什麼是推 ...


file

導讀:京東智能商客之推薦賣點是基於NLP的產品,目前已廣泛地助力和賦能於京東商城的各個平臺。今天和大家分享一下自然語言處理如何在工業界落地實現。主要圍繞以下5個方面展開:

  • 推薦賣點技術背景
  • 架構描述
  • 核心AI技術
  • 模型研發與實踐
  • 產品的落地與回報

--

01 推薦賣點技術背景

1. 什麼是推薦賣點,用推薦賣點能做什麼事情?

file

如何提升推薦系統的可解釋性?京東智能推薦賣點技術全解析
推薦賣點是一種商品文案,或者稱之為對商品的描述。商品文案,即電商平臺中線上利用文字來描述商品的特征、特色點、詳細信息,以輔助商家吸引顧客、促進商品銷售,豐富商品的推薦理由。

商品文案有多種類型,不同類型的商品文案有著不同的功能,主要包括長文案(商品標題和商品描述),短文案(賣點)。

商品標題是一種綜合性描述信息的文字,在有限的字數內,信息完整且客觀地闡述商品,例如描述商品的品牌、是什麼物品、主要功能等。
商品描述類似於商品廣告,可圍繞某些特色點進行宣傳,引導用戶購買該商品。
商品賣點的目標是突出商品的特色,通常在8個字以內,用於豐富商品推薦理由。
傳統的商品文案多是由人工撰寫,費時費力,撰寫速度也很難跟上新商品的迭代速度。隨著自然語言處理飛速地迭代和發展,尤其是深度語言生成模型,通過商品文案自動化生成技術,可以幫助商鋪的店家以又快又省的方式進行商品宣傳。

2. 目前常用的文案生產技術

file

商品文案自動寫作屬於自然語言處理領域中text summarization或者natural language generation的問題。

輸入是長文本形式,包括商品屬性、商品詳細描述、買家評論等,輸出是目標商品文案,包括商品描述、商品標題、商品賣點等。

目前有以下幾種文案生成模型的方法,如Template-based generation、Deep neural network-based generation、Knowledge-based incorporate、Pattern-controlled等。

  • Template-based generation:一種較為傳統的方式,需要預先定義某類別商品的屬性,然後進行商品的屬性值提取,最後基於提取的商品屬性做文案生成;
  • Deep neural network-based generation:隨著深度學習的出現,開始使用深度生成模型做自然語言的生成,大多依靠的是典型的編碼器和解碼器結構,基於transformer等特征處理技術;
  • Knowledge-based incorporate:引入知識圖譜和知識庫等技術使生成的文案信息鏈更全,即使輸入的信息不夠完整,也可進行知識整合;
  • Pattern-controlled:該種方式能夠控制生成文案的過程,比如可以控制生成的主題、重點、語言風格,以及文案長度等。

以上這幾種方式主要針對長文本文案生成,目前還沒有針對賣點短文案的生成技術。

3. 推薦賣點價值

file

賣點文案生成的核心是服務於推薦系統,可增加推薦系統的可解釋性,向用戶展示推薦理由;結合用戶喜好進行個性化推薦,從而傳達準確信息供用戶決策;向用戶展示特色優勢如服務和優惠等信息,可以提升用戶的滿意度,促進點擊行為,同時增加用戶對平臺的信任度以及延長停留時間。

4. 賣點短文案自動生成技術

file

通過賣點自動化生成技術,避免人工文案寫作,節約了時間成本;同時,賣點短文案不需要複雜的文學表達,比較適合採用自動化文案生成的方式。為了生成高質量的賣點文案,需要做到以下幾點:

  • 能夠捕捉到內容的特色點,足夠吸睛;
  • 文案長度有限,需要簡短精巧,但包含重要信息;
  • 能夠實現個性化分發,針對不同的目標用戶展示不同的推薦理由。

--

02 架構描述

接下來通過介紹推薦賣點在推薦系統中的架構設計來介紹賣點如何與推薦系統結合發揮作用。

首先是當請求被初始化時,混合模塊(SOA)會觸發前端(Broadway)收集用戶信息、商品信息等數據;基於收集到的客戶資料,Index模塊作為Broadway和後端推薦的中轉站,將信息提供給推薦模塊;AI-flow是推薦模塊,執行召回和排序,以獲取推薦候選產品,根據產品的庫存和受歡迎程度進行篩選,最後確定要推薦的產品同時將請求發送給賣點模塊,進行賣點的提取和個性化分發。

file

  • SOA/Mixer:協調廣告、推薦和分配應用的混合模塊/平臺。所有請求最初都發送到這個混合模塊,然後分配給每個應用程式。
  • Broadway:推薦系統的前端。收集客戶的資料信息和購買歷史,以及產品信息(包括屬性、評論、描述、和圖像等),這些數據被髮送到索引模塊。
  • Index:作為broadway和後端推薦部分的中轉站。Index準備好來自broadway的輸入數據並轉發給推薦模塊,並從AI-flow和filtering模塊接收推薦產品及賣點。
  • AI-flow(召回):推薦模塊中負責召回特征的關鍵組件。這裡用到的特征都是離線提取出來的,召回是AI-flow的第一步,它根據用戶和產品特征從海量庫存中檢索出少量可能感興趣的物品,然後將他們傳遞給排序模塊。
  • AI-flow(排序):這裡我們採用非線性和線性的排序方法。GBDT用於非線性排序,可以更好地從特征中捕捉非線性模式,邏輯回歸用於線性特征排序;為了更好地捕捉動態數據分佈,我們實施一種基於FTRL(McMahan2011)的線上學習策略來處理線上數據流。
  • Intelligent Online Product Selling Point Extraction (IOPSE) :用於產生賣點以支持產品推薦。具體來說,給定一個推薦商品,從賣點池中提取幾個優質的賣點,然後根據目標客戶的個人資料,通過個性化分配演算法選擇最適合的賣點,然後將客戶ID、產品推薦和賣點發送回前端進行展示。

--

03 核心AI技術

1. 智能賣點創作的技術流程

整個智能賣點創作模塊分為兩個部分:

賣點短文案的提取和生成,採用基於商品詳情和用戶評論的文本生成技術;
個性化賣點分發,採用基於用戶畫像的用戶個性化賣點分發技術。
以石榴這個商品為例,首先獲取賣點素材,比如石榴的屬性表,商品標題,以及採用OCR文字識別技術從商品詳情圖片中提取的文字,買家的正向評論等;然後將獲取的賣點素材輸入到賣點提取和生產模塊中,生成針對一個商品的多個優質賣點;在個性化分配模塊中,結合客戶興趣給不同的用戶進行不同的推薦賣點展示。

file

2. 賣點短文案的提取和生成

賣點短文案的提取和生成,主要包括賣點粗篩、賣點生成、賣點精篩這三個步驟。

① 賣點粗篩

目標是從商品文案素材庫里(商詳頁OCR,用戶評論,達人文案等)提取初始賣點候選,主要基於self-adversarialBERT對文案素材(句子或者短語)進行打分,然後根據打分排序並選擇top-K作為賣點生成素材,大範圍地過濾掉與商品無實質性意義的短語或者句子。

file

在素材文案評分中,將人工寫作的賣點(達人文案)定義為正樣本,將用戶評論或者商詳頁OCR等作為負樣本,使用自對抗的BERT模型做分類訓練。在實踐的過程中,當句子輸入模型之後,獲取Bert模型的softmax層輸出概率,表示該句子被分到高質量的概率,根據句子的概率進行排序。這裡簡單介紹一下Bert模型。它是基於Transformer的雙向預訓練語言模型,在預訓練階段有Mask語言模型和預測句子關係兩個任務,在此基礎上進行finetune從而完成文本相似度計算、文本分類、序列標註、問答類問題等。文本輸入表徵包括了語義表徵、segment表徵(分割信息表徵)、位置表徵;最後將softmax層輸出作為該文案的質量評分:

file

file

file

② 賣點生成

由於粗篩中選出的文案素材口語化、不簡練,因此我們接下來依據Transformer和Pointer generator的文本生成模型基於已經篩選出的文案素材庫進行賣點文案生成。

file

Transformer是用於學習輸入文本的表徵向量,它的重要組成部分包括自註意力機制(multi-head self-attention)和位置編碼(positional embedding)。自註意力機制本質上會對句子中的每個字構建全連接的圖,通過計算attention學習每個字的表徵向量,考慮到句子中所有的字對該字的影響。位置表徵中,每一個位置點都有一個編碼,是一個周期函數。

file

將上一步獲取到表徵進行Decoder生成賣點文案。Pointer generator與其他的語言生產模型的區別在於,其不僅可以從詞庫挑選要學習到的字,還可以從輸入的句子中挑選字。首先分別計算從詞庫中選擇字和從輸入中選擇字的概率,然後再將詞庫中的概率分佈和輸入中的概率分佈結合獲得最終的概率分佈。

file

③賣點精篩

賣點精篩模型區別於粗篩模型,將生成後的賣點文案,輸入到一種遞歸銳化的BERT模型中進行訓練。具體來說,首先將達人賣點寫作當做正樣本,素材庫文案/初始模型生成文案當做負樣本,輸入到Bert初始分類模型中進行訓練;然後將前一步生成的排名靠前的高質量文案作為負樣本,達人賣點文案作為正樣本,再次輸入到Bert模型中做優化訓練,迴圈多次獲得最終的高質量賣點文案。

file

3. 個性化分發

接下來,我們介紹基於用戶畫像的個性化分發。每一個產品有不同的特色點,可以產生多個高質量的賣點,我們希望根據客戶的興趣點為其分配最有吸引力的賣點,以引導用戶購買該商品。個性化分發分為兩個步驟,首先生成賣點文案的表徵向量和用戶興趣的表徵向量,然後匹配賣點表徵向量和用戶表徵向量,從而實現賣點個性化分發。

file

用戶興趣嵌入表徵:通過work2vector方式獲得產品詞里每個字的word embedding,將產品詞中每個字的表徵向量求和獲取該產品詞的表徵,結合用戶對每個產品詞的喜好權重,然後對所有的產品詞進行加權平均,獲取用戶對產品詞的喜好的表徵向量。

賣點文案的特征向量:通過work2vector方式獲得賣點文案里每個字的word embedding,然後對賣點文案中每個字的表徵向量求和得到賣點文案特征向量。

file

個性化分發:通過計算用戶興趣表徵向量和賣點文案表徵向量的相似度來實現。可用的向量相似度計算的主要方法有餘弦相似度、皮爾森繫數、歐式距離和基於Kernel的相似度計算等。

file

--

04 模型研發與實踐

1. 文案輸出素材選擇

在模型開發的過程中,首先需要探索不同的賣點文案資源庫對生成高質量賣點的影響。候選的賣點素材庫除了基本的商品描述外,還有買家評論和商詳頁OCR提取文字。為了探索這兩種素材來源的優劣,我們對比了這兩種文案(買家評論、商詳頁OCR提取內容)在5周內對指標提升的影響。從下圖中可以觀察到,買家評論和商詳頁OCR提取內容均可以提高與銷售相關的性能指標。特別地,買家評論素材源可將UV提升7%左右,原因可能是其他用戶的評論更能激發用戶的興趣,即所謂的買家更瞭解買家;此外,商詳頁OCR素材源可能會帶來1%左右的提升;這些數據告訴我們可以將這兩個素材庫作為初始素材庫。

file

2. 線上賣點文案質量監管

在實踐過程中,我們希望能夠實時地檢測和過濾歷史數據中對購買行為產生負面影響的低質量賣點或者對購買行為產生促進作用的高質量賣點。由於人工很難綜合評估賣點是否對客戶有吸引力,所以我們希望通過業務端的反饋作為指標來幫助我們去識別高質量賣點或低質量賣點,在此基礎上,可以過濾掉低質量賣點,同時通過實際生產過程中的高質量賣點來重新優化模型。對於線上監控模塊,我們需要通過與業務相關的指標(曝光率、點擊價值、客戶停留時間等)計算相對提升指標。

file

3. 離線賣點文案模型優化

對於離線優化模塊,我們發現經過業務反饋過濾出的低質量賣點和高品質賣點可以使模型對高質量賣點文案選擇更加敏感,起到優化模型的作用。在實踐過程中,我們將相對提升指標大於30%並且基礎點擊PV > 5%的短文案作為高質量正樣本,剩餘文案作為負樣本,然後輸入到BERT模型中進行finetune,重新打分排序獲取高質量文案;同時我們將基礎點擊PV大於對比點擊PV或者對比點擊PV小於某個閾值的短文案作為低品質負樣本,剩餘文案作為正樣本,然後輸入到BERT模型中進行finetune, 從而打分排序同時過濾低評分的賣點文案。

file

--

05 產品落地與回報

當目前為止,我們已經完成了億級別的賣點挖掘和生產,覆蓋了上億的SKU,62個品類(包括家電、運動、生鮮、處方藥等);同時,生成的賣點是多樣化的,包括商品特色類、特色服務類、名人同款類、用戶行為類、用戶評價類、特色人群類,旨在能夠挖掘商品特點以助力體驗提升或者引入用戶數據激發從眾行為;另一方面,從銷售指標上看,賣點技術可以有效幫助提升商品點擊率(+2%)和停留時長(0.32%+),日常效果正向促進活動頁賦能;基於LBS信息建設特色人群賣點(消費升級或者同城偏好),效果正向,目前在賦能極速版助力下沉市場用戶運營。此外,推薦賣點也廣泛地賦能於主站、京喜、極速版、通天塔活動頁等多個應用場景。

file



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前端開發環境多數基於Node.js,好處不多說了。但與使用Visual Studio開發的後端Asp.Net Core項目一起調試,卻不是很方便,所以試著在Visual Studio 2022中開發前端。 創建宿主項目 首先創建一個空的Asp.Net Core項目作為宿主,創建完成後將Program ...
  • 1 刪除0位元組文件 find -type f -size 0 -exec rm -rf {} \; 2 查看進程 按記憶體從大到小排列 PS -e -o "%C : %p : %z : %a"|sort -k5 -nr 3 按 CPU 利用率從大到小排列 ps -e -o "%C : %p : %z ...
  • centos換源+安裝postgresql http://mirror.nsc.liu.se/centos-store/8.2.2004/isos/x86_64/ 鏡像安裝網站 https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.24 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 註意: Ubuntu18.04預設GCC-7,由於CUDA 9.x不支持GCC-7(下載頁面沒有對ubuntu18的支持),所以需要安裝低版本的5或者<= 6.3.0,並設置為預設版本。否則應安裝10.0以上版本CUDA 1.查看是否安裝了cud ...
  • 本文例子參考《STM32單片機開發實例——基於Proteus虛擬模擬與HAL/LL庫》 源代碼:https://github.com/LanLinnet/STM33F103R6 項目要求 同04節,電路常態為流水燈狀態,當按下按鈕BTN0時,8個LED燈全亮全滅閃爍3次後恢復到常態;當按下按鈕BTN ...
  • unzip 命令可以查看和解壓縮 zip 文件。該命令的基本格式如下: [[email protected] ~]# unzip [選項] 壓縮包名 此命令常用的選項以及各自的含義如表 1 所示。 選項 含義 -d 目錄名 將壓縮文件解壓到指定目錄下。 -n 解壓時並不覆蓋已經存在的文件。 -o 解壓時覆 ...
  • 一、安裝JDK8 【溫馨提示】這裡使用jdk8,這裡不要用其他jdk了,可能會出現一些其他問題的,我用jdk11有些包就找不到,好像jdk9都不行 1)JDK下載地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html ...
  • 1、下載安裝包 打開官網,跳轉至下載界面,選擇對應版本的安裝包,拷貝其鏈接,這裡是手動安裝,所以下載tgz安裝包,如果要自動化安裝,選擇server的rpm自動安裝包 https://www.mongodb.com/try/download/community 這裡直接使用wget下載至伺服器中,然 ...
一周排行
    -Advertisement-
    Play Games
  • 一:背景 準備開個系列來聊一下 PerfView 這款工具,熟悉我的朋友都知道我喜歡用 WinDbg,這東西雖然很牛,但也不是萬能的,也有一些場景他解決不了或者很難解決,這時候藉助一些其他的工具來輔助,是一個很不錯的主意。 很多朋友喜歡在項目中以記錄日誌的方式來監控項目的流轉情況,其實 CoreCL ...
  • 本來閑來無事,準備看看Dapper擴展的源碼學習學習其中的編程思想,同時整理一下自己代碼的單元測試,為以後的進一步改進打下基礎。 突然就發現問題了,源碼也不看了,開始改代碼,改了好久。 測試Dapper.LiteSql數據批量插入的時候,耗時20秒,感覺不正常,於是我測試了非Dapper版的Lite ...
  • 需求如下,在DEV框架項目中,需要在表格中增加一列顯示圖片,並且能編輯該列圖片,然後進行保存等操作,最終效果如下 這裡使用的是PictureEdit控制項來實現,打開DEV GridControl設計器,在ColumnEdit選擇PictureEdit: 綁定圖片代碼如下: DataTable dtO ...
  • 前兩天微軟偷偷更新了Visual Studio 2022 正式版版本 17.3 發佈,發佈摘要: MAUI 工作負荷 GA 生成 MAUI/Blazor CSS 熱重載支持 現在,你將能夠使用我們的新增功能在 Visual Studio 中使用每個更新試用一系列新功能。 選擇每個功能以瞭解有關特定功 ...
  • 航天和軍工領域的數字化轉型和建設正在積極推進,在與航天二院、航天三院、航天六院、航天九院、無線電廠、兵工廠等單位交流的過程中,用戶更聚焦試驗和生產過程中的痛點,迫切需要解決軟體平臺統一監測和控制設備及軟體與設備協同的問題。 ...
  • .NET 項目預設情況下 日誌是使用的 ILogger 介面,預設提供一下四種日誌記錄程式: 控制台 調試 EventSource EventLog 這四種記錄程式都是預設包含在 .NET 運行時庫中。關於這四種記錄程式的詳細介紹可以直接查看微軟的官方文檔 https://docs.microsof ...
  • 一:背景 上一篇我們聊到瞭如何去找 熱點函數,這一篇我們來看下當你的程式出現了 非托管記憶體泄漏 時如何去尋找可疑的代碼源頭,其實思路很簡單,就是在 HeapAlloc 或者 VirtualAlloc 時做 Hook 攔截,記錄它的調用棧以及分配的記憶體量, PerfView 會將這個 分配量 做成一個 ...
  • 背景 在 CI/CD 流程當中,測試是 CI 中很重要的部分。跟開發人員關係最大的就是單元測試,單元測試編寫完成之後,我們可以使用 IDE 或者 dot cover 等工具獲得單元測試對於業務代碼的覆蓋率。不過我們需要一個獨立的 CLI 工具,這樣我們才能夠在 Jenkins 的 CI 流程集成。 ...
  • 一、應用場景 大家在使用Mybatis進行開發的時候,經常會遇到一種情況:按照月份month將數據放在不同的表裡面,查詢數據的時候需要跟不同的月份month去查詢不同的表。 但是我們都知道,Mybatis是ORM持久層框架,即:實體關係映射,實體Object與資料庫表之間是存在一一對應的映射關係。比 ...
  • 我國目前並未出台專門針對網路爬蟲技術的法律規範,但在司法實踐中,相關判決已屢見不鮮,K 哥特設了“K哥爬蟲普法”專欄,本欄目通過對真實案例的分析,旨在提高廣大爬蟲工程師的法律意識,知曉如何合法合規利用爬蟲技術,警鐘長鳴,做一個守法、護法、有原則的技術人員。 案情介紹 深圳市快鴿互聯網科技有限公司 2 ...