得物App相關推薦價格體驗最佳化

張哥說技術發表於2023-05-11

來源:得物技術

1

背景和問題

相關推薦模組是商詳頁的推薦核心模組,以幫助使用者高效選擇商品為目標進行演算法迭代。但是在最佳化過程中,我們發現價效比高的商品往往會在演算法推薦的排序中更有優勢,更容易曝光給使用者。然而這並非所有使用者的需求,例如在親友送禮有價格檔位需求等場景下,過度考慮價效比會引起適得其反的效果,導致不符合使用者需求、價格突兀等體驗問題。

存在的問題如下圖所示,主商品是兩千左右的吸塵器,但是推薦商品中混入價格一百多的商品。雖然都是家用吸塵器而且推薦商品的銷量都不錯,但是以這次進商詳頁的使用者行為意圖推斷,這款一百多的吸塵器不是目標商品。從使用者的角度看,推薦商品和主商品的相關性偏弱了,影響到使用者體驗。對平臺而言,這次商品曝光沒有達到幫助使用者更高效瀏覽的期望,沒能滿足使用者需求。

得物App相關推薦價格體驗最佳化     得物App相關推薦價格體驗最佳化

我們希望透過相關推薦的價格最佳化,以商品相關性為核心,以使用者當前時刻需求為導向,統籌考慮主商品調性、推薦商品價效比之間的關係,同時滿足使用者對商品價格體驗和平臺對uv價值的需求。

2

方案

思路拆解

如果貿然以權重打壓價格不符的商品,持平推薦商品與主商品價格,會導致商品相關性減弱,終端使用者不感興趣並且平臺訂單減少,這也是問題的難點所在。我們自上而下拆分推薦的鏈路環節,調整了召回、CTR與CVR精排模型、重排等演算法模組,以及嘗試了cspu的價格選擇和高價折扣商品補充等演算法策略,去實現價格體驗提升、商品相關性保持的目標。

  1. 召回演算法最佳化

召回模組存在召回結果的價格傾向於低價高價效比的問題。當主商品價格較低時,暴露的問題不明顯,因為候選池中有足夠的低價商品可供演算法選擇;但是當主商品價格較高時,候選池中可供選擇而且價格同樣也高的商品佔比偏低。巧婦難為無米之炊,這樣的情況下,即使後續模組再精準,也很難在召回候選池商品的約束下獲得高質量的推薦結果。

究其原因,人性使然,大家傾向於購買價廉物美的商品。這導致在高價品上的使用者行為互動少,那麼召回演算法會傾向於把價格更低而行為豐富的商品作為更優質的召回結果,最終使得高價品在召回構建中佔比偏低。

為了解決上述問題,我們針對性地設計了價格分桶召回演算法和建模價格的分類圖召回演算法。

價格分桶召回演算法在SWING方法的基礎上進行了升級。原版SWING以全域性商品作為訓練資料,構建user-item-user的行為關係。SWING的公式如下:

得物App相關推薦價格體驗最佳化

如公式中所示,在尋找商品i的相似商品時,如果召回商品j的行為越多,那麼公式中的求和項就越多,最後計算相似度結果也就更有優勢。因此,吸人眼球、容易產生更多互動的便宜商品更容易被召回。這過程中,卻自始至終未涉及到價格相關性的約束。

缺乏與主商品近似價格的商品來做候選,不但限制了精排模型的發揮,也削減了成交AOV,最終影響UV價值。因此,我們對召回演算法進行細耕。首先把商品和使用者的行為基於價格帶做切分。然後對劃分出的多個價格區間,分而治之。用價格區間內的user-item-user關係,計算區域性SWING求召回倒排鏈。這樣的做法減少了許多價格差異大使用者體驗差的CASE,保證召回階段商品價格的高相關度。

得物App相關推薦價格體驗最佳化

另外,也搭建了分類圖召回演算法,在基礎的GraphSAGE模型上進行了升級。常規GraphSAGE做法是是等權重的相鄰節點聚合。而我們在切分使用者行為session後,把價格用到了圖召回的連邊構建中,以商品的價格差影響聚合權重。最終,價格相近的鄰居節點在聚合中獲得了更高的聚合權重,更容易出現在圖召回的結果中。

得物App相關推薦價格體驗最佳化

召回的最佳化改進,彌補了候選池中高價商品的不足,為後續演算法進一步選品奠定紮實的基礎。

  1. CTR模型最佳化

