Technical Q8A Site Answer Recommendation via Question Boosting

Software developers have heavily used online question-and-answer platforms to seek help to solve their technical problems. However, a major problem with these technical Q8A sites is “answer hungriness,” i.e., a large number of questions remain unanswered or unresolved, and users have to wait for a long time or painstakingly go through the provided answers with various levels of quality. To alleviate this time-consuming problem, we propose a novel DEEPANS neural network–based approach to identify the most relevant answer among a set of answer candidates. Our approach follows a three-stage process: question boosting, label establishment, and answer recommendation. Given a post, we first generate a clarifying question as a way of question boosting. We automatically establish the positive, neutral+, neutral-, and negative training samples via label establishment. When it comes to answer recommendation, we sort answer candidates by the matching scores calculated by our neural network–based model. To evaluate the performance of our proposed model, we conducted a large-scale evaluation on four datasets, collected from the real-world technical Q8A sites (i.e., Ask Ubuntu, Super User, Stack Overflow Python, and Stack Overflow Java). Our experimental results show that our approach significantly outperforms several state-of-the-art baselines in automatic evaluation. We also conducted a user study with 50 solved/unanswered/unresolved questions. The user-study results demonstrate that our approach is effective in solving the answer-hungry problem by recommending the most relevant answers from historical archives.

[1]  Piyush Kumar,et al.  Accurately Predicting the Location of Code Fragments in Programming Video Tutorials Using Deep Learning , 2018, PROMISE.

[2]  Xiangyu Zhang,et al.  Automatic Text Input Generation for Mobile Testing , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[3]  Yann Dauphin,et al.  Language Modeling with Gated Convolutional Networks , 2016, ICML.

[4]  Yi Yang,et al.  Data-Driven Answer Selection in Community QA Systems , 2017, IEEE Transactions on Knowledge and Data Engineering.

[5]  Zhenchang Xing,et al.  AnswerBot: Automated generation of answer summary to developers' technical questions , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Hang Li,et al.  AdaRank: a boosting algorithm for information retrieval , 2007, SIGIR.

[7]  Alvin Cheung,et al.  Summarizing Source Code using a Neural Attention Model , 2016, ACL.

[8]  J. Grundy,et al.  Generating Question Titles for Stack Overflow from Mined Code Snippets , 2020, ACM Trans. Softw. Eng. Methodol..

[9]  Baoxin Li,et al.  Towards Predicting the Best Answers in Community-based Question-Answering Services , 2013, ICWSM.

[10]  Quoc V. Le,et al.  Sequence to Sequence Learning with Neural Networks , 2014, NIPS.

[11]  Nicole Novielli,et al.  Moving to Stack Overflow: Best-Answer Prediction in Legacy Developer Forums , 2016, ESEM.

[12]  Lili Mou,et al.  A Grammar-Based Structural CNN Decoder for Code Generation , 2018, AAAI.

[13]  Minghui Zhou,et al.  A Neural Framework for Retrieval and Summarization of Source Code , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[14]  Zainab Abu Bakar,et al.  Query Reformulation Using Crop Characteristic in Specific Domain Search , 2015, 2015 IEEE European Modelling Symposium (EMS).

[15]  Dongmei Zhang,et al.  TableSense: Spreadsheet Table Detection with Convolutional Neural Networks , 2019, AAAI.

[16]  Rico Sennrich,et al.  Edinburgh Neural Machine Translation Systems for WMT 16 , 2016, WMT.

[17]  Lingxiao Jiang,et al.  Checking Smart Contracts With Structural Code Embedding , 2020, IEEE Transactions on Software Engineering.

[18]  Lukasz Kaiser,et al.  Attention is All you Need , 2017, NIPS.

[19]  Mark S. Ackerman,et al.  Expertise networks in online communities: structure and algorithms , 2007, WWW '07.

[20]  Ralf Krestel,et al.  Which Answer is Best?: Predicting Accepted Answers in MOOC Forums , 2016, WWW.

[21]  Denis Savenkov Ranking Answers and Web Passages for Non-factoid Question Answering: Emory University at TREC LiveQA , 2015, TREC.

