Automatically generating human-readable text describing the functionality of
a program is the intent of source code summarization. Although Neural Language
Models achieve significant performance in this field, an emerging trend is
combining neural models with external knowledge. Most previous approaches rely
on the sentence-level retrieval and combination paradigm (retrieval of similar
code snippets and use of the corresponding code and summary pairs) on the
encoder side. However, this paradigm is coarse-grained and cannot directly take
advantage of the high-quality retrieved summary tokens on the decoder side. In
this paper, we explore a fine-grained token-level retrieval-augmented mechanism
on the decoder side to help the vanilla neural model generate a better code
summary. Furthermore, to mitigate the limitation of token-level retrieval on
capturing contextual code semantics, we propose to integrate code semantics
into summary tokens. Extensive experiments and human evaluation reveal that our
token-level retrieval-augmented approach significantly improves performance and
is more interpretive