DIAG: A Deep Interaction-Attribute-Generation model for user-generated item recommendation