RecSys提前看 | 深度學習在推薦系統中的最新應用

  • 2019 年 10 月 4 日
  • 筆記

機器之心原創

作者:仵冀穎

編輯:H4O

2019 年 9 月 16 日至 20 日,第 13 屆 ACM Conference on Recommender System(RecSys)在丹麥哥本哈根召開。作為推薦系統的頂會,RecSys 一如既往受到了業界的廣泛關注。與其他機器學習會議相比,RecSys 一向重視解決實際的問題,即結合在實際應用場景中推薦系統性能提升、效果提高等問題提出設計策略和算法解決方案等。隨着深度學習研究的進一步深入,深度學習在推薦系統中的應用依然是研究熱點之一,本次會議中圖神經網絡(Graph Neural Network,GNN)、經典深度學習模型都有所應用及改進。本文從中選取三篇,進行針對性的分析:

  • Addressing Delayed Feedback for Continuous Training with Neural Networks in CTR prediction,提出一種基於損失函數的神經網絡模型,用於解決連續學習過程中的延遲反饋問題。
  • Tripartite Heterogeneous Graph Propagation for Large-scale Social Recommendation,提出一種應用於社會化推薦系統的異構圖傳播結構。
  • On Gossip-based Information Dissemination in Pervasive Recommender Systems,提出一種離線手機端與鄰近區域內其他設備之間推薦評分數據交換問題的普適推薦系統策略。

Addressing Delayed Feedback for Continuous Training with Neural Networks in CTR prediction

原文地址:https://arxiv.org/abs/1907.06558?context=stat.ML

應用於廣告展示的推薦系統面臨的一個重要難點是,由於季節性、廣告活動的變化和其他因素,廣告特徵分佈和點擊率(click through rate,CTR)會隨着時間而發生巨大的變化。解決這一問題的主要策略是不斷地基於新數據連續訓練預測模型。然而一些應用場景中數據標籤僅存在一段時間且會出現一定的隨機延遲,這些延遲的反饋標籤對連續訓練中的數據新鮮度提出了挑戰:新數據在被訓練算法接收時可能沒有完整的標籤信息。一個簡單的解決這個問題的方案是除非用戶給數據打正標籤,否則任何一個數據點都是一個負樣本。這種方案往往帶來較低的 CTR,從而導致用戶體驗差和性能差。

本文的重點是找到推薦系統中損失函數和深度學習模型的最佳組合,使其在存在標籤延遲反饋的情況下,能夠從連續數據流中進行有效的大規模學習。本文考慮兩種模型:一是簡單 Logistic 回歸模型,該模型應用簡單、性能良好以及易於接收和處理在線訓練的新訓練樣本,在展示廣告中得到了廣泛的應用。二是廣度-深度(wide-deep)模型,該模型能夠有效解決推薦系統的特徵複雜性和多樣性問題。此外,本文考慮五種損失函數:對數損失、假陰性(fake negative,FN)加權損失、FN 校準、正未標記損失和延遲反饋損失。

本文是首次使用深度學習模型來評估展示廣告中的概率 CTR(pCTR),同時解決數據標籤延遲反饋問題。考慮到由於時間成本較高,深度神經網絡很難在在線訓練中應用,本文在不增加工程成本的情況下,對延遲反饋問題進行基準測試並提出時間成本可行的解決方案。

模型分析

本文提出了一種連續訓練機制,假設前提是等待有限長的時間能夠得到廣告的正向參與標籤。針對這一類問題,傳統方法一般是預先給定樣本數據負標籤,直到用戶標記後改為正標籤。有偏數據分佈,即觀測到的分佈情況,包含了標記為負的實際數據分佈的所有樣本。

本文考慮兩種學習模型,簡單 Logistic 回歸模型和廣度-深度(wide-deep)模型。

(1)簡單 Logistic 回歸模型

本文使用標準 Logistic 回歸模型,該模型在展示廣告領域得到了廣泛的應用。

其中 sigma(.) 表示 sigmoid 函數,輸入 x 是與特定請求的用戶和候選廣告相關的數千個特徵的稀疏表示。

