国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

打散算法的三種解決方案及其選型場景

大數(shù)據(jù) 算法
打散是在推薦、廣告、搜索系統(tǒng)的結(jié)果基礎(chǔ)上,提升用戶視覺體驗的一種處理。主要方法是對結(jié)果進(jìn)行一個呈現(xiàn)順序上的重排序,令相似品類的對象分散開,避免用戶疲勞。算法端傳出的推薦結(jié)果,往往具有以下幾個痛點。

背景

打散是在推薦、廣告、搜索系統(tǒng)的結(jié)果基礎(chǔ)上,提升用戶視覺體驗的一種處理。主要方法是對結(jié)果進(jìn)行一個呈現(xiàn)順序上的重排序,令相似品類的對象分散開,避免用戶疲勞。算法端傳出的推薦結(jié)果,往往具有以下幾個痛點:

  • 相似品類的商品易扎堆。顯然的,如果商品的各特征相似,其獲得的推薦分?jǐn)?shù)也容易相近,而滿目的同款肯定不是用戶期望的結(jié)果。
  • 對用戶的偏好捕捉太強(qiáng)。用戶心理層面,對于隱私或者偏好被完美捕捉這件事是敏感的,過于精準(zhǔn)的結(jié)果不但容易導(dǎo)致用戶的反感,也容易限制用戶潛力的轉(zhuǎn)化。
  • 產(chǎn)生的錯誤容易被放大。對于幾乎沒有什么使用痕跡的用戶,很容易出現(xiàn)對僅有特征的放大,從而就容易產(chǎn)生錯誤推薦。
  • 而打散算法,通過呈現(xiàn)順序的改變,將相似品類分開,緩沖了推薦系統(tǒng)和用戶的交互,提升了用戶體驗,是算法賦能落地的最后一步。

問題定義

首先,我們明確打散算法的定義。其輸入是算法端根據(jù)用戶偏好程度排列的有序列表,每個對象擁有一個或多個需要加以區(qū)分的屬性,輸出的要求是將相似屬性分散開后的一個列表。其中會涉及到這幾個細(xì)節(jié):

  • 打散程度。究竟是讓相同類目的盡可能分隔開,還是只要間隔一定距離就可以滿足要求?
  • 打散依據(jù)的維度。是按照一種屬性分開就可以,還是存在多種需要考慮分開的因素?
  • 打散的性能。作為經(jīng)常調(diào)用的一種接口,性能的優(yōu)化當(dāng)然是越多越好。

值得注意的是,我們并不希望丟失算法端系統(tǒng)帶來的用戶個性因素,所以如何在打散的基礎(chǔ)上,充分利用好原對象的順序,也是非常值得權(quán)衡的問題。

解決方案

從三個不同的維度,我們將討論三種比較通用的打散辦法。三種方法中,打散程度最徹底的,是按列打散法;能綜合多維度考慮的,是權(quán)重分配法;只需要局部計算來提高性能的,是滑動窗口法。

按列打散法

既然要避免相似屬性的內(nèi)容在呈現(xiàn)時相鄰,很直接的思路是我們將不同屬性的裝在不同的桶里,每次要拿的時候盡量選擇不同的桶。這樣就可以實現(xiàn)將元素盡量打散。如下圖所示,在這個例子中,初始的列表是共有三類(藍(lán)、黃、紅):

 

打散算法的三種解決方案及其選型場景

將他們按序裝到桶里(通常是HashMap):

 

打散算法的三種解決方案及其選型場景

這個時候,我們把每個桶按列取出元素,即可以保證元素被最大程度打散,最終結(jié)果為

 

打散算法的三種解決方案及其選型場景

為了保證對原算法結(jié)果的保留,我們在取每一列時都有一次按原序排序的過程。這種算法的優(yōu)點為:

  • 簡單直接,容易實現(xiàn)
  • 打散效果好,雖然排序可能導(dǎo)致元素在列的開頭和結(jié)尾偶然相鄰,但是在末尾之前,最多相鄰元素為2,不影響體驗
  • 性能比較穩(wěn)定,不易受輸入結(jié)構(gòu)影響

