There are two basic argument structures for the predicate 好{す}き(だ):
Aが Bが 好き(だ) ← Traditional form
Aが Bを 好き(だ) ← Innovative form
A = subject
B = object†
Of course, you won't often see sentences in this exact form:
- It's possible to omit one or both arguments.
- In a matrix clause, unless you have a good reason to use the case marker が for the subject, you'll usually replace it with something like the focus particle は (or in informal speech, simply leave the particle out).
- It's also possible to replace the case marker on the object with a focus particle, for example to show contrast, or to omit it in informal speech.
Based on 2, we might arrive at a basic sentence pattern:
Aは Bが 好き(だ)
But we should keep in mind that this isn't the basic structure―it's just what we get when we apply topicalization to the subject. And although it's common to topicalize the subject, the focus particle は doesn't actually mark a subject specifically; it can be applied to other constituents, and it often is.
When one argument has been omitted, it's possible that the remaining argument could be the subject or the object. Most commonly, it will be understood as the object, and the omitted subject will be understood as referring to the speaker. But that isn't necessarily the only correct interpretation―in the right context, the remaining argument could be understood as the subject.
There are other hints, too:
- If the only overt argument is marked with ~のこと, it must be the object, not the subject. This happens fairly often with 好き(だ).
- If the only overt argument is inanimate, then it must be the object, as 好き(だ) only makes sense with an animate subject.
If you pay attention to hints like these and to the surrounding context, the correct interpretation should be clear most of the time.
†For more information about the analysis of the second argument as a nominative object, please see The Oxford Handbook of Japanese Linguistics, pages 142-146.