Skip to main navigation Skip to search Skip to main content

Neural Library Recommendation by Embedding Project-Library Knowledge Graph

  • Bo Li
  • , Haowei Quan
  • , Jiawei Wang
  • , Pei Liu
  • , Haipeng Cai
  • , Yuan Miao
  • , Yun Yang
  • , Li Li
  • Victoria University
  • Monash University
  • Swinburne University of Technology
  • Beihang University

Research output: Contribution to journalArticlepeer-review

12 Scopus citations

Abstract

The prosperity of software applications brings fierce market competition to developers. Employing third-party libraries (TPLs) to add new features to projects under development and to reduce the time to market has become a popular way in the community. However, given the tremendous TPLs ready for use, it is challenging for developers to effectively and efficiently identify the most suitable TPLs. To tackle this obstacle, we propose an innovative approach named PyRec to recommend potentially useful TPLs to developers for their projects. Taking Python project development as a use case, PyRec embeds Python projects, TPLs, contextual information, and relations between those entities into a knowledge graph. Then, it employs a graph neural network to capture useful information from the graph to make TPL recommendations. Different from existing approaches, PyRec can make full use of not only project-library interaction information but also contextual information to make more accurate TPL recommendations. Comprehensive evaluations are conducted based on 12,421 Python projects involving 963 TPLs, 9,675 extra entities, 121,474 library usage records, and 73,277 contextual records. Compared with five representative approaches, PyRec improves the recommendation performance significantly in all cases.

Original languageEnglish
Pages (from-to)1620-1638
Number of pages19
JournalIEEE Transactions on Software Engineering
Volume50
Issue number6
DOIs
StatePublished - Jun 1 2024

Keywords

  • Python
  • Third-party library
  • graph neural network
  • knowledge graph
  • recommendation

Fingerprint

Dive into the research topics of 'Neural Library Recommendation by Embedding Project-Library Knowledge Graph'. Together they form a unique fingerprint.

Cite this