When represented as a function, why is the input of a decision problem a natural number?
It's probably easier to understand if you think of a program as a bit-string, i.e., an element of $\{0,1\}^*$; and think of a decision problem as a function that maps a bit-string to either 0 or 1, i.e., a function $\{0,1\}^* \to \{0,1\}$.  The input to the decision problem is a bit-string.

Why is this reasonable?  Any program can be expressed as a sequence of bits (e.g., convert each character to bits, and concatenate them).  The input to the program can be expressed as a sequence of bits.  So everything is bits.

Hopefully that approach makes sense.

Now, why does your professor/textbook talk about natural numbers instead of bit-strings?  That's just a convention.  It turns out that every bit-string can be encoded as a natural number, and vice versa.  Given a bit-string, you can think of it as the binary representation of a number; and given a number, you can turn it into a bit-string by expressing it in binary.  So bit-strings and natural numbers are in some sense interchangeable or equivalent.