Overlapping Community Detection via Semi-Binary Matrix Factorization: Identifiability and Algorithms