Opinion dynamics is a complex procedure that entails a cognitive process when dealing with how a person integrates influential opinions to form a revised opinion. In this work, we present a new approach to model opinion dynamics by treating the opinion on an issue as a product inferred from one's knowledge bases, where the knowledge bases keep growing and updating through social interaction. A general impact metric is proposed to evaluate the likelihood of a person adopting the opinions from others. Specifically, a set of domain-independent influential factors is selected based on social and communication theories, but the weights of these factors are missing. Though the opinions from different actors are not integrated linearly like traditional methods, we show that the factor weights can be efficiently learned via regression. We validated the effectiveness of our model by comparing against a baseline model on both synthetic and real datasets. The contribution of this paper lies with 1) a novel opinion dynamics model that emphasize the dependencies between knowledge pieces; 2) proof that the classical DeGroot model is a special case of our model under certain conditions; and, 3) to the best of our knowledge, this is the first work to try and uncover the mechanism that guides the selection of opinions in the real world by modeling opinion change.