缺點為:

  • 末尾打散失效,容易出現(xiàn)扎堆
  • 對原序的尊重性不算強(qiáng),即使有推薦系數(shù)非常低的對象也強(qiáng)制出現(xiàn)在前面
  • 只能考慮一種維度的分類,無法綜合考慮別的因素

同時也可以看出,這個算法對類目數(shù)量有著相當(dāng)?shù)囊蕾嚕绻惸孔銐蚣?xì)致,這個算法的缺點就可以被部分掩蓋,性能上,時間和空間消耗都是O(n)的

權(quán)重分配法

當(dāng)我們想綜合考慮多個因素時,無法很直觀的將每個商品直接分類,這個時候可以采用權(quán)重分配法。首先,我們對每個對象定義一個新的權(quán)重:

其中,W為人為為每個屬性分配的系數(shù),代表著打散的優(yōu)先度,而Count則代表著該對象在此屬性的表現(xiàn)(相同屬性已經(jīng)出現(xiàn)了多少次)。直觀的來說,相似屬性已經(jīng)出現(xiàn)了越多次,權(quán)重值就會越大,并且在函數(shù)計算過程中,天然考慮了原本順序的因素,所以計算出權(quán)重后,無須其他處理,只需要按權(quán)重排序即可。以下圖為例,如果我們規(guī)定字體顏色權(quán)重系數(shù)為2,色塊顏色權(quán)重系數(shù)為1 那么,在1、2號,他們的字體顏色和色塊都沒出現(xiàn)過,則權(quán)重為0,到3號時,都出現(xiàn)過1次,則權(quán)重為 2 * 1 + 1 * 1 = 3,以此類推,8號時,其字體顏色出現(xiàn)過2次,色塊顏色出現(xiàn)過3次,則權(quán)重為 2 * 2 + 1 * 3 = 7

 

打散算法的三種解決方案及其選型場景

這樣,只需要采用一個排序操作,即可根據(jù)權(quán)重進(jìn)行打散處理。

 

打散算法的三種解決方案及其選型場景

可以看出,通過設(shè)置更重的權(quán)重系數(shù),我們實現(xiàn)了優(yōu)先打亂了字體顏色,色塊信息因為系數(shù)較低,可以容忍他們有限度的相鄰。這種算法的優(yōu)點為:

  • 實現(xiàn)同樣簡單直接
  • 綜合考慮了不同因素的打散,可以通過調(diào)整權(quán)重系數(shù),輕易調(diào)整對打散的傾向程度
  • 通過對權(quán)重計算函數(shù)的修改,可以很輕松的融入別的考量,如想更尊重原排序,也可以將原序加入權(quán)重計算

缺點為:

  • 因為權(quán)重計算的累積效應(yīng),本算法仍然容易末尾失效
  • 最后對整體排序,性能為O(n logn),相對有優(yōu)化空間

窗口滑動法

以上兩種,都是在我們徹底考慮全局后產(chǎn)生的算法,復(fù)雜度計算中n的變量也是整個原序列大小,但是,實際場景中,用戶并不會一下看到整個序列,往往一次返回topN個,填滿用戶窗口就可以了。這個時候,我們應(yīng)當(dāng)發(fā)掘一種只參考局部的方法,基本思想就是滑動窗口。

如下圖所示,我們開啟一個size為3的窗口,以此來類比用戶的接收窗口,規(guī)定窗口內(nèi)不能有元素重復(fù),即模擬用戶看到的一個展示頁面沒有重復(fù),如果窗口內(nèi)發(fā)現(xiàn)重復(fù)元素,則往后探測一個合適的元素與當(dāng)前元素交換。在第一步時,我們探測到2、3同類,于是將3拿出來,往后探測到4符合3處的要求,于是交換3、4,窗口往后滑動一格。第二步時,發(fā)現(xiàn)還存在窗口中2、3同類,再將3、5交換,窗口往后滑動一格,發(fā)現(xiàn)窗口內(nèi)無沖突,再滑動一格。第三步時,發(fā)現(xiàn)5、6同類,將6、7交換,窗口滑動到最后,盡管還發(fā)現(xiàn)了7、8同類,但彼時已無可交換元素,便不作處理。

 