(2)廣度-深度模型

廣度-深度模型包含兩個組成部分:廣度模塊(廣義線性模型)和深度模塊(標準前向-後向神經網絡)。廣度模塊處理原始輸入特徵和轉換後的特徵,例如交叉產品特徵,將非線性特徵添加到廣義線性模型中。而深度模塊主要是將高維稀疏特徵轉化為嵌入向量,從而將分類特徵轉換為密集的低維表示。廣度-深度模型對 CTR 的預測如下:

其中,w_wide 表示廣度模塊的權重,w_deep 表示深度模塊的權重,phi(x) 表示交叉產品變換,alpha 為深支末級激活。

損失函數分析

(1)延遲反饋損失(delayed feedback loss)

在延遲反饋損失函數中,假定時滯服從指數分佈,並將此模型與 Logistic 回歸或深度模型聯合訓練。參數θ和 w_d 的正則對數似然優化為:

其中 alpha 為正則化參數,L_DF 表示為:

f_θ(x)對應 pCTR 模型的輸出,d 對應於點擊一個正樣本的時間,而 e 代表自廣告播放以來經過的時間。延遲反饋損失函數的數值計算格式為:

(2)正未標記損失(positive-unlabeled loss, PU 損失)

本文在 FN 設置下使用正未標記(positive unlabeled,PU) 損失,將有偏訓練數據中的所有負樣本視為未標記。損失函數為:

該損失函數可以看作是對正樣本和負樣本的傳統對數損失。此外,只要觀察到一個正樣本,就向負梯度的相反方向遞進。這個假設是合理的,因為對於每個正樣本,都有基於假負樣本梯度的參數更新。

(3)假陰性加權損失(fake negative weighted,FN 加權損失)

這種損失依賴於重要性抽樣。在本文的訓練設置中,樣本被標記為負後進入訓練隊列,一旦用戶參與後立即使用正標籤進行複製。給定下面的假設:

其中 b 為偏移觀測分佈,p 為真實數據分佈。由於所有樣本數據初始標籤都為負,所以有:

假陰性加權損失函數為:

L_IS 對於 f_θ的梯度為:

當∂L_IS/∂f_θ = 0 時,f_θ (x) = p(y = 1|x)

(4)FN 校準(fake negative calibration)

FN 校準中,模型估計偏移分佈 b,L_IS(θ) 中 p(y=1|x) 改為:

由於對於偏移分佈中的每一個正分佈都能觀察到 FN,即 b(y=1|x)≤0.5 和 p)y=1|x≤1,該分佈始終有效。

實驗設置

(1)離線指標

實驗目的:離線指標實驗目的是驗證所提出的損失函數是否適用於 CTR 預測問題,並用兩個不同的數據集(一個內部數據集和一個公共數據集)對模型進行了訓練和測試。

評價指標:Log 損失(Log loss)、相對交叉熵(relative cross entropy,RCE),精確召回曲線下面積(area under precision-recall curve, PR-AUC)。

(2)在線指標

實驗目的:在線指標實驗目的是對離線情況下效果最優的模型和損失函數進行進一步評估。在線指標反映了不同方法解決延遲反饋問題的實際性能。

數據庫:以 Twitter 數據的延遲評估數據集執行評估,比較「控制」和「處理」(在 A/B 測試框架中)之間的性能。評估結束後 9 小時內刪除假負樣本標籤。

評價指標:集合相對交叉熵(pooled RCE)、每千個請求收益(revenue per thousand requests,RPMq)。

(3)參數

本文在在線和離線實驗中均使用隨機梯度下降優化算子(stochastic gradient descent,SGD),學習速率為 0.02,衰退速率 0.000001,批處理大小為 128,延遲反饋損失學習速率為 0.005,延遲反饋模型的 L_2 正則化參數為 2。廣度-深度模型中 4 層模型大小為 [400,300,200,100],中間層使用 ReLu 激活函數。權重參數使用 Glorot 優化。

(4)數據

