\section{Introduction}
\label{sec:introduction}

The advent of powerful deep learning architectures has revived
research in simulations of language emergence among computational
agents that must communicate to accomplish a task
\cite[e.g.,][]{Jorge:etal:2016,Havrylov:Titov:2017,Kottur:etal:2017,Lazaridou:etal:2017,Lee:etal:2018,Choi:etal:2018,Evtimova:etal:2018,Lazaridou:etal:2018}. The
nature of the emergent communication code should provide insights on
questions such as to what extent comparable functional pressures could
have shaped human language, and whether deep learning
models can develop human-like linguistic skills. For such inquiries to
be meaningful, the designed setup should reflect as many aspects of
 human communication as possible. Moreover, appropriate tools
should be applied to the analysis of emergent communication, since, as
several recent studies have shown, agents might succeed at a task
without truly relying on their communicative channel, or by
means of \emph{ad-hoc} communication techniques overfitting their
environment
\cite{Kottur:etal:2017,Bouchacourt:Baroni:2018,Lowe:etal:2019}.

We contribute on both fronts. We introduce a game meeting many
desiderata for a natural communication environment. We further propose
a two-pronged analysis of emerging communication, at the
\emph{pragmatic} and \emph{semantic} levels. At the pragmatic level,
we study communicative acts from a functional perspective, measuring
whether the messages produced by an agent have an impact on the
subsequent behaviour of the other. At the semantic level, we decode
which aspects of the extra-linguistic context the agents refer to, and
how such reference acts differ between agents. Some of our conclusions
are positive. Not only do the agents solve the shared task, but genuine
bilateral communication helps them to reach higher reward. Moreover,
their referential acts are meaningful given the task, carrying the semantics of their input. However, we also
find that even perfectly symmetric agents converge to distinct
idiolects instead of developing a single, shared code.

\newcommand{\rulesep}{\unskip\ \vrule\ }

\begin{figure*}[tbp]
\centering
\begin{subfigure}[t]{0.32\textwidth}
\includegraphics[width=\textwidth]{./images/Gameexample/Slide1.jpeg}
\end{subfigure}
\rulesep
\begin{subfigure}[t]{0.32\textwidth}
\includegraphics[width=\textwidth]{./images/Gameexample/Slide2.jpeg}
\end{subfigure}
\rulesep
\begin{subfigure}[t]{0.32\textwidth}
\includegraphics[width=\textwidth]{./images/Gameexample/Slide3.jpeg}
\end{subfigure}
\caption{Our game. One agent receives a fruit, another two tools. Each
  agent sends a message in turn, until an agent ends the episode by
  choosing a tool. The agents are rewarded if the tool choice is
  optimal given the fruit.}
\label{fig::gameexemple}
\end{figure*}