打散算法的三種解決方案及其選型場景

這種算法的優(yōu)點為只需要局部計算,不需要完全打散,適應(yīng)了topN的需求;

而缺點也同樣明顯,其健壯性不佳,受序列分布的影響很大,同樣也避免不了末尾堆積的缺陷。

綜合考量

根據(jù)前文的討論,我們對這幾種方法有如下的結(jié)論:

 

打散算法的三種解決方案及其選型場景

其中,為了便于直觀的比較三種方法的性能表現(xiàn),我們生成了完全隨機(jī)的十萬條數(shù)據(jù),在筆記本環(huán)境下測試了在不同規(guī)模下三種算法的表現(xiàn)。其中橫坐標(biāo)表示輸出數(shù)據(jù)的規(guī)模,縱坐標(biāo)表示運行的時間(單位:ms)

 

打散算法的三種解決方案及其選型場景

可以看出,在一定數(shù)據(jù)范圍內(nèi),滑動窗口法擁有極大的優(yōu)勢,但是性能與窗口大小也有極大關(guān)系,如果窗口范圍過大,沖突就多,交換速度會極大下滑。

綜合來說,三種算法的適用場景如下:

  • 如果平常使用的場景,單一維度打散的話,采用按列打散是完全可以的
  • 如果追求性能且原排列分布已經(jīng)較為稀疏了,選擇小單位的滑動窗口更佳
  • 如果要引入多維度,則權(quán)重分配法就必不可少了

本文提出的所有算法性能都在O(n)、O(nlogn)的級別上,而且因為實際場景往往規(guī)模極小,所以并不會成為應(yīng)用中的性能瓶頸,也為修改和權(quán)衡留下了很大的空間。之后,可以在全局與局部的調(diào)和、末尾堆積等方面,對這個問題更進(jìn)一步討論。

選用實例

當(dāng)我們實際應(yīng)用時,一般并不單純使用其中任何一種,一定要明確需求,然后結(jié)合需求來分析,取三者的優(yōu)勢。

本次,在解決閑魚上馬赫選品系統(tǒng)打散的需求時,了解到以下幾個特征:

  • 商品列表長度約為2000,用戶獲取一次消息時的對象條數(shù)有限,一般只有一兩位數(shù)
  • 打散的要求:既要分開同一用戶發(fā)布的,也要分開同一類目的商品,并且前者優(yōu)先于后者,最好系數(shù)還可以調(diào)整
  • 用戶id極多(每個用戶都可能發(fā)布商品),而商品類目極為有限

那么,我們就可以有針對性的選擇自己的方案。從特征2可以看出,需要綜合多種因素,則需要選擇權(quán)重分配法;而為了解決性能問題,綜合特征一和特征三,一次獲取的消息很少,商品的類目也極為有限,決定選擇滑動窗口法。我們結(jié)合權(quán)重分配法和滑動窗口法,采用窗口大小為4的滑動窗口,然后采用權(quán)重系數(shù)13和7(都是素數(shù),方便排序)分別用于用戶、類目的權(quán)重函數(shù)計算,將窗口內(nèi)的限制條件改為,與所有其他對象的權(quán)重差小于一定閾值。最終就可以實現(xiàn)多因素統(tǒng)計和性能的統(tǒng)一。

略顯不足的是,這次參數(shù)的選擇(窗口大小、權(quán)重系數(shù))并未經(jīng)過多次反復(fù)的實驗比較,之后計劃在實際場景中,采用ABtest等方法,進(jìn)行參數(shù)的優(yōu)化調(diào)整,使算法的性能表現(xiàn)更優(yōu)。

總結(jié)

