羅達雄,葉俊民,廖志鑫,王志鋒,陳 曙
1(華中師范大學 計算機學院,武漢 430079) 2(華中師范大學 教育信息技術學院,武漢 430079)
近年來,隨著云計算技術的不斷發(fā)展,軟件開發(fā)正在不斷地走向大眾,來自不同地域的軟件開發(fā)者通過項目競標、群體協(xié)作的方式來進行軟件開發(fā),不僅在競爭的環(huán)境下提升了軟件質(zhì)量也增強了開發(fā)者的技能水平.開源社區(qū)、眾包平臺、開發(fā)者社區(qū)是軟件開發(fā)人員尋求問題解決的主要方式.通過多年的運行和演化,這些平臺上積累了數(shù)以萬計的開發(fā)者資料、交互行為、問答記錄和技術文檔.例如,短短幾年時間,軟件眾包平臺Topcoder就吸引了100多萬名開發(fā)者,每天產(chǎn)生的資源數(shù)超過5萬項;開發(fā)者技術社區(qū)StackOverflow上的開發(fā)者數(shù)也達到600萬,資源數(shù)量超過1300萬;軟件項目托管平臺GitHdb上的開發(fā)者數(shù)超過1500萬,項目數(shù)超過3800萬;全球最大的IT社區(qū)CSDN上的開發(fā)者數(shù)量也超過3000萬,資源數(shù)量超過9000萬.然而,平臺上的數(shù)據(jù)通常是零散的、不規(guī)則的且存在“信息過載”的問題,如何從海量的開發(fā)者中找到最適合的問題解決者是值得解決的問題[1,2].
協(xié)助社區(qū)中的開發(fā)者更好地解決問題有兩個方面的主要工作.一是為開發(fā)者推薦問題解決者,相關的研究工作有:文獻[1]基于KNN方法分析缺陷報告中潛在的Topic和開發(fā)者的特征之間的相似關系來推薦最佳的缺陷修復者;文獻[2]提取多個域中的Topic,計算跨域Topic間的相似關系進行跨域協(xié)作關系推薦;文獻[3]基于Topcoder上歷史獲勝者、參與者、任務特征信息,提取出開發(fā)者與任務的關聯(lián)關系,實現(xiàn)為特定項目推薦開發(fā)者等.文獻[1-3]從靜態(tài)特征挖掘開發(fā)者和Topic的相似關系,實現(xiàn)為特定Topic推薦開發(fā)者.文獻[4]通過分析GitHub上開發(fā)者對特定技術術語的使用頻度,問答社區(qū)(StackOverflow)上標簽和技術術語的關聯(lián)關系,實現(xiàn)為StackOverflow推薦問答專家.文獻[5]對StackOverflow上開發(fā)者的歷史數(shù)據(jù)分析,并基于LDA主題模型分析和發(fā)現(xiàn)開發(fā)者潛在的興趣,最終基于開發(fā)者興趣和協(xié)作投票機制相結合的方式為StackOverflow推薦問題專家.文獻[6]基于開發(fā)者的歷史完成任務和開發(fā)者聲譽結合的方式,給出開發(fā)任務匹配和推薦模型,利用開發(fā)者的聲譽增強推薦結果的準確度和多樣性.二是為開發(fā)者推薦問題的答案,主要的研究工作有:文獻[7]使用端到端的神經(jīng)網(wǎng)絡模型,通過交叉關注機制動態(tài)地得到問題和各個候選答案之間的候選得分,從而從特定的知識庫當中得到最佳得分的答案.文獻[8]針對開放領域的問題,提出了一種新的基于圖優(yōu)化的框架來尋找問題的答案,此方法可以有效地找到帶有多個短事實和元組關系結構的問題的答案.上述兩個方面的研究有其不同的側重點,其中為開發(fā)者推薦問題解決者更有利于促進社區(qū)開發(fā)者之間的互動和問題的精確解決,是本文研究的問題.
關于問題解決者推薦的研究,大多基于開發(fā)者的顯性行為,利用了協(xié)同過濾或主題模型實現(xiàn)推薦,此策略的主要問題是:
1)通常情況下,開發(fā)者社區(qū)的成員與問題的數(shù)量極大,開發(fā)者與問題之間的信息過于稀疏,基于協(xié)同過濾的方法會遇到所謂的評價矩陣稀疏問題.
2)僅利用開發(fā)者的顯性行為能夠發(fā)現(xiàn)積極回答者,但是不利于發(fā)現(xiàn)適合回答問題的潛在回答者.針對以上問題,文獻[9]提出了利用隱性行為增強評價矩陣的方法來解決軟件工程任務的開發(fā)者推薦問題.實驗表明引入隱性行為有利于更全面的刻畫開發(fā)者行為并可有效發(fā)現(xiàn)潛在的任務開發(fā)者.基于此思路,本文在問題解決者推薦過程中引入隱性行為因素,提出了一種基于隱性行為的問題解決者推薦算法,主要的貢獻是:
1)提出基于標簽的隱性行為變量計算方法,有利于發(fā)現(xiàn)潛在問題解決者,同時能夠改善開發(fā)者與問題之間的數(shù)據(jù)稀疏問題;利用此變量構建傾向性模型,以刻畫開發(fā)者對解決問題的主觀傾向性.
2)為了避免協(xié)同過濾推薦算法中的稀疏問題,提出采用貝葉斯多變量回歸方法建立推薦模型,以實現(xiàn)計算開發(fā)者推薦分值,并利用針對該分值的排序推薦問題解決者.
第一,所謂隱性行為即開發(fā)者社區(qū)中開發(fā)者針對問題的瀏覽、收藏、評論和回復行為.隱性行為能夠充分刻畫開發(fā)者與問題的交互過程;第二,所謂標簽即開發(fā)者社區(qū)中描述問題所屬領域的主題詞.標簽描述了問題題干的核心語義;第三,所謂基于標簽的隱性行為變量即基于隱性行為計算開發(fā)者針對標簽的特征值;第四,所謂傾向性變量即開發(fā)者對解決問題主觀傾向性的特征值;第五,所謂能力變量即從全局角度刻畫開發(fā)者的整體能力的特征值.其中,基于標簽的隱性行為變量和傾向性變量的計算方法將在本文的第三、第四部分討論.
本文研究中的問題可定義如下:針對問題Q,計算開發(fā)者集合Ds={di},i∈[1,n](其中,n是開發(fā)者總數(shù)),將集合中排名靠前的開發(fā)者推薦給提問者.特別地,本文中的q表示任意問題.
本文算法研究的總框架如圖1所示.主要包含訓練和推薦兩個階段.首先,本文收集開發(fā)者的隱性行為數(shù)據(jù)進行模型的訓練.步驟1對行為數(shù)據(jù)進行預處理,得到開發(fā)者-能力特征值文件、問題-標簽文件和問題-隱性行為文件.步驟2從問答記錄中生成訓練數(shù)據(jù),針對針對隱性行為數(shù)據(jù)中的問答記錄,得到問題的標簽,計算本記錄對應開發(fā)者的基于標簽的隱性行為變量、傾向性變量和能力變量三個特征值,并得到本記錄對應的開發(fā)者回答評分.步驟3訓練貝葉斯回歸模型,將步驟2計算得到的特征變量作為回歸變量,以及回答評分作為回歸值訓練得到模型;其次,當遇到新問題Q時,用已訓練好的模型進行預測.步驟4生成開發(fā)者特征變量,針對新提出的問題,得到問題的標簽,并基于隱性行為數(shù)據(jù)對開發(fā)者計算步驟2中的特征變量.步驟5推薦問題解決者,利用步驟4得到的開發(fā)者特征變量使用貝葉斯回歸模型得到開發(fā)者的評分,將排名靠前的開發(fā)者推薦給提問者.
圖1 算法框架Fig.1 Algorithm framework
當開發(fā)者在社區(qū)中提出一個問題時,如何刻畫社區(qū)中其他開發(fā)者解決此具體問題的專業(yè)因素、興趣因素和經(jīng)驗因素是首先需要解決的問題.此前的許多工作主要基于開發(fā)者的顯性行為(如,對問題的回復),而忽略了開發(fā)者的隱性行為(如,瀏覽,收藏和評論).隱性行為也是開發(fā)者的專業(yè)度、關注度和興趣度的重要反映,同時,研究此類行為有助于發(fā)現(xiàn)潛在的問題解決者.
在社區(qū)中問答中,通常每個問題被標識了多個標簽,這些標簽描述了問題所屬的領域,代表問題題干的核心語義.由此,本文將開發(fā)者對于問題的行為特征計算問題轉(zhuǎn)換成開發(fā)者對于標簽的行為特征計算問題,將開發(fā)者在同一標簽的其他問題上的交互行為用于計算開發(fā)者基于標簽的隱性行為變量IBVT,具體計算如公式(1)所示.
(1)
其中,IBVT(d,t)表示開發(fā)者d對于標簽t的隱性行為變量,Qt是標簽t所屬問題集合,A是交互行為的集合,Score(d,q,a)是開發(fā)者d在問題q上的交互行為a的得分,D是平臺所有的開發(fā)者集合.IBVT(d,t)∈[0,1].
依據(jù)專家經(jīng)驗,針對不同類別的交互行為,采用不同的函數(shù)計算相關的得分.為此,本文主要給出四類基本交互行為(即瀏覽(L)、收藏(S)、評論(P)和回復(H))的計算方法,具體計算方法見如公式(2)至公式(6).
為了增強模型的推薦效果,在隱性行為計算過程中同時考慮顯性行為,既回復行為,其反映了開發(fā)者的專業(yè)程度,計算如公式(2)所示.
(2)
其中,Q是他要進行推薦的新問題,timeh為開發(fā)者d在問題q上的回復次數(shù).sim函數(shù)采用CBOW詞嵌入模型進行問題相似度的計算,具體如式(3)所示.
(3)
其中,n是q的詞個數(shù),MAX是最大值函數(shù),設WEM是訓練好的CBOW模型,WEM.sim()是計算兩個詞向量相似度的函數(shù),wq是q中的詞,wQ是Q中的詞.按照公式(3)計算兩個句子內(nèi)容相似度的復雜度為O(N*M*(O(WEM.Sim))),其中,N是q分詞后的詞個數(shù),M是Q分詞后的詞個數(shù),乘上相似度計算函數(shù)WEM的復雜度.
(4)
其中,timel為開發(fā)者d在問題q上的瀏覽次數(shù),tl1-tl2是劃分范圍的區(qū)間值.開發(fā)者對于問題的瀏覽行為L反映了開發(fā)者對于問題的短期關注程度,本文將瀏覽行分為4類:0為無瀏覽,1為瀏覽次數(shù)較少,2為瀏覽次數(shù)一般,3為瀏覽次數(shù)較多.
(5)
其中,timep為開發(fā)者d在問題q上評論次數(shù),tp1是劃分范圍的區(qū)間值.開發(fā)者對應問題的評論行為反映了開發(fā)者對于問題的興趣程度,本文將開發(fā)者的評論行為分成3類:0為無興趣,1為興趣較低,2為興趣較高.
(6)
其中,times為開發(fā)者d在問題q上的收藏次數(shù).開發(fā)者對應問題的收藏行為反映了開發(fā)者對于問題的長期關注程度,本文將開發(fā)者的收藏行為分成2類:0為無收藏,1為有收藏.
本文定義的4類行為是各種開發(fā)者社區(qū)可獲取的基本行為,相關的分值給定基于專家知識.在實際應用中可以對行為的類型和計算方式進行擴展.基于標簽的隱性行為變量計算方法如算法1所示.
算法1為基于標簽的隱性行為變量計算算法.得到問題q的前n個標簽集合Tags和社區(qū)中的開發(fā)者集合Developers(行1-2);迭代每一個標簽Tag(行3);得到Tag對應的問題qs(行4),時間復雜度為O(N),N為社區(qū)中的問題總數(shù).依據(jù)公式(1)的分母計算qs下的隱性行為總得分,時間復雜度為O(N*M*A*O(Score)),N為社區(qū)的可推薦開發(fā)者的數(shù)目,M為qs中問題的數(shù)目,A為計算的隱性行為的個數(shù),乘上Score函數(shù)的復雜度;遍歷可推薦開發(fā)者(行7);依據(jù)式(1)的分子計算單個開發(fā)者在qs下的得分(行8-9),時間復雜度為O(M*A*O(Score)),其中M為qs中問題的數(shù)目,A為計算的隱性行為的個數(shù),乘上Score函數(shù)的復雜度;得到開發(fā)者Developer針對標簽Tag的隱性性行為變量(行10).
表1 基于標簽的隱性行為變量計算算法Table 1 Tag-based implicit behavioral variable calcdlation algorithm
通過基于標簽的隱性行為變量的計算可得到開發(fā)者關于具體問題的關注度特征、專業(yè)程度特征和興趣程度特征,這細致刻畫了開發(fā)者的行為.
通常開發(fā)者在某段時期內(nèi)會對特定領域的問題進行研究,這會導致開發(fā)者更有傾向?qū)Υ祟I域問題做出回復,因此考慮傾向性因素能夠有效的捕捉開發(fā)者的短期興趣,提高社區(qū)的交互水平.然而,現(xiàn)存的推薦方法經(jīng)常忽略了主觀傾向性,本文考慮對其進行建模.
本文采用能夠有效進行時序數(shù)據(jù)預測的LSTM[10]模型對傾向性進行建模.LSTM通過特別設計的門控機制來避免嘗試依賴的問題,其包含輸入門(input gates)、遺忘門(forget gates)和輸出門(output gates)3 種門結構,以保持和更新節(jié)點的狀態(tài).LSTM的相關計算如公式(7)-公式(12)所示,整體模型如圖2所示.
ft=σ(Wf[ht-1,xt]+bf)
(7)
it=σ(Wt[ht-1,xt]+bt)
(8)
Ct=tanh(Wc[ht-1,xt]+bc)
(9)
(10)
Ot=σ(Wo[ht-1,xt]+bo)
(11)
(12)
首先,介紹與模型相關的定義與計算方法.
定義1. 結合時間因素的基于標簽的隱性行為變量IBVTT.IBVTT表示時間區(qū)間[s,e]內(nèi),開發(fā)者d對于標簽t的隱性行為變量.計算過程如公式(13)所示.
IBVTT(d,t,s,e)=
(13)
其中,IBVTT(d,t,s,e)表示開發(fā)者d對于標簽在時間區(qū)間[s,e]的隱性行為變量,Qt是標簽t所屬的問題,A表示交互行為的集合,其與第2節(jié)中的交互行為集合一致.Qd為開發(fā)者d產(chǎn)生過交互行為的問題集合.time(d,q,a)表示開發(fā)者d對問題q的行為a發(fā)生的時間戳.Score的函數(shù)計算方法除回復行為外與第二節(jié)一致,回復行為的計算式如公式(14)所示.
(14)
其中,markh開發(fā)者d在問題q上回復得到的評分,th1是劃分區(qū)間的范圍值.本文將回復行為按照評分值分為三類:0為無評分,4為低評分,5為高評分.回復行為所給的分值比其他三類行為高,說明了其重要性.
定義2. 傾向性向量TV.傾向性向量TV存儲開發(fā)者d在針對問題q所屬前M個標簽的IBVTT值,TV∈RM.
定義3. 傾向性矩陣TM.傾向性矩陣TM儲存開發(fā)者d在多個連續(xù)的時間區(qū)間[si,ei],i∈[1,N]內(nèi)針對問題q的傾向性向量TV,TM∈RN×M.
定義4. 傾向性等級.開發(fā)者d對解決問題q的傾向性級別.本文將傾向性級別設置為4類,分別為不傾向回答(NT,0),低等傾向回答(LT,1),中等傾向回答(MT,2)和高等傾向回答(HT,3).其中,括號中的數(shù)值為類別對應的特征值.
定義5. 傾向性等級向量TL.開發(fā)者對解決問題q的傾向性等級的向量表示,用于傾向性模型計算的輸入輸出.TL∈{0,1}4,僅在所屬等級對應的下標位置的元素為1.對應規(guī)則如下:TL0對應不傾向回答;TL1對應低等傾向回答;TL2對應中等傾向回答;TL3對應高等傾向回答.
圖2 傾向性模型Fig.2 Tendency model
其次,介紹模型的運行過程.如圖2所示,模型輸入為開發(fā)者針對問題q的傾向性矩陣TM,其中,N為連續(xù)的時間區(qū)間數(shù)目,M為用于表示問題的標簽個數(shù).LSTM的隱藏節(jié)點和隱藏層H的節(jié)點個數(shù)均為M,記錄M個標簽存儲的傾向性信息.Softmax層輸出開發(fā)者針對問題q的傾向性屬于各個等級的概率.
最后,在使用傾向性模型時,輸入開發(fā)者針對問題q的傾向性矩陣TM,將softmax層輸出所屬概率最大值的傾向性等級對應的特征值作為傾向性變量的值.
算法2是傾向性模型訓練數(shù)據(jù)生成算法,本文將時間區(qū)間[s,e]的時間跨度設置為一個月.得到社區(qū)的開發(fā)者集合Developers(行1);聲明存儲傾向性矩陣的集合TMs和傾向性類別向量的集合TLs(行2-3);遍歷每一個開發(fā)者Developer 行4);得到Developer 近N個月交互數(shù)量最后和前三的標簽Tags和在Tags下進行交互的問題qs(行5-8);遍歷qs中的問題q(行9);生成Developer 針對問題q的傾向性矩陣TM和傾向性類別向量TL加入對應的集合(行10-18).整個算法的時間復雜度為O(N*M*O(TM)),N為可開發(fā)者數(shù)量,M為開發(fā)者中qs集合問題個數(shù)的最大值,乘上生成傾向性矩陣TM的復雜度.生成傾向性矩陣TM的時間復雜度為O(N*M*Q*A*(Score)),其中,為傾向性矩陣計算需要的連續(xù)時間區(qū)間數(shù),M為傾向性向量的維度,Q為與開發(fā)者Developer 對應qs的問題個數(shù),A為交互行為個數(shù),乘上Score函數(shù)的復雜度.
表2 傾向性模型訓練數(shù)據(jù)生成算法Table 2 Tendency model training data generation algorithm
本章主要敘述如何將上述提出的相關理論統(tǒng)一在貝葉斯回歸模型的框架下.選擇貝葉斯回歸計算開發(fā)者對問題q的評分有以下原因:
1)可以避免協(xié)同過濾算法的評價矩陣稀疏問題;
2)貝葉斯回歸對數(shù)據(jù)有自適應能力,可以重復的利用實驗數(shù)據(jù),并防止過擬合[11].
首先,敘述關于能力變量的計算.能力變量反映開發(fā)者在社區(qū)中的整體專業(yè)程度,本文采用文獻[9]中提到的基于模糊理論的方法計算開發(fā)者的能力變量Ability(d)∈[0,1].
其次,利用貝葉斯回歸對開發(fā)者針對問題q的評分進行建模.貝葉斯回歸最終要建立的評分函數(shù)如公式(15)所示.
y=β1x1+…+βkxk,var(yi|θ,xi)=σ2,
θ=(β1,β2…βk,σ2)
(15)
其中,Xi為開發(fā)者針對q問題評分的特征變量,k為特征變量的個數(shù),從X1到Xk-2為基于標簽的隱性行為變量,Xk-1是傾向性變量,Xk是能力變量.σ2為評分函數(shù)計算的評分值和真實評分值的方差.θ是模型要估計的所有參數(shù).
因子化θ的聯(lián)合后驗概率,其結果如公式(16)所示.
P(β,σ2|Y)=P(β|σ2,y)·P(σ2|y)
(16)
式(16)中P(β|σ2,y)是服從公式(17)所示的正態(tài)分布.
(17)
其中,X∈Rn×k,n為訓練用的問答對個數(shù).依據(jù)P(σ2|y)=P(β,σ2|y)/P(β|σ2,y),可定義公式(16)中的P(σ2|y)服從公式(18)所示的分布.
(18)
有了公式(17)與公式(18),可從兩個分布中采樣相應的值,并估計最終的模型參數(shù).
在訓練階段針對社區(qū)中已存在的每條問答記錄,計算本記錄對應開發(fā)者的基于標簽的隱性行為變量、傾向性變量和能力變量作為回歸變量,獲取到開發(fā)者回答評分作為回歸值訓練貝葉斯回歸模型.根據(jù)模型中基于標簽的隱性行為變量的個數(shù)可以將本算法分成不同的版本(如實驗中的Top3-ARIB和Top5-ARIB).由于現(xiàn)實社區(qū)中回答評分的范圍不存在限制,在使用模型時要根據(jù)回答評分的分布將其映射到較小的連續(xù)區(qū)間(如實驗中將Top3-ARIB算法的回歸值映射到[0,5]的區(qū)間).
表3 基于貝葉斯回歸的問題解決者推薦算法Table 3 Problem solver recommendation algorithm based on Bayesian regression
最后,在推薦階段對提問者新提出的問題Q得到社區(qū)各個開發(fā)者的基于標簽的隱性行為變量、傾向性變量和能力變量的特征值,通過訓練好的評分函數(shù)得到開發(fā)者對此問題的評分,排序后將排名靠前的開發(fā)者作為問題解決者推薦給提問者,具體過程如算法3所示.
本文從Stack Overflow提供的數(shù)據(jù)服務平臺上下載得到真實的問答數(shù)據(jù).過濾數(shù)據(jù)后選擇2008-05-01~2009-05-01十二個月期間平均每個月回答問題數(shù)目大于7個的開發(fā)者(經(jīng)過統(tǒng)計發(fā)現(xiàn)平臺所有開發(fā)者平均每個人每月回答問題數(shù)目為6.3個),共得到2596個開發(fā)者的行為數(shù)據(jù)作為訓練數(shù)據(jù),使用2009-05-01~2010-05-1時間段內(nèi)該2596個開發(fā)者的行為數(shù)據(jù)作為預測數(shù)據(jù).試驗過程中過濾掉標簽出現(xiàn)次數(shù)少于等于10次的不常出現(xiàn)標簽.
本節(jié)對算法的參數(shù)設置進行說明:(1) 對問題計算其前3標簽的隱性行為變量和前5標簽的隱性行為變量訓練回歸模型,分別命名為Top3-ARIB和Top5-ARIB;(2)基于標簽的隱性行為變量算法中的參數(shù):tl1設置為3,tl2設置為5,tp1設置為5;(3)傾向性模型中的參數(shù):傾向性模型需要計算的連續(xù)區(qū)間數(shù)N設置為3,傾向性向量的維度設置為5;th1設置為社區(qū)評分的均值;(4) 能力變量的計算使用開發(fā)者的repdtation、views、dpvotes和downvotes進行計算.(5) 將Top3-ARIB算法的回歸值映射到[0,5]的區(qū)間,Top5-ARIB算法映射到[0,7]的區(qū)間.
為了評估本文所提出的問題解決者推算法的有效性,本文使用公式(19)-公式(24)的評測指標.Recommend_d為推薦的問題解決者集合,d_Ranki為每個推薦問題解決者的排序位置.Reality_d 為實際回答者集合,d_RRanki為實際回答者的排序位置 .查全率Recall_rate@N如公式(19)所示,查準率Pr ecision_rate@N如公式(20)所示,所有問題集合Q的平均查全率Recall@N如公式(21)所示,所有問題集合Q的平均查準率Pr ecision@N如公式(22)所示,排序質(zhì)量MAP_rate@N如公式(23)所示,所有問題集合Q的平均排序質(zhì)量如公式(24)所示.
(19)
(20)
(21)
(22)
(23)
(i∈(Rcommend_U∩Reality_U))
j∈1…‖Rcommend_U∩Reality_U‖
(24)
本文選取以主題模型為主要方法的CQARank[12]和RanksLDA[13]進行比較,實驗時設置兩個算法的主題個數(shù)為50,比較推薦集合大小為Top20和Top50時在各個測評指標上的結果.
在Top@20的情況下,Top3/5-ARIB方法在排序質(zhì)量上略差于RanksLDA-50,但是在精確率和查準率上都取得了最佳的效果.同時,通過比較發(fā)現(xiàn)由于推薦集合較小,Top5-ARIB在查全率上并沒有表現(xiàn)出比Top3-ARIB更好的效果.
表4 相關方法對比Table 4 Related methods comparison
在Top@50的情況下,Top3/5-ARIB都取得了最佳的效果.同時,通過比較發(fā)現(xiàn)Top5-ARIB方法在三個指標上都只略高于Top3-ARIB方法,所以在實際應用中采用Top3-ARIB方法能夠降低算法的復雜度
本文提出了基于開發(fā)者隱性行為的問題解決者推薦算法.基于標簽的隱性行為變量能夠充分獲取開發(fā)者的整體行為特征,從而找到潛在問題解決者.傾向性模型利用循環(huán)神經(jīng)網(wǎng)絡對開發(fā)的短期興趣進行預測,能夠很好地預測開發(fā)者的主觀傾向性.能力模型對開發(fā)者的能力進行度量.最終,將多個變量統(tǒng)一在貝葉斯多變量回歸的框架下.本文在Stackoverflow的真實數(shù)據(jù)上進行了實驗,證明了模型的有效性.