?

面向軟件外包平臺的協同過濾推薦算法的研究

2021-09-09 08:19譚鴻樂沈春龍何嘉欣
現代計算機 2021年19期
關鍵詞:相似性開發者算法

譚鴻樂,沈春龍,何嘉欣

(南華大學計算機學院,衡陽 421001)

0 引言

現如今,服務型中小型企業如果要尋求程序員為企業開發軟件,可以在一些IT網站上進行招聘,如程序員客棧、豬八戒網、碼市等平臺,或者是在各種貼吧、論壇上發布需求。但是這些方式都存在著諸多的問題。其中,需求方能否準確地辨識開發方的能力是首要問題。同時,大部分需求方是非專業的,正如喻珠晗[1]在軟件外包的風險研究中發現軟件外包行業存在著外包方選擇不合理的問題,有可能出現因技術能力或管理能力不足,無法按期完成合同,甚至最終無法交付的情況。這些平臺對于需求方并不那么友好,缺乏合適的推薦算法來緩解需求方“找人”難的問題。本文嘗試運用基于軟件項目的協同過濾的推薦算法,對不同需求方群體進行分類,在需求方群體中進行協同過濾推薦,實現優質匹配。

1 相關工作

目前市面上的軟件外包平臺面向的是專業開發者,流程繁瑣并且開發費用昂貴。而中小型企業希望的是便捷與低成本開發,陸俊宏等人[2]也在其研究的軟件外包策略中指出軟件外包的目的就是企業為了能夠在提升自身核心競爭力的同時降低軟件項目的成本,把軟件項目中的所有或者部分工作發包給能夠進行外包服務的企業進而完成的軟件需求活動。因此,需要一個能夠智能匹配開發者跟中小企業需求方的軟件外包平臺。而該平臺的核心是智能匹配算法,其使系統智能地推薦開發者,以此來優化軟件外包行業中的需求方“找人”這一行為,而算法的設計就是本文研究的內容。

就目前市面上的情況來看,其主流推薦算法主要是基于內容的推薦算法、基于規則的推薦算法、協同過濾推薦算法等[3]。

基于內容的推薦算法是依靠用戶的歷史數據建立描述用戶興趣愛好的興趣模型,對興趣模型進行特征向量的比較來進行推薦。陳昌鳳等人[4]探討了基于內容的個性化新聞推薦算法,其優點是不依賴其他用戶的數據,直接建立在用戶興趣與內容特征的相似度匹配上,推薦結果往往與用戶過去喜歡的某條新聞具有相關性以及較強的可解釋性。

基于規則的推薦算法利用的是用戶閱讀過的感興趣的內容,以這些內容為基礎,應用規則來推測用戶的興趣行為,比如未瀏覽過卻可能感興趣的內容,這種算法需要的是規則的制定。向程冠等人[5]通過計算用戶發布的碎片信息相似度,把相似的信息作為一條交易數據,生成交易數據庫,然后利用改進后的AprioriTid算法計算出2階大項集,構建推薦規則庫,實現了基于關聯規則的社交網絡好友推薦算法。

協同過濾推薦算法利用了用戶之間興趣愛好具有的相似性對目標用戶進行推薦。該推薦算法是目前最廣泛被應用于推薦系統,同時也是比較成熟和成功的推薦技術。而且其在電商類網站應用最為廣泛,楊恒等人[6]在對電商平臺協同過濾算法的模型研究中指出其協同過濾算法是根據相似購買特征的顧客或者相似屬性特征的商品數據進行線性分析,將偏好接近的顧客或者特征相似度高的商品形成鄰集,最終把它們推薦給顧客的一種決策方法。

2 協同過濾推薦算法

2.1 算法推薦流程

(1)需求偏好推理

需求偏好是需求方發布的軟件項目所產生的開發需要、部署環境需要、難易程度偏好、價格偏好等行為的總稱。要對需求方進行開發者推薦,最重要的是識別需求方的偏好。識別需求方偏好是為后續進行相似性計算、推薦開發者的篩選做好推薦的基礎。

(2)目標需求方與信息完整度高的需求方之間的相似性計算

系統目標需求方Aa的需求偏好受其軟件項目的架構、難易程度或應用場景等要素影響,這些影響因素對相似需求方的影響程度是非常接近的,因此可以根據相似需求方的開發者偏好來推理目標需求方的開發者偏好。

相似性計算方法采用改進的余弦相似性計算方法計算目標需求方與已知需求方群之間的相似性。令UA為目標需求方,Un為系統中已有需求方群中的第n個需求方。選擇相似性高的N個需求方組成相似需求方集AUA,將其偏好定義為目標需求方的偏好。需求方相似性計算表達式為公式(1):

(1)

(3)目標需求方的偏好評分預測

因為不同的需求方存在著差異,為了減少誤差,要根據需求方實際情況判斷其對某開發者的偏好程度。本文用目標需求方對某開發者的偏好評分表示對其偏好的程度。

(2)

2.2 需求方偏好模型構建

(1)需求方軟件項目要素