本文討論了打散算法的幾種實現(xiàn)方式,從實現(xiàn)方法到優(yōu)缺點詳細(xì)進(jìn)行了闡述,通過本文的方法,可以將特定類別的結(jié)果順序進(jìn)行分散呈現(xiàn),從而提升用戶的視覺體驗。我們可以看到,實際上打散的效果與尊重原算法的順序特征之間,存在著不可避免的一對矛盾。如何在實際復(fù)雜需求的條件中,更好的把握兩者的平衡,從而普適于更多的場景,是我們需要在未來持續(xù)去探索的;如何依靠技術(shù)的提升更好的提升用戶體驗,更是技術(shù)人永恒的命題。

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2024-08-07 08:21:05

2010-09-30 14:40:45

2020-03-31 16:13:26

分布式事務(wù)方案TCC

2025-06-06 01:55:00

GreatSQL數(shù)據(jù)庫連接數(shù)

2011-07-21 10:22:36

OLEDBAccessDatab

2015-10-21 14:23:08

反模式持續(xù)部署自動化運維

2010-09-10 12:59:33

DIV嵌套CSS

2023-05-26 07:19:49

Spring聲明式事務(wù)

2023-08-01 07:42:33

Redis數(shù)據(jù)項目

2025-02-04 12:05:10

2021-04-21 21:04:42

內(nèi)存場景泄露

2025-05-29 02:10:00

2015-09-25 11:08:44

移動辦公BYOD

2015-10-13 15:05:09

BYOD自帶設(shè)備移動辦公

2022-02-23 12:07:20

分布式Spark數(shù)據(jù)傾斜

2013-03-14 11:18:30

Microsoft A解決方案

2020-08-25 07:00:00

云計算云安全數(shù)據(jù)

2009-07-17 09:17:41

IT運維SiteView游龍科技

2020-06-08 22:33:42

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)實施

2025-06-12 08:50:25

點贊
收藏

51CTO技術(shù)棧公眾號