[22]  Yoshua Bengio,et al.  Neural Machine Translation by Jointly Learning to Align and Translate , 2014, ICLR.

[23]  Emily Hill,et al.  NL-based query refinement and contextualized code search results: A user study , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[24]  Jun Zhao,et al.  Recurrent Convolutional Neural Networks for Text Classification , 2015, AAAI.

[25]  Xinli Yang,et al.  Deep Learning for Just-in-Time Defect Prediction , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[26]  Jason Weston,et al.  Natural Language Processing (Almost) from Scratch , 2011, J. Mach. Learn. Res..

[27]  Alex Graves,et al.  Sequence Transduction with Recurrent Neural Networks , 2012, ArXiv.

[28]  Nicole Novielli,et al.  An empirical assessment of best-answer prediction models in technical Q&A sites , 2018, Empirical Software Engineering.

[29]  David Lo,et al.  Deep Code Comment Generation , 2018, 2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC).

[30]  James Fan,et al.  Learning to rank for robust question answering , 2012, CIKM.

[31]  David Lo,et al.  Automating Intention Mining , 2020, IEEE Transactions on Software Engineering.

[32]  Gabriele Bavota,et al.  Automatic query reformulations for text retrieval in software engineering , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[33]  Lada A. Adamic,et al.  Knowledge sharing and yahoo answers: everyone knows something , 2008, WWW.

[34]  Gang Yin,et al.  Query reformulation by leveraging crowd wisdom for scenario-based software search , 2016, Internetware.

[35]  Xiaodong Gu,et al.  Deep Code Search , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[36]  Shin Yoo,et al.  Guiding Deep Learning System Testing Using Surprise Adequacy , 2018, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE).

[37]  David Lo,et al.  SmartEmbed: A Tool for Clone and Bug Detection in Smart Contracts through Structural Code Embedding , 2019, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[38]  Ming-Wei Chang,et al.  BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding , 2019, NAACL.

[39]  Yoon Kim,et al.  Convolutional Neural Networks for Sentence Classification , 2014, EMNLP.

[40]  Shrish Verma,et al.  Selecting Best Answer: An Empirical Analysis on Community Question Answering Sites , 2016, IEEE Access.

[41]  Martin White,et al.  Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities , 2017, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[42]  Christopher D. Manning,et al.  Get To The Point: Summarization with Pointer-Generator Networks , 2017, ACL.

[43]  Barbara G. Ryder,et al.  CCLearner: A Deep Learning-Based Clone Detection Approach , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[44]  Zhipeng Gao,et al.  Code2Que: a tool for improving question titles from mined code snippets in stack overflow , 2020, ESEC/SIGSOFT FSE.

[45]  Hal Daumé,et al.  Learning to Ask Good Questions: Ranking Clarification Questions using Neural Expected Value of Perfect Information , 2018, ACL.

[46]  Qing Huang,et al.  Query expansion based on statistical learning from code changes , 2018, Softw. Pract. Exp..

[47]  Shin Yoo,et al.  Generating Test Input with Deep Reinforcement Learning , 2018, 2018 IEEE/ACM 11th International Workshop on Search-Based Software Testing (SBST).

[48]  Xiaodong Gu,et al.  Deep API learning , 2016, SIGSOFT FSE.

[49]  Christopher J. C. Burges,et al.  From RankNet to LambdaRank to LambdaMART: An Overview , 2010 .

[50]  Peng Zhou,et al.  Text Classification Improved by Integrating Bidirectional LSTM with Two-dimensional Max Pooling , 2016, COLING.

[51]  Phil Blunsom,et al.  A Convolutional Neural Network for Modelling Sentences , 2014, ACL.

[52]  Steven Bird,et al.  NLTK: The Natural Language Toolkit , 2002, ACL.

[53]  Xiaochen Li,et al.  Query Expansion Based on Crowd Knowledge for Code Search , 2016, IEEE Transactions on Services Computing.

[54]  David Lo,et al.  Query expansion via WordNet for effective code search , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).