離線實驗中使用 Criteo 公開數據庫。此數據庫描述單擊後的轉換,因此與 CTR 預測相比,時間延遲通常更長。每個樣本由一組散列分類特徵和幾個連續特徵描述。訓練樣本總數為 1550 萬個,測試樣本為 350 萬個。為了從原始的公共數據集中創建偽負數據,執行以下過程:使用最新的轉換時間或單擊時間作為快照時間,並在單擊所有正樣本時引入偽負樣本。原始數據集用於驗證 Logistic 和延遲反饋損失函數估計的實驗,而包含單擊時 FN 樣本的數據庫則用於評估 PU、FN 加權和 FN 校準損失函數。

對於離線指標實驗中的內部數據,使用線下 Twitter 4 天的數據。評估過程是基於第二天的數據進行的。由於僅有一小部分廣告提供了用戶點擊功能,數據標籤的嚴重不平衡給算法帶來了很大難度。為解決這一問題,本文的訓練設置中將負樣本減少到原始數據集的 5%,並且在損失函數中對負樣本採用更高的權重。經過上述處理,訓練樣本約為 6.68 億條視頻廣告,而測試數據為 700 萬條廣告。

在線指標中使用 Twitter 在線庫,在在線實驗中,所有的模型都在一個連續的數據流上進行訓練,這個數據流是由回調數據實時生成的。將每個訓練樣本發佈到模型的訓練服務訂閱的數據流中。連續訓練過程每 10 分鐘輸出一個模型,然後由預測服務提取這些模型以服務於在線場景。

實驗結果

(1)離線評估

基於 Criteo 公開數據庫的離線實驗結果在表 1 中。使用延遲反饋損失函數產生的 RCE 最高(17.32),其次是 FN 校準損失函數(RCE 為 17.29),與 Log 損失的 RCE 持平。使用 PU 損失函數的結果最差,且在不同循環輪次實驗中效果也最不穩定。實驗結果表明,延遲反饋損失函數更適合於簡單的 pCTR 模型(例如 Logistic 回歸)和較少的訓練樣本。對於複雜的廣度-深度模型則需要更穩健的解決方案,例如應用重要樣本抽樣策略等。

表 1. 基於公共 Criteo 數據的線性模型的離線結果。

使用離線 Twitter 數據的實驗結果在表 2 和表 3 中,分別用的是 Logistic 回歸模型和廣度-深度模型。由實驗結果可知,廣度-深度模型在應用不同損失函數的情況下,效果都優於 Logsitc 回歸模型。

表 2. Twitter 數據的 Logistic 回歸模型離線結果

表 3. Twitter 數據的廣度-深度模型離線結果

(2)在線評估

表 4 給出使用最優損失函數的廣度-深度模型結果。應用 FN 加權損失函數和 FN 校正損失函數的 RPMq 值均高於傳統的對數損失函數(分別提升了 55.10% 和 54.37%)。

表 4. 廣度-深度模型以及性能最佳的損失函數(Twitter 數據)的在線結果

總結與分析

本文重點研究具有損失函數的神經網絡模型在連續學習過程中的延遲反饋問題。由本文的分析可知,對於損失函數的選擇需重點考慮梯度的時間依賴性,即基於偽負樣本的參數更新先於來自正樣本的更新。基於本文工作,後續考慮將重要樣本抽樣策略與時滯建模相結合,為訓練樣本分配與時間相關的權重。此外,還將繼續研究連續學習中的其他問題,例如災難性遺忘和過度擬合,以及研究更系統的方法來處理數據集偏差。

Tripartite Heterogeneous Graph Propagation for Large-scale Social Recommendation

原文地址:https://arxiv.org/abs/1908.02569?context=stat

圖神經網絡(GNN)是一種有效的關係表示方法。應用於推薦系統 GNN 還存在一些難點,例如複雜的噪聲連接和高度的異構性、過平滑等。本文提出了一種新的圖嵌入方法——異構圖傳播(Heterogeneous Graph Propagation, HGP)來解決這些問題。HCP 使用 組-用戶-項目(group-user-item)三部分圖作為輸入,以減少大規模社會化推薦系統圖中的邊緣數和路徑複雜性。為了解決過平滑問題,HCP 將節點嵌入到一個基於 PageRank 的個性化傳播方案中,分別用於組-用戶圖和用戶-項目圖。每個圖中的節點嵌入使用注意力機制進行集成。