精品欧美国产| 一区二区视频在线观看| 成年人在线看| 成人美女在线观看| 51ⅴ精品国产91久久久久久| caoprom在线| 欧美性猛交xxxx乱大交3| 欧美日韩怡红院| 极品少妇xxxx精品少妇偷拍| 国产91在线视频| 91精品国产乱码久久久竹菊| 欧美一区二区视频网站| 情趣网站在线观看| 欧美国产乱子伦| 一女被多男玩喷潮视频| 男男视频亚洲欧美| 精品视频第一区| 韩国在线视频一区| 亚洲一区二区在线播放| 亚洲加勒比久久88色综合| 久久婷五月综合| 国产午夜精品久久久久久免费视| 久久狠狠久久综合桃花| 99久久久国产精品美女| 国产成人精品免费视频| 欧美日韩一本| 97色在线观看免费视频| 亚洲精选av| 欧美国产日韩xxxxx| 成人h动漫精品一区二区器材| 日韩有码在线观看| 欧美日韩在线大尺度| 午夜电影一区二区三区| 国产中文字幕视频在线观看| 亚洲欧洲色图综合| 波多野结衣在线高清| 国产精品成av人在线视午夜片 | 国产一区二区三区av在线| 亚洲免费视频中文字幕| 成人在线视频中文字幕| 亚洲欧洲一二三| 777欧美精品| 香蕉成人久久| 91福利在线视频| 国产精品欧美在线| 亚洲综合色婷婷| 国产一区二区欧美| 一区二区高清免费观看影视大全 | 韩国一区二区三区视频| 欧美久久久久久| 夜夜揉揉日日人人青青一国产精品| 日本高清在线观看| 亚洲最大av网站| 国产精品乱码人人做人人爱| 草草在线视频| 亚洲精品自在在线观看| 制服.丝袜.亚洲.中文.综合| 97精品一区二区| 轻轻色免费在线视频| 91久久精品国产| 欧美日韩一区二区三区免费看| 午夜亚洲福利| 亚洲日本精品国产第一区| 精东粉嫩av免费一区二区三区| 怡红院在线播放| 波多野结衣与黑人| 97视频在线观看播放| 亚洲在线成人精品| 希岛爱理av一区二区三区| 黄色电影免费在线看| 国产一区国产精品| 亚洲欧美另类人妖| 男女视频一区二区| 成人免费观看在线观看| 黄色网址在线免费看| 亚洲片在线资源| 久久欧美一区二区| 日韩欧美在线不卡| 亚洲精品1234| 日本午夜精品久久久久| 777精品久无码人妻蜜桃| 久久久av一区| 午夜电影网亚洲视频| 久久精品男女| 精品国产鲁一鲁****| 啊啊啊啊啊啊啊视频在线播放| 日本精品视频在线播放| 亚洲国产精品自拍| 免费精品视频| 成人一区视频| 精品欧美不卡一区二区在线观看 | 日本天堂在线| 免费成人进口网站| 3d精品h动漫啪啪一区二区| 色多多国产成人永久免费网站| 欧美揉bbbbb揉bbbbb| 国产精品福利一区| 成人天堂资源www在线| 日韩高清不卡一区二区三区| 色综合中文网| 欧美18xxxxx| 成人毛片100部免费看| 欧美高清你懂得| 91视频在线观看免费| julia中文字幕一区二区99在线| 亚洲网站情趣视频| 精品一区二区免费视频| 无需播放器的av| 99re视频在线播放| 欧美精品一区二区三区国产精品| 亚洲成人在线网站| 麻豆精品视频在线观看视频| ccyy激情综合| 金瓶狂野欧美性猛交xxxx| 别急慢慢来1978如如2| 日本一区二区在线视频观看| 久久伊人精品视频| 精品成人国产在线观看男人呻吟| 国产美女主播视频一区| 亚洲精品二区三区| 免费一区二区三区在线视频| 国产一二区在线| 污黄视频在线看| 成人毛片高清视频观看| 三年中文高清在线观看第6集| 国产精品久久视频| 欧美日本在线视频中文字字幕| 欧美日韩国产一级| 亚洲国产一区视频| 亚洲国产精品激情在线观看| 国内精品伊人久久久久av一坑| 免费中文字幕日韩欧美| 亚洲免费观看| 黄页网站一区| 99精品视频在线| 日韩一区三区| 成人一区不卡| 一本一道久久a久久精品蜜桃| 婷婷亚洲精品| 欧美日韩激情| 久久精品一区二区不卡| 在线电影一区二区| 欧美日韩理论| 欧美日韩国产高清| 好看不卡的中文字幕| 婷婷综合久久| 最新日韩欧美| 欧美bbbbb| 成人精品一区二区三区四区| 99久久综合99久久综合网站| 久久综合色天天久久综合图片| 床上的激情91.| 2022国产精品视频| av电影天堂一区二区在线| 91女人视频在线观看| 国产精品久久久99| 天天色天天操综合| 欧美精品乱人伦久久久久久| 日韩美女在线视频| 中文字幕亚洲二区| 国产精品久久色| 欧美不卡三区| 毛片在线播放视频| 亚洲成av人影片在线观看| 欧美xxxx视频| 日韩免费精品| 精品91在线| 国产99一区视频免费| 黑人精品xxx一区一二区| 日韩一区二区不卡| 久久中文精品视频| 动漫一区二区在线| 37pao成人国产永久免费视频| 男人的天堂www| av网址在线看| 北条麻妃国产九九九精品小说| 欧美日韩综合| 国产片一区二区三区| 日本高清无吗v一区| 久久激情视频免费观看| 成人免费视频视频在| 最新天堂中文在线| 日韩精品分区| 欧美精品一卡| 亚洲久本草在线中文字幕| 亚洲精品一区二三区不卡| 成人综合网网址| 在线免费视频一区| 亚洲人体影院| 精品综合久久久久久8888| 欧美性受xxxx黑人xyx性爽| 亚洲欧美一区二区三区在线| 鲁丝一区二区三区免费| 一本一道dvd在线观看免费视频| 国产66精品| 国产亚洲成年网址在线观看| 久久久精品亚洲| www.99热这里只有精品| 三上悠亚激情av一区二区三区| 天堂一区二区在线|