本文選取的軟件外包平臺的需求方軟件項目要素主要有以下三類:需求方基本信息BID(Basic Information of Demander)、需求方歷史軟件項目HSPD(The Historical Software Project of The Demander)及需求方當前軟件項目需求CSPRD(Current Software Project Requirements of Demanders)。需求方軟件項目模型表示為:Software_Project={BID,HSPD,CSPRD}。

其中BID、HSPD、CSPRD各取3個要素:BID={Cs,Csn,Cib};HSPD={Hsptp,Hspl,Hspt};CSPRD={Csprc,Csprl,Csprp}。需求方軟件項目要素的說明如表1所示。

表1 需求方軟件項目要素的說明

續上表

(2)偏好模型構建

選擇用戶需求方基本信息BID、需求方歷史軟件項目HSPD、需求方當前軟件項目需求CSPRD三個軟件項目維度,使用貝葉斯網絡推理,分別構建基于BID的偏好子模型、基于HSPD的偏好子模型、基于CSPRD的偏好子模型。在此基礎上,統計了三個維度構建的偏好子模型對于需求方偏好的影響權重,偏好模型構建的思路如圖1所示。

圖1 需求方多維偏好模型構建過程

(3)子模型偏好概率

構建對應的貝葉斯網絡拓撲圖,需要以需求方偏好作為父節點,并分別以目標需求方的BID、HSPD、CSPRD作為子節點,每一子節點都會形成一個對應需求方偏好概率,令Bi為A條件下偏好開發者的概率,其通用計算公式(3)如下:

(3)

當A為目標需求方的BID、HSPD、CSPRD時,可分別計算出需求方在BID、HSPD、CSPRD條件下對開發者的偏好概率,取其中最大值作為需求方在BID、HSPD、CSPRD條件下的偏好推薦方案。

(4)需求方多維偏好模型構建

一般情況下,雖然基于需求方基本信息BID、需求方歷史軟件項目HSPD及需求方當前軟件項目需求CSPRD等單一因素條件下所分析得出的推薦結果具有一定的準確性,但是實際情況多種多樣,誤差往往隨著影響因素的增加而增大,因此要提高推薦精準度需綜合多種影響因素來修正需求方偏好。為使需求方偏好模型更符合實際需求,加上權重系數K,令KBID、KHSPD、KCSPRD分別為基于BID、HSPD、CSPRD的三類需求方偏好概率模型的權重系數。對應的公式(4)計算需求方A對開發者的偏好概率,并選取最優值作為推薦方案。

P(Bi|A)=KBID×P(Bi|ABID)+KHSPD×P(Bi|AHSPD)+KCSPRD×P(Bi|ACSPRD)

(4)

3 實驗與評價

3.1 實驗實例

本文選取需求方軟件項目需求的相關信息作為樣本群,并隨機選取一條軟件項目需求作為研究樣本,樣本需求方軟件項目需求信息如表2所示。

表2 樣本需求方軟件項目需求信息

得到樣本需求方軟件項目對開發者推薦結果如表3所示,其中基于需求方基本信息的推薦為序號{1,2,3,4},基于需求方歷史軟件項目的推薦為序號{5,6,7,8},基于需求方當前軟件項目需求的推薦為序號{9,10,11,12},基于需求方軟件項目多維偏好推薦為序號{13,14,15,16}。通過各類算法計算需求方對開發者的偏好概率,取前4項推薦開發者的主要屬性,并與軟件項目的實際需求作對比,結果符合其軟件項目需求規律,其中采用多維推薦算法得出的推薦結果在所命中的軟件項目需求比較全面,表明該算法更符合目標需求方的軟件項目開發需求規律。

表3 不同算法下推薦的開發者結果

3.2 評價與結果分析

推薦結果的評價一般由準確率Pr和召回率Re來確定,召回率是指符合需求方偏好的推薦開發者數量在需求方偏好集中的比例;準確率是指符合需求方偏好的推薦,令Hi為符合需求方實際偏好的開發者總數,Li為需求方i偏好集中開發者總數,M為樣本需求方總數,N表示推薦開發者的總數。則準確率Pr和召回率Re如公式(5)、(6)所示。

(5)

(6)

為提高推薦準確度,需要引入調和平均數V,如公式7所示。以部分需求方軟件項目需求作為基礎,得不同推薦模型的評價結果,如表4所示。從表4可知,多維偏好模型的V值高于其他模型算法,即開發者推薦準確度更高,較其他算法更有優越性。

表4 不同推薦模型的評價結果

4 結語

本文針對軟件外包行業中的需求方“找人”這一行為進行了優化,設計了一種基于軟件項目多維需求要素的外包平臺開發者推薦策略。軟件外包平臺推薦模塊可以根據需求方的偏好向需求方主動推薦開發者,通過實驗表明該方法推薦的開發者具有一定的準確性,讓系統智能推薦,節省非專業的需求方因為“找人”而花費的大量時間以及金錢。

猜你喜歡
相似性開發者算法
Travellng thg World Full—time for Rree
12個毫無違和感的奇妙動物組合
學習算法的“三種境界”
算法框圖的補全
算法初步知識盤點
基于隱喻相似性研究[血]的慣用句
“85后”高學歷男性成為APP開發新生主力軍
16%游戲開發者看好VR
潛析結構 把握性質
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合