CTR的準確預估是排序的核心。相關推薦模組區別於feed流場景,它存在主商品,所以構建出的是一個<使用者,主商品,推薦商品>的三元組關係。當前的CTR模型對價格感知不足,使得推薦商品對人或主商品的價格相關性都不夠。

為了解決這個問題,我們從對模型影響最大的價格特徵上著手進行最佳化,並以使用者和推薦商品的價格相關性作為難點重點突破。

a)使用者的消費水平刻畫。

使用者消費水平特徵的常見做法是拿使用者歷史瀏覽或購買的商品按價格進行整體刻畫。但是不同類目的價格分佈差異懸殊,得物的商品價差大,類目差異也更劇烈。例如買500元的口紅比買500元的包表現了更高的消費力,所以消費水平的刻畫必須與類目相結合。我們的做法是分別刻畫在每一個類目下的消費水平。細節上,增加了主商品-推薦商品價格分檔下的交叉特徵,使用者-推薦價格分檔下的交叉特徵以及使用者點選的價格分檔序列。

此外,為了精確刻畫使用者的長期興趣,我們將使用者行為序列擴充套件,採用自研Feature-Store提供的使用者長序列服務,把更多、更久的特徵喂入模型。大量的行為資料,幫助模型更好的學習使用者興趣,匹配與使用者價格興趣更相關的商品。

b)衍生特徵的刻畫。

除了價格本身,我們在做資料分析中發現,使用者的活躍度、成交AOV、商品點選率三者之間有密切的聯絡。

我們以1/7/30天為視窗統計使用者的場景內表現以及app內表現。按使用者活躍度進行等頻分桶刻畫,1代表最不活躍,10代表最活躍。不同活躍度的使用者在點選率和成交AOV上都展現出了不同的表現。活躍度高的使用者,在模組的內的點選率越高,成交AOV也更高;隨著使用者活躍度下降,點選率也下降,但是成交AOV卻出現了先減後增的情況。藉助這樣的差異表現,我們可以透過模型去學習出活躍度與客單價的潛在聯絡,輔助判斷使用者的消費傾向。

得物App相關推薦價格體驗最佳化

得物App相關推薦價格體驗最佳化

CTR特徵的最佳化,獲得了預期的正向收益,AOV+2.35%,場景uv價值+2.28%。

  1. CVR模型最佳化

CTR建模中,點選行為大多在曝光後立馬發生,但是轉化行為通常出現在點選後比較久的時間。價格高的商品,決策成本也更大,使用者往往需要更久的種草和下單時間。得物客單價高,這個效應也更強。由於高價商品往往不能當天完成購買,因此在樣本的構建中,如果以點選後當天是否轉化作為正負樣本的標籤判定,那麼便宜商品會更容易打上正樣本的標籤,而價高商品的正樣本標籤數量遠少於商品最終轉化的實際值。價格差異造成的樣本失衡,造成最後模型訓練結果的有偏。

從樣本構建的角度,除非等待無窮久的時間,直至最後點選樣本發生轉化,否則樣本失衡的問題會一直存在。為了緩解這個問題,可以延長樣本觀察時間,在點選後等待一段時間,以最終購買情況判定正負樣本。這裡就會涉及到歸因視窗長短的問題。如果歸因視窗過短,落在這之中的已轉換樣本過於少,難以準確建模所有的轉換;如果歸因視窗過長,意味著需要等足夠長的時間才可能用到新樣本,這就會引起時效性問題。

因此,面對這個CVR建模的難題,在定義完以是否7天內轉換為CVR模型的最終預估目標後,我們摸索了CVR延遲轉化建模的解決方法。

首先解決歸因視窗的問題,我們把歸因視窗分拆成當天轉化和2-7內轉換,用兩個視窗的方式去解決單一歸因視窗過短或者過長的問題。具體的,對於當日產生的新鮮樣本,我們透過mask=1控制樣本進入左側網路,預估當天內是否轉化。以當天的轉化label,作梯度反向傳播更新底層網路引數,保證網路能感知到最新的線上樣本資料的變化。接下來,這個樣本會等待足夠久的時間,直至7天的完整轉化週期,並以點選後2-7天是否發生轉化作為第二個label,用mask=0控制樣本進入右側網路。

得物App相關推薦價格體驗最佳化

兩個網路的輸出以機率公式相組合,計算出使用者在點選後7日內發生轉化的機率。

得物App相關推薦價格體驗最佳化