模型分析

GNN 有多重不同的架構,本文基於圖卷積神經網絡(Graph convolutional networks)結構的 GNN 來處理屬性化的多重異構網絡,同時利用了個性化的 PageRank 方案。對於社會化推薦系統來說,項目、用戶和社會關係構成了節點和邊類型多樣的複雜網絡。單純地將傳播方案直接應用到異構圖中,可能會導致對具有優勢的邊緣的偏差訓練。本文提出的 HCP 能夠獨立地傳播每種邊類型的鄰域,然後將最終的節點表示與注意力模型相結合。

對於一個異構圖 G,節點映射函數為ϕ : V → O,邊映射函數為ψ : E → R。Ar 表示包含類型為 r 的邊的鄰域矩陣。Aˆr 表示 Ar 的對稱規範化鄰接矩陣。將節點劃分為不同種類:X1,X2, …,X|O|,分別應用預測神經網絡 Hi=f_i(Xi),將結果連接起來得到:H =[H1,H2, …,H|O |]。HGP 使用具有附加可學習權重的非線性傳播來學習深度節點表示:

將最終的節點表示矩陣與注意力模型(attention model)相結合。在保持通用性的前提下,我們從 z(k)_r 中為每種邊緣類型選擇第 i 個節點(行)。將這些向量疊加形成一個矩陣 Y_i,使用單層傳感器的注意力模型:

其中,d_k 表示輸入查詢和鍵的維度。利用該模型,HCP 對 Y_i 進行注意力計算如下:

其中,查詢、鍵和值是相同的,只是基於不同的權重矩陣相乘。然後,HGP 將 Y′_i 的所有行連接起來,並將其傳遞給線性層,生成第 i 個節點的表示向量 z_i。在本文提出的社會化推薦系統的應用中,計算用戶和項目表示之間的點積相似性來預測 CTR

其中 X_i 是特徵矩陣 X 的第 i 行向量。本文利用隨機梯度下降算法,通過降低交叉熵損失來優化模型。遞歸的跨層鄰域擴展需要消耗大量的時間和較高內存來訓練大而密集的圖,本文通過調整採樣概率使其與每種類型的節點數成比例來解決這個問題。為了減小近似方差,採樣概率與節點的階數成正比。HGP 完整的模型架構見圖 1。

圖 1. 應用於社會化推薦系統的 HGP 的示意結構。HGP 為每種邊緣類型獨立地傳播鄰域,然後將最終的節點表示與注意力模型相結合。本文計算用戶和項目表示之間的點積相似度來預測 CTR。

實驗分析

數據庫:本文使用從大型社交網絡收集的數據庫,包含組、用戶和項目三種節點類型。當用戶屬於同一組,則組和用戶節點相連。與傳統圖中組所有用戶都連接的方式比較,組節點有效地減少了邊的數量和路徑的複雜性。當用戶與項目有交互行為時,項目和用戶節點相連接。數據庫中共有 1645279 個節點連接 4711208 個邊。使用 BERT 和 VGG16 提取視覺語言屬性的高級特徵。利用線性嵌入層將分類屬性轉化為密集特徵。最後,聚合所有特徵來表示節點。使用前 11 天的數據作為訓練集,隨後 2 天的數據作為驗證集,最後 4 天的數據作為測試集。

對比模型:metapath2vec、metapath2vec+EGES、MNE+EGES、FastGCN、HGP。

驗證指標:ROC-AUC、PR-AUC、F1 score。

實驗平台:NAVER Smart 機器學習平台(NSML)。

表 1. 對比模型的性能比較。連字符「-」表示由於結果存在較大方差,無法得到穩定的性能。

對比實驗結果見表 1,由實驗可知,PR-AUC 和 F1 值與 ROC-AUC 成正比。不使用節點屬性的 metapath2vec 無法完成 CTR 預測。HGP 的性能優於 FastGCN,這是由於 FastGCN 存在過平滑問題,不適用於異構圖。HGP 性能優於其他異構圖網絡模型。此外,HGP 的驗證損失能夠在半天內收斂,因而能夠滿足實際應用場景中推薦系統所需的服務模型日常更新的要求。

圖 2. 不同傳播步驟下的 HGP 性能比較

圖 2 給出不同傳播步驟下 HGP 的性能。HGP 需要至少兩個步驟才能獲知統一組內其他節點的信息(用戶節點→組節點→用戶節點)。如果傳播步驟為 4 步,則可以接近具有共同偏好的用戶的其他首選項(用戶節點→組節點→用戶節點→組節點)。傳統架構的性能隨着傳播步驟數目的增加而降低。而 HGP 在步驟為 10 時達到最佳性能,並成功地避免了過平滑現象。

總結與分析

本文提出了一種應用於社會化推薦系統的圖結構,即群-用戶-項目三方的多重異構網絡。本文提出的圖形配置方案將計算時間和內存消耗減少為節點數的平方,組節點的屬性有助於挖掘用戶之間的社會關係。此外,本文還提出了一種基於圖的推薦方法,稱為異構圖傳播(HGP)機制。為了避免過平滑問題,HGP 使用個性化 PageRank 方案傳播鄰域信息。HGP 能夠有效地處理圖的異構性。為解決擴展性問題,本文採用了適合於異構環境的採樣方法。後續可以通過添加其他社會屬性(如地址、教育背景和共同興趣)等來擴展圖表,從而有效提升社會化推薦系統的效果。

On Gossip-based Information Dissemination in Pervasive Recommender Systems

原文地址:https://arxiv.org/abs/1908.05544

普適計算採用分佈式和嵌入式設備隨時隨地完成通信和數據處理。隨着手機的推廣使用、手機性能的提升以及網絡通信能力的提升,普適計算的應用價值越來越高。本文重點研究離線手機端與鄰近區域內其他設備之間推薦評分數據的交換問題。本文提出了一種傳播和過濾策略,將傳統的尋找相似的對等設備和交換項目偏好的方法從分散領域轉化為普適推薦系統問題。同時本文還給出了一個移動應用程序原型,實現了所提出的設備到設備的信息交換。

普適計算模型選擇

近年來,隨着數據獲取、存儲、處理的渠道越來越多,關於數據隱私保護的技術受到越來越多的關注。歐盟於 2018 年 5 月通過了《通用數據保護條例》,針對數據處理、獲取等提出了嚴格的限制,但是這些限制僅停留在用戶規則的層面,並不涉及技術層面的約束。

目前,解決大規模授權數據池隱私問題的推薦系統架構主要有三種:一是,聯邦學習(Federated Learning),基於分佈在客戶端中的數據,通過中央服務器和客戶端之間的通信生成集中的推薦模型。二是,分散推薦系統,在沒有中央服務器的情況下,分佈式客戶端直接對等通信交互。它們通常建立在使用八卦機制(Gossip)的文件共享對等網絡的基礎上,在對等節點加入或網絡擾動的情況下,建立起用於快速網絡搜索和網絡恢復的邏輯覆蓋網絡。三是,基於位置感知推薦的普適系統,無需將本地數據傳輸到中央服務器進行推薦。

在這三種方法中,本文認為普適推薦系統效果最好。一是,由於智能手機本身的數據和移動計算能力提升,使得在智能手機端訓練和生成推薦模型變得更加可行。二是,普適系統中推薦模型構建過程僅在設備上完成,因此對網絡連通的情況沒有任何要求。本文提出了一種基於 Gossip 機制的普適推薦系統數據傳播和過濾策略,利用 Google 的 Nearby Connection API,通過安卓手機應用程序的方式實現了傳播過程。

策略分析

本文提出一種基於運動中的人攜帶的移動設備的推薦數據傳播策略。當設備物理空間位置靠近時,設備之間會進行後台數據交換,之後進行設備內的定製過濾過程。作者將此方法稱為傳播(Propagate)和過濾(Filter)。

圖 1:Propagate 和 Filter 提出的四種數據類型及其在傳播中的應用

整個傳播和過濾機制的設計流程如下:

a. 數據類型定義

規定每個設備攜帶四種類型的數據(參見圖 1),基於四種類型的數據生成本地個性化推薦。

  1. 對等首選項列表(Peer Preference List):對等設備中評定的項目列表,數據格式為二進制數或標量等級。在本文的原型實現中,對等設備中實現對電影的分級打分,其中每個電影都由公共可用的網絡電影數據庫(Internet Movie Database,IMDb)提供的唯一標識符進行標識。對等首選項列表數據保存在設備上。
  2. 鄰域首選項列表(Neighborhood Preference List):每一個節點將之前從 k 個最相似的節點收集到的打分數據整合到一個項目評分列表中。因此,它是未知對等設備中數據子集的首選項列表。鄰域首選項列表能夠傳播給其他對等設備,同時每個對等設備也能夠控制將自己的哪些對等首選項列表傳播到附近對等設備中。
  3. 相似數據(Similarity Data):任何類型的數據都可用於計算對等相似度。相似數據能夠傳播給附近的對等設備,因此必須保證其隱私性。隱私保護相似性比較可以在項目向量和文本數據上進行。
  4. 上下文數據(Context Data):用於描述特徵的數據,如位置、時間、天氣或對等活動(跑步、吃飯、通勤)等,能夠被感知(例如通過傳感器)或檢索(例如通過網絡)。

b. 傳播

當兩個或多個對等設備在物理空間上相互靠近時,智能手機建立快速和安全的配對連接,並交換他們的鄰域首選項列表和相似數據。在上述傳播過程中,接收到的數據包含上下文數據,例如描述相遇的時間或位置。

c. 過濾

傳播過程中收集到的數據包含大量未過濾的原始數據。為了得到有用信息,需要通過相似性進行數據過濾。從對等設備接收到數據後,設備開始執行過濾過程。首先,基於相似數據對比發送方和接收方的相似度;第二,如果對等相似度高於 k-最高值,則基於 k-最相似對等設備的對等首選項列表和鄰域首選項列表對鄰域首選項列表進行重新採樣;第三,基於本地可用的數據運行推薦算法,以獲得新的或更新以前生成的推薦評級結果。

d. 通過斷開連接實現隱私保護

傳播和過濾的傳播過程通過特殊的方式在鄰近的智能手機之間建立無線連接,交換相似數據和鄰域首選項列表,然後終止連接。此時網絡拓撲結構基本上是斷開的,沒有可利用的對等關係信息(例如,社交網絡、推薦系統或車輛網絡中的對等網絡重疊情況等)。能夠訪問到的對等方的數據總量由連接時間和對等方公開的數據量所決定。

e. 增強本地可用的配置文件數據

Gossip 協議需要一個連接的對等網絡以便聚合相似的對等設備,同時通過對等採樣保持網絡連接。在傳統的分散推薦系統中,為了實現對等採樣,即使項目和對等設備都不在鄰域空間內,即它們在網絡中隨意移動,仍需要保證網絡連接。當一個對等設備從一個類似的對等設備接收數據時,會重新取樣他/她的鄰域偏好列表;如果不是相似對等節點,則什麼也不做。因此,傳播和過濾會創建一個恆定的項目推薦清單,清單能夠在相似的對等設備之間流轉,而不會在不同的對等設備之間流轉。該屬性允許在從未在地理位置上彼此接近的對等設備之間傳遞信息,並避免不同對等節設備間的信息傳輸。從這個意義上講,傳播和過濾解決了普適推薦系統容易出現的數據稀缺性問題。

應用情況

基於本文的算法已經開發完成了一個 Android 移動應用程序,且在 Google Play 商店中提供(https://play.google.com/store/apps/details?id=de.tub.affinity.android)。該應用程序的活動共享模式為廣播-發現,即設備向其近鄰的其它設備發送廣播,同時偵聽其它設備的廣播。共享過程由 Google Nearby Connetions API 處理 (https://developers.google.com/nearby/connections/overview),完全在後台運行。當兩個手機端相互連通,迅速交換評分數據並將數據存儲在本地,值得注意的是,在評分數據交換的過程中手機並不需要聯網。

本文應用場景數據為在 IMDb 中註冊和唯一標識的電影。電影的評分結論為 1 到 5 星不等,並以格式如下格式存儲:(用戶 ID、電影 ID、評分數據)。電影分級列表實現了對等首選項列表。一旦用戶完成了評級打分,他/她就可以激活共享。

實驗分析

本文進行了六個不同的實驗,設備為 Nexus 5 智能手機,手機具備最新的藍牙版本(包括 BLE)和 Wi-Fi 連接功能。

a. 大量評分數據共享:共享評分數據約為 1000 條,大小為 100KB。一旦建立連接,全部 1000 條數據同時立刻傳輸,且不會丟失任何數據。

b. 在多個設備之間共享數據:在四個智能手機之間共享評分數據,這四個手機的評分是獨立不相交的。評分數據得以正確和無損的傳輸。

c. 公共交通工具中的數據共享:我們成功地在柏林的公交車和地下鐵的三個設備之間共享評分數據,這些設備暴露在許多 WiFi 和藍牙干擾信號下。實驗表明,瞬時的網絡連接中斷並不會影響數據傳輸。一旦重新建立網絡連接,共享的佔位推薦信息被經由開放電影數據庫(http://www.omdbapi.com/)API 獲取得到的電影元數據填充。

d. 有效傳輸範圍:在包含藍牙、BLE、Wifi 等通信 API 條件下,二類設備例如手機等一般有效的傳輸半徑為 10 米。本文在室內和戶外 3 至 12 米無障礙半徑範圍內進行實驗,實驗結果見表 1。實驗結論是,評分數據的有效傳播半徑在 3 到 6 米之間。

表 1. 不同傳輸範圍的連接成功率

e. 平均初始連接延遲:測量兩個設備的初始連接延遲,即在建立連接之前所需的時間。為保證成功連接,設備之間距離為 1 米,連接是通過不同的應用程序實現的(待連接設備的 ID 不在緩存中)。平均連接延遲為 25.9 秒,最小連接延遲為 11 秒,最大連接延遲為 41 秒。

f. 電池耗盡:由於廣播和發現步驟(預連接)必須連續執行,因此通過實驗驗證長時間在後台進行廣播、發現和共享信息是否可行。由於無法模擬現實場景,因此只測量應用程序的預連接電池消耗量,這就為電池消耗量提供了一個下限。將兩個設備重置為出廠設置。跟蹤三種不同情況下的電池電量:(1)在後台運行並打開共享的應用程序;(2)關閉共享的應用程序;(3)出廠設置條件下,在所有三種情況下,顯示器都關閉。實驗結果見表 2。

表 2. 預連接的平均電池消耗(廣播和發現)

實驗結果表明,本文提出的傳播-過濾策略在大規模評分數據和多設備交互的情況下,以及在諸如地鐵等沒有互聯網連接的地區,都可以可靠工作。當然,該策略目前還存在一定的局限性。首先,數據的可靠傳輸半徑為 6 米,這一方面加強了隱私保護,另一方面卻限制了能夠共享數據的潛在對等設備的數量。第二,平均初始連接延遲(25.9 秒)過長,這就造成了經過的行人之間,或在紅綠燈處等待、在咖啡館或餐廳中彼此相鄰或乘坐公共交通工具等場景中該策略都不適用。第三,電池的耗電量相對較高,每小時至少耗電 5%,這就造成無法持續廣播和發現。

總結與討論

後續工作重點是啟動移動應用程序來收集使用數據。本文中的策略對採樣過程和推薦算法都採用保留佔位符的方式,一旦能夠收集使用數據,就可以測試採樣和推薦策略的不同組合。此外,還將繼續收集和評估用戶對應用程序的反饋,包括用戶界面和用戶體驗等。

作者介紹:仵冀穎,工學博士,畢業於北京交通大學,曾分別於香港中文大學和香港科技大學擔任助理研究員和研究助理,現從事電子政務領域信息化新技術研究工作。主要研究方向為模式識別、計算機視覺,愛好科研,希望能保持學習、不斷進步。