基于信息檢索的軟件缺陷定位方法是當前軟件缺陷定位領域中的一個研究熱點.該方法主要分析缺陷報告文本和程序模塊代碼,通過計算缺陷報告和程序模塊間的相似度,選取與缺陷報告相似度最高的若干程序模塊,將其推薦給開發人員.本文對近些年國內外研究人員在該綜述主題上取得的成果進行了系統的梳理和總結. 首先,給出研究框架并闡述影響方法性能的三個重要因素:數據源、檢索模型和場景應用;其次,依次對這三個影響因素的已有研究成果進行總結;然后,總結基于信息檢索的軟件缺陷定位研究中常用的性能評測指標和評測數據集;最后總結全文并對未來值得關注的研究方向進行展望。
在軟件開發過程中,軟件缺陷(software bug)難以避免.對需求理解的偏差、不合理的軟件開發過程,亦或 開發人員的疏忽,均有可能在軟件項目內引入軟件缺陷.這些含有缺陷的軟件產品在部署后,可能會產生無法預 測的行為或結果,甚至會對人們的生產和生活方式產生重大影響.當檢測到軟件內存在缺陷時,開發人員需要借 助軟件調試定位并修復缺陷.傳統的軟件調試方法主要借助手工調試,在可疑代碼處設置程序斷點,隨后重復執 行失敗的測試用例,并觀察程序斷點處的變量取值,不斷縮小可疑代碼的搜索范圍,直至定位到缺陷代碼.這種 方法完全通過人工的方式完成,存在缺陷定位代價高、對缺陷報告信息利用不充分、費時費力等問題.因此,研 究人員針對自動化軟件缺陷定位方法展開深入研究,試圖減輕開發人員負擔的同時,提高缺陷定位的效率與精度.
已有的缺陷定位方法按照是否需要執行測試用例,可分為兩類:動態缺陷定位方法和靜態缺陷定位方法[1]. 其中,動態缺陷定位方法通過搜集測試用例的執行行為和運行結果,重點對被測程序的內在結構進行分析,以確 定缺陷語句在被測程序內的可能位置;靜態缺陷定位方法通過分析缺陷報告和程序模塊的文本內容并提取特 征,基于特定模型確定可疑的程序模塊,并將其推薦給開發人員以輔助定位.動態缺陷定位方法基于測試用例的 覆蓋信息定位缺陷,通常可獲得比靜態缺陷定位方法更好的性能[2].然而在軟件維護階段,開發人員有時并不能 獲得足夠的測試用例[3],僅能搜集到缺陷報告的信息.靜態缺陷定位方法由于不需要搜集測試用例的執行信息, 不會受到程序規模和編程語言等因素的影響,具有缺陷定位代價低和方法可擴展性強等特點,也頗受關注.其 中,基于信息檢索的缺陷定位(Information Retrieval-based Bug Localization,簡稱 IRBL)是目前靜態缺陷定位 研究中的熱點,也是本綜述重點關注的研究問題. IRBL 可視為概念定位(concern localization)[4]或特征定位(feature localization)5]的一個特例.當需要定 位的概念或特征都為缺陷時,概念定位或特征定位又被稱為缺陷定位.
IRBL 輸入為一個缺陷報告,輸出為所有 與該缺陷報告所述缺陷相關的程序模塊.該問題在研究時面臨缺陷報告和程序模塊詞匯不匹配和表示方式差 異較大等問題,大部分研究人員從文本挖掘角度設計解決方案.為了對該研究問題進行系統的分析、總結和比 較,我們首先在 IEEE Explore、ACM Digital Library、Elsevier、Springer、CNKI 等學術論文數據庫中進行檢 索,檢索時采用的英文關鍵詞包括 bug localization、fault localization、information retrieval、bug localisation 等; 然后,通過人工審查的方式移除掉與綜述主題無關的論文,并通過查閱相關論文的參考文獻和相關研究人員發 表的論文列表來進一步識別出遺漏的論文;最終,我們篩選出與該研究問題直接相關的高質量論文共 87 篇(截 止到 2019 年 12 月).
我們首先對每年發表的相關論文的累計總數進行統計,結果如圖 1 所示.不難看出,每年發表的論文數整體 上呈上升趨勢.在 2013 年之前,每年發表的論文數較少(介于 0 至 4 篇).但在 2013 年之后,隨著公開的數據集 和共享的實驗代碼的不斷增多,針對 IRBL 方法的研究逐漸成為靜態軟件缺陷定位領域內的一個主流研究方 向.在最近 3 年,每年發表的論文總數平均可以達到 13 篇以上.隨后我們基于論文發表源對相關論文進行分類, 并按照論文數從大到小進行排序,最終結果如表 1 所示(該表僅列出 CCF 推薦列表中論文數大于 1 的會議和 期刊),其中在軟件工程領域權威期刊或會議上發表的論文數總結如下:ICSE 會議(5 篇)、ESEC/FSE 會議(4 篇)、ISSTA 會議(3 篇)、ISSRE 會議(2 篇)、TSE 期刊(5 篇)等.基于已搜索到的相關論文,我們對 IRBL 方法的已有研究工作進行了系統總結,并提出一個研究框架,從 3 個影響因素出發,對不同類型的方法進行系統 的分析和比較,同時對常用的性能評測指標和評測數據集進行歸納.
論文剩余內容安排如下:第 2 節總結 IRBL 方法的研究框架,并識別出三個重要的影響因素(數據源、檢索 模型和場景應用);第 3 節到第 5 節分別對這三個影響因素進行詳細的分析與總結;第 6 節介紹常用的性能評 測指標;第 7 節介紹常用的評測數據集;最后總結全文并對未來可能值得關注的研究問題進行展望.
摘要 在線社交網絡中的消息流行度預測研究,對推薦、廣告、檢索等應用場景都具有非常重要的作用。近年來,深度學習的蓬勃發展和消息傳播數據的積累,為基于深度學習的流行度預測研究提供了堅實的發展基礎。現有的流行度預測研究綜述,主要是圍繞傳統的流行度預測方法展開的,而基于深度學習的流行度預測方法目前仍未得到系統性地歸納和梳理,不利于流行度預測領域的持續發展。鑒于此,該文重點論述和分析現有的基于深度學習的流行度預測相關研究,對近年來基于深度學習的流行度預測研究進行了歸納梳理,將其分為基于深度表示和基于深度融合的流行度預測方法,并對該研究方向的發展現狀和未來趨勢進行了分析展望。
對流體圖像序列進行運動分析一直是流體力學、醫學和計算機視覺等領域的重要研究課題。從圖像對中提取的密集精確的速度矢量場能夠為許多領域提供有價值的信息,基于光流法的流體運動估計技術因其獨特的優勢成為一個有前途的方向。光流法可以獲得具有較高分辨率的密集速度矢量場,在小尺度精細結構的測量上有所改進,彌補了基于相關分析法的粒子圖像測速技術的不足。此外,光流方法還可以方便的引入各種物理約束,獲得較為符合流體運動特性的運動估計結果。為了全面反映基于光流法的流體運動估計算法的研究進展,本文在廣泛調研相關文獻的基礎上,對國內外具有代表性的論文進行了系統闡述。首先介紹了光流法的基本原理,然后將現有算法按照要解決的突出問題進行分類:結合流體力學知識的能量最小化函數,提高對光照變化的魯棒性,大位移估計和消除異常值。對每類方法,從問題解決過程的角度予以介紹,分析了各類突出問題中現有算法的特點和局限性。最后,總結分析了流體運動估計技術當前面臨的問題和挑戰,并對未來基于光流法的運動估計算法的研究方向和研究重點進行了展望。
//www.cjig.cn/jig/ch/reader/view_abstract.aspx?file_no=20210209&flag=1
在軟件的開發和維護過程中,與代碼對應的注釋經常存在缺失、不足或者與代碼實際內容不匹配等問題,但手工編寫代碼注釋對開發人員來說費時費力,且注釋質量難以保證,因此亟需研究人員提出有效的代碼注釋自動生成方法.代碼注釋自動生成問題是當前程序理解研究領域的一個研究熱點,論文對該問題進行了系統綜述.主要將已有的自動生成方法細分為三類:基于模板的方法、基于信息檢索的方法和基于深度學習的方法.論文依次對每一類方法的已有研究成果進行了系統的梳理、總結和點評.隨后分析了已有的實證研究中經常使用的語料庫和主要的注釋質量評估方法,以利于針對該問題的后續研究可以進行合理的實驗設計.最后總結全文,并對未來值得關注的研究方向進行了展望.
//www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=6258&flag=1
隨著軟件項目的復雜度和軟件產品迭代頻率的不斷提升,程序理解在整個軟件開發環節的重要性也日益 提高.最近的一項研究工作[1]表明:開發人員平均需要花費 59%的時間在程序理解上.無疑高質量的代碼注釋是 提高開發人員程序理解效率的關鍵[2].但開發人員由于項目開發預算有限、編程經驗不足或者對代碼注釋的重 視程度不夠,經常會造成代碼注釋的缺失、不足或者與代碼實際內容不匹配等問題.雖然借助一些工具(例如 JavaDoc[3]和 Doxygen?)可以輔助生成代碼注釋模板,但仍然不能自動生成與代碼實現功能和目的相關的描述. 如果由開發人員手工輸入代碼注釋則費時費力,并且注釋的質量很難得到保障.除此之外,已有的代碼注釋也需 要隨著相關代碼的持續演化而保持同步更新[4].因此亟需研究人員設計出有效的代碼注釋自動生成(code comment generation)方法.
代碼注釋自動生成是當前程序理解領域的一個研究熱點[5].代碼注釋可以描述相關代碼的實現功能和實 現目的.高質量的代碼注釋有助于提高代碼的可讀性和可理解性,因此在軟件開發和維護過程中具有重要的作 用.代碼注釋自動生成問題可以認為是將基于編程語言實現的代碼自動翻譯成基于自然語言描述的文本,同時 希望自動生成的注釋不僅可以描述代碼實現的功能,而且還可以給出代碼的實現目的或開發人員的設計意圖 等.例如:開發人員通過閱讀如下兩段注釋“uploads log files to the backup server”和“formats decimal values as scientific notation”,就可以直接對相關代碼的目的產生清晰的認識,而不需要再深入的去理解代碼的具體實現 細節.
代碼注釋的自動生成在很多軟件工程相關任務中都能起到重要的作用.例如:當開發人員新加入某個項目 的開發團隊,或者需要評估項目內的某個模塊是否需要使用新的類庫時,需要通過閱讀和理解代碼,來盡快熟悉 大規模軟件項目內的某個程序模塊.開發人員在審查某個程序模塊的時候,需要盡快了解該模塊的核心代碼變 更.在軟件的開發和維護過程中,開發人員需要盡快定位到自己感興趣的代碼段上.不難看出,高質量的代碼注 釋有助于協助開發人員提高上述任務的完成效率.
但代碼注釋自動生成問題在研究時也面臨諸多嚴峻挑戰:首先高質量的代碼注釋離不開對代碼結構和語 義的高質量分析,尤其是代碼語義分析在當前軟件工程領域仍然是一個開放問題.其次有時候如果僅分析代碼 本身,并不足以生成高質量的代碼注釋.因此還需要研究如何有效利用項目缺陷跟蹤系統和版本控制系統內的 領域知識和來在 Stack Overflow 和 Github 的眾包知識.最后當前對生成的代碼注釋進行質量評估時,主要采用 手工評估方法和自動評估方法.但使用手工評估方法打分時,受限于專家對編程語言和領域知識的熟悉程度,容 易存在主觀性較強的問題.而自動評估方法一般使用來自機器翻譯研究領域的評測指標,雖然可以自動給出生 成注釋的質量評分,但代碼注釋自動生成問題與機器翻譯問題相比,仍存在一定的差異性[6].
論文剩余內容的結構安排如下:第 1 節給出了綜述的整體研究框架,隨后第 2 節到第 4 節分別介紹基于模 板的生成方法、基于信息檢索的生成方法和基于深度學習的生成方法的相關研究工作,并進行了點評.第 5 節 總結了常用的代碼注釋語料庫.第 6 節將常用的代碼注釋質量評估方法分為兩類,并分別進行了分析.最后對該 領域未來值的關注的研究方向進行了展望
信息論的經典結果表明,信源信道分離編碼是漸進最優的。但現代通信系統對時延、帶寬等愈發敏 感,分離設計對解碼具有無限計算能力這一假設難以成立。帶寬有限時,相對于信源信道聯合編碼,分離編 碼已被證明是次優的。傳統的聯合信源信道編碼需要復雜的編碼方案,相較之下,數據驅動的深度學習技術 則帶來了新的設計思路。適時地對相關研究成果進行總結,有助于進一步明確深度學習方法解決信源信道聯 合編碼問題的方式,為研究新的研究方向提供依據。首先介紹了基于深度學習的信源壓縮方案和端對端收發 信機模型,隨后分析不同信源類型下的兩種聯合編碼設計思路,最后探討了基于深度學習的信源信道聯合編 碼的潛在問題和未來的工作方向。
傳統圖像修復算法在修復區域涉及復雜非重復結構(如面部)時,不能準確捕捉到高級語義。近三年來基于深度學習的方法被應用于圖像修復中,其修復結果的結構相似性較傳統方法提高了10%以上。首先闡述了面部修復技術的研究發展歷程,主要介紹了基于深度學習的面部修復算法,將其分為無監督和有監督兩大類方法,在每一類中重點對近年來涌現的各種面部修復算法進行分析和總結;然后歸納了當前主流的六類圖像數據集,以及算法性能評價指標;最后討論了面部修復技術的未來研究方向。
深度學習在計算機視覺領域取得了重大成功,超越了眾多傳統的方法.然而,近年來深度學習技術被濫用在假視頻的制作上,使得以Deepfakes為代表的偽造視頻在網絡上泛濫成災.這種深度偽造技術通過篡改或替換原始視頻的人臉信息,并合成虛假的語音,來制作色情電影、虛假新聞、政治謠言等.為了消除此類偽造技術帶來的負面影響,眾多學者對假視頻的鑒別進行了深入的研究,并提出一系列的檢測方法幫助機構或社區來識別此類偽造視頻.盡管如此,目前的檢測技術仍然存在依賴特定分布數據、特定壓縮率等眾多的局限性,遠遠落后于假視頻的生成技術.并且,不同的學者解決問題的角度不同,使用的數據集和評價指標均不統一.迄今為止,學術界對深度偽造與檢測技術仍缺乏統一的認識,深度偽造和檢測技術研究的體系架構尚不明確.在本綜述中,我們回顧了深度偽造與檢測技術的發展,并對現有研究工作進行了系統的總結和科學的歸類.最后,我們討論了深度偽造技術蔓延帶來的社會風險,分析了檢測技術的諸多局限性,并探討了檢測技術面臨的挑戰和潛在研究方向,旨在為后續學者進一步推動深度偽造檢測技術的發展和部署提供指導.
近年來,以 Deepfakes [1]為代表的換臉技術開始在網絡興起.此類技術可將視頻中的人臉替換成目標人物, 從而制作出目標人物做特定動作的假視頻.隨著深度學習技術的發展,自動編碼器、生成對抗網絡等技術逐漸 被應用到深度偽造中.由于 Deepfakes 技術只需要少量的人臉照片便可以實現視頻換臉,一些惡意用戶利用互聯網上可獲取的數據生成眾多的假視頻并應用在灰色地帶,如將色情電影的女主角替換成女明星,給政客、公司高管等有影響力的人偽造一些視頻內容,從而達到誤導輿論,贏得選取,操縱股價等目的.這些虛假視頻內容 極其逼真,在制作的同時往往伴隨著音頻的篡改,使得互聯網用戶幾乎無法鑒別.如果這些深度偽造的內容作為新聞素材被制作傳播,這會損害新聞機構的聲譽和公眾對媒體的信心.更深層次的,當遇到案件偵查和事故取證時,如果缺乏對 Deepfakes 類虛假影像資料的鑒別,將對司法體系產生巨大的挑戰.盡管深度偽造技術有其積極的一面,如“復活”一些去世的人進行影視創作,以及 Zao APP[2]提供大眾換臉娛樂服務等,但是目前負面影響遠遠大于正面,擁有鑒別此類深度偽造視頻的能力變得尤為重要.
為了盡量減少深度偽造技術帶來的影響,消除虛假視頻的傳播,學術界和工業界開始探索不同的深度偽 造檢測技術.相繼有學者構造數據集,展開對 Deepfakes 檢測的多角度研究.臉書公司也聯合微軟一起舉辦全 球 Deepfakes 檢測競賽[3]以推動檢測技術的發展.然而這些 Deepfakes 檢測工作各有側重,存在眾多局限性.針 對本領域的綜述工作還比較缺乏,只有針對早期圖像篡改工作的一些總結[4][5],亟需對現有工作進行系統的整 理和科學的總結、歸類,以促進該領域的研究.
本文首先在第1節中介紹深度偽造的各種相關技術,在第2節中列舉了當下深度偽造研究的數據集,接著 在第 3 節中對現有的深度偽造檢測技術進行系統的總結和歸類.第 4 節我們討論了深度偽造生成和檢測技術 的雙面對抗性,第 5 節我們總結了面臨的挑戰和未來可行的研究方向.最后,在第 6 節,我們對全文的工作進行 總結.
//www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=6140&flag=1
近年來,隨著web2.0的普及,使用圖挖掘技術進行異常檢測受到人們越來越多的關注.圖異常檢測在欺詐檢測、入侵檢測、虛假投票、僵尸粉絲分析等領域發揮著重要作用.本文在廣泛調研國內外大量文獻以及最新科研成果的基礎上,按照數據表示形式將面向圖的異常檢測劃分成靜態圖上的異常檢測與動態圖上的異常檢測兩大類,進一步按照異常類型將靜態圖上的異常分為孤立個體異常和群組異常檢測兩種類別,動態圖上的異常分為孤立個體異常、群體異常以及事件異常三種類型.對每一類異常檢測方法當前的研究進展加以介紹,對每種異常檢測算法的基本思想、優缺點進行分析、對比,總結面向圖的異常檢測的關鍵技術、常用框架、應用領域、常用數據集以及性能評估方法,并對未來可能的發展趨勢進行展望.
//www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=6100&flag=1
推薦系統旨在為用戶推薦個性化的在線商品或信息, 其廣泛應用于眾多Web場景之中, 來處理海量信息數據所導致的信息過載問題, 以此提升用戶體驗. 鑒于推薦系統強大的實用性, 自20世紀90年代中期以來, 研究者針對其方法與應用兩方面, 進行了大量廣泛的研究. 近年來, 很多工作發現知識圖譜中所蘊含的豐富信息可以有效地解決推薦系統中存在的一系列關鍵問題, 例如數據稀疏、冷啟動、推薦多樣性等. 因此, 本文 針對基于知識圖譜的推薦系統這一領域進行了全面的綜述. 具體地, 首先簡單介紹推薦系統與知識圖譜中的一些基本概念. 隨后, 詳細介紹現有方法如何挖掘知識圖譜不同種類的信息并應用于推薦系統. 此外, 總結了相關的一系列推薦應用場景. 最后, 提出了對基于知識圖譜的推薦系統前景的看法, 并展望了該領域未來的研究方向.
人機對話系統能夠讓機器通過人類語言與人進行交互,是人工智能領域的一項重要工作。因其在虛擬助手和社交聊天機器人等領域的商業價值而廣受工業界和學術界的關注。近年來,互聯網社交數據快速增長促進了數據驅動的開放領域對話系統研究,尤其是將深度學習技術應用到其中取得了突破性進展。基于深度學習的開放領域對話系統使用海量社交對話數據,通過檢索或者生成的方法建立對話模型學習對話模式。將深度學習融入檢索式系統中研究提高對話匹配模型的效果,將深度學習融入生成式系統中構建更高質量的生成模型,成為了基于深度學習的開放領域對話系統的主要任務。本文對近幾年基于深度學習的開放領域對話系統研究進展進行綜述,梳理、比較和分析主要方法,整理其中的關鍵問題和已有解決方案,總結評測指標,展望未來研究趨勢。