其中得物App相關推薦價格體驗最佳化為7日內發生轉化的機率,得物App相關推薦價格體驗最佳化為當天發生轉化的機率,得物App相關推薦價格體驗最佳化為第2-7天發生轉化的機率。

模型在評估中獲得auc+0.6%,gauc+0.89%的收益,驗證了我們的想法。

  1. 重排最佳化

舊排序公式是以CTR模型與CVR模型相乘作為排序依據。為了避免體驗case,加上價格調整引數。舊排序公式的數學表示如下:

得物App相關推薦價格體驗最佳化

但是上述的排序主體得物App相關推薦價格體驗最佳化物理意義是曝光轉化率。為了使得與最終建模目標uv價值呼應,我們將排序公式重新設計為如下形式:

得物App相關推薦價格體驗最佳化

但是這樣的公式形式也引發了一個新的問題,異常高價的商品會容易曝光展現。如果100元的主商品推薦出的是一個10000元的相關商品,那很顯然是一個相關性比較差、違背使用者購買力的badcase。為了解決這個,我們在公式修改的基礎上,增加了門型價格控制函式去做約束,如下所示。

得物App相關推薦價格體驗最佳化

橫座標為推薦商品與主商品的相關性,大於1表示推薦商品價格大於主商品價格,小於1表示推薦商品價格小於主商品價格。縱座標為打分權重控制。門型函式代表了我們對價格的想法,即在推薦商品價格與主商品價格偏差可容忍的範圍內,打分才有效,否則打分會急劇降權。

這部分的最佳化,使得場景uv價值提升2+%。

  1. 選擇商品價格

一個商品由於屬性不同,會有多個價格。比如一雙鞋,不同尺碼的價格大相徑庭,熱門尺碼比如42碼往往是價格最高的那個。因此,在商品推薦的時候,在具體計算中使用哪個口徑的價格是一個值得推敲的事。目前,各個場景大家都取cspu下最低的那個sku尺寸價格作為對外曝光展現、對內邏輯運算使用的價格值,我們期望做不同價格的嘗試,看看是否有可挖掘的空間。

得物App相關推薦價格體驗最佳化

為了加強實驗效果,對排序結果有較大的影響力,我們選擇替換最終排序公式中的價格作為實驗手段。經過與cspu下熱門sku價格、平均sku價格、最高sku價格的對比,實驗效果都不如現用的cspu下最低sku價格表現好。原因在於使用者對價格十分敏感度,偏高的價格會帶來大幅的訂單下降,最終導致uv價值負向。當前未拿到收益,並非表示價格的選擇上沒有空間,現在使用的cspu下最低sku價格的方式必然不是最優的,值得進一步探索。

  1. 高價折扣品補充

在外投承接頁中,我們嘗試下發了高價高折扣商品,在美妝、鞋、手錶等類目的下發量佔到10%,獲得了正向收益。因此,在相關推薦中,也希望把這個思路加以利用。我們以價格高於500元、相比外網的折扣低於7折作為召回商品准入門檻,為了保證效果,不以同類目或者同品牌的粗粒度方式下發,而以i2i的方式保證高相關性的方式進行召回補充。

但是效果沒有達到預期。分析原因有兩點,一是加上相關性的約束後,觸發的商品較少,對比線上其他召回方式如swing、wbcos、multiTrigger等,高折扣品在請求中的召回數量少了一個數量級,而實際曝光量更是僅佔1%,難以對場景有撬動作用;二是這部分商品相對冷門,精排模型預估出來的分較低,不能在結果中往前排。

3

實驗效果

對上述有效實驗合併後,實驗指標如下:場景pvctr+4.41%,場景aov+5.93%,場景人均訂單+2.27%,場景uv價值+8.17%,商詳大盤aov+0.86%,商詳大盤uv價值+0.78%。

至此,最佳化後相關推薦的aov穩定高於商詳aov,並且促進了場景和商詳的uv價值提升。

4

未來展望

經過全鏈路多維度的最佳化,在相關推薦以價格最佳化,去提升使用者體驗並且帶動平臺UV價值的思路得到了驗證。演算法的迭代升級中,有創新有突破,沉澱了新技術點,同時獲得了預期的業務效果。商品價格與使用者和平臺都有緊密關聯,這一方向會長期跟進。

此外,在專案進行中,我們也發現了一些存在的問題,比如使用者行為集中在頭部商品、CVR轉化樣本稀疏影響訓練等等,未來會針對這些難點,進一步開展工作,提升相關推薦模組的效率,更好滿足使用者的瀏覽需求。

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

相關文章