Trust-based Information Flows and Organizational Performance

Jaeho Choi and Weikai Chen
Santa Fe, June 29, 2017

1. Introduction

One of the fundamental reasons why organizations exist is their capability to utilize knowledge residing in different individual minds. Prior research finds that the network structure of the organizational members determines how knowledge is shared within the organization and, as a result, affect the performance of the organization (Lazer & Friedman, 2007). In this project, we develop a simple agent-based model of organizational learning where individual agents share bits of their knowledge with other partners to improve individiual and organizational performance. Our model incorporates the concept of trust and shows that interpersonal interactions based on trust worthiness does not necessarily impact performance in a positive or negative way. Instead, our model shows that organizational performance is improved when individual agents are able to selectively learn from relatively higher performing partners. Our model also shows that organizations may perform suboptimally when trust is only shared within groups or cliques. We suggest that there is more to be learned how the pattern of information flows affect organizational performance and propose that trust may be an critical concept affecting the organization's capability to utilize knowledge.

2. Model Setting

Trust Network

Let $N$ be the set of agents, a trust network is a weighted network $g = G(N,T)$ among $N$, where the weight $t_{ij}> 0$ of each edge is the trust level among the nodes. For simplicity, we assume that $t_{ij} = t_{ji}$ for all $i, j \in N$. That is $g$ is a indirected network. We will relax this assumption and allow the agent to update the trust level when we study the dynamics in further study.

In order to explore the effect of the network structure, we consider the following two type of networks: the connected network and the network with two compoments with $N$ nodes.

Simulation

In simulation, we set $N =10$, and generate two undirected network with weights as follows.

Connected Network $G(N,T_1)$. We generate $T_1$ as a random matrix with trust level that is independently distributed to the uniform distriubtion, $t_{ij} \sim U[0,1]$.

Network with two components $G(N,T_2)$. Let $T_2 = \begin{pmatrix} T_{11} & O\\O & T_{22}\end{pmatrix}$ where the elements in $T_{11}$ and $T_{22}$ are drew independently from the uniform distribution $U[0,1]$.

Private Knowledge and Performance in the Organization

For each agent $i\in N$, knowledge is assumed to be private in the organization, represented by a $n$-dimensional sequence $k_i\in K \subset R^n$.

The performance of the agent in th organization is function of the private knowledge she has, $u_i:K\to R$. The information of performance can be public or private.

Finally, given the distribution of knowledge $k = (k_i)_{i\in N}$, we define the average performance of the organization as the average value of the performances of all the agents. That is $$\bar{u}(k) = \frac{1}{n}\sum_{i\in N} u_i(k_i)$$

Simulation

In simulation, we assume that knowledge is a sequence of True-or-False judgements, represented by a sequence of 0 and 1. That is, $k_i \in \{0,1\}^n$.

A simple performance function is constructed as follows. Assume that there a fixed reference state $r \in \{0,1\}^n$, which is a given as the correct answers. And define the performance $$u_i(k_i) = 1- d(k_i,r)$$ where $d(k_i,r) \equiv \frac{1}{n}\sum_j^n |k_{ij}-r_j|$.

For example, if the agent's private knowledge is excatly the same as the reference point $r$, then the performance $u_i(r) = 1$. If the agent's private knowledge has no common component, then $u_i(k_i) = 0$.

The Process of Information Flow

For each period $time = 1,2, \ldots$, one agent $i$ is randomly chosed to update her knowlege. Then she will pick up another agent in her neighbor $N_i(g)$ with the choosing probability $p^c(T)$, where $p^c:R^{N\times N} \to \Delta$ is a mapping from trust level to the probability simplex.

Then the target agent $j$ chosed by agent $i$ will response the request by sharing some knowledge she holds, which is the information conveyed across the link $ij$, denoted by $c_{ij}$. How $c_{ij}$ is generated would depend on the trust level $t_{ij}$ and other factors.

Simulation

For simplicity, we assume the choosing probability is in proportion to the trust levels. That is $$p^c_j(T) = \frac{t_{ij}}{\sum_{j\in N_i(g)}t_{ij}}.$$

Also, we assume that the $j$ just randomly send one bit of her own knowledge.

Knowledge Update

Received the information $c_{ij}$, the agent $i$ would decide whether to use that information to update her own knowledge $k_i$. The updating probability, $p^u_{ij}(t_{ij},\Delta_{ij})$, is depend on the trust level $t_{ij}$ and the performance difference between agent $i$ and $j$, $\Delta_{ij} = u_j - u_i$.

In summary, our model of trust-based information flow is given by $\{G(N,T), k_0, u, c(k_j), p^c, p^u\}$, where $G$ is the trust network, $k_0$ is the initial knowledge distribution, $u$ is the performance function, $c$ is the information generating rule, $p^c$ and $p^u$ are the probability function of choosing and updating.

Next, we consider the following the senarios.

The simple-minded senario: Performances are private information and the agents are simple-minded in the sense that the they would always use the information to update their knowledge, i.e., $p_{ij}^u = 1$.

The performance-appreciation senario: Assume that the agent's performance is accessible to her neighbors, and the probability of update is increasing with the difference of performance between the two agents $\Delta_{ij}$. In simulation, we define the probability of update in this senario as $$p^u_{ij}(\Delta_{ij})= \frac{1}{2}(1+\Delta_{ij}).$$ For example, if $u_i = 1$ and $u_j=0$, then the update probability $p^u_{ij}(-1) = 0$. If $u_i = 0$, $u_j =1$, then $p^u_{ij}(1) = 1$.

3. Simulation

In this section, we do simulations under varying conditions to test our hypotheses.

Parameters

For all the simulations, the following parameters are fixed.

Parameter Notation Value
Number of agents $N$ 10
Dimension of knowldege $n$ 10
Numbers of periods $time$ 5000

Simulation Setting and Initial Conditions

We carry the simulation in the four senarios with two given network structures, $G(N, T_1)$ and $G(N, T_2)$, and two different update rule, $p^u_{ij} = 1$ and $p^u_{ij}(\Delta_{ij})$ as defined above. In order to compare the average performances in different senarios, we fixed the initial distribution of knowledge $k_0 = (k_i)_{i\in N}$, where the average performance is $\bar{u}(k_0) = 5$.

Results

The results of simulations is summarized in the following table, in which we report the average performance and the time required to convergence. It should be note that the initial knowledge distriubtion $k_0$ fixed with $\bar{u}(k) = 5 $.

Connected Network $G(N,T_1)$ Network with two compenonts $G(N, T_2)$
Simple-Minded $p^u_{ij} = 1$
$\bar{u} = 5.24$, $time = 3600$
$\bar{u} = 5.26$, $time = 1450$
Performance-Appriciated $p^u_{ij}(\Delta_{ij})$
$\bar{u} = 7.10$, $time > 5000$
$\bar{u} = 6.08$, $time =3000$

4. Discussion

From the results above, it can be seen that

  1. The knowledge in the organization converges as we expected.

  2. When performances are invisible and the agents just update their knowledge using the received information, there is no significant improvement in the average performance of the organization. This holds for different network structures. (See the $\bar{u}$ in the second row of the above table.)

  3. In the case that the neighors' performances are accessible, if the agent will update more likely when the sender has higher performance, then information flow will significantly improve the average outcome. This also holds for different network structures.(See the $\bar{u}$ in the last row.)

  4. A more connected trust network will take more time to converge. (Compare $time$ in the 2nd and 3rd columns.)

  5. There is a trade-off between learning speed and improvement. In the highly connective network, knowlege would take more time to converge as information flows but will end up with higher performance, while in the network consisting of small groups, it will quickly converge to the outcome with slight improvement. (Compare both $\bar{u}$ and $time$ in the last row.)

Why does the information flow within small groups bring less improvement in performance compared with that in the connected network? Intuitively, less member in the group means less diversity and therefore less possiblities to explore. In other words, the division within the organization impedes the fully exploration to get the optimal result. In order the justify our explannation, we first define a diversity measurement and track its evolution in the process of information inflow.

Measure diversity of knowlege in the organization

For any distribution of knowlege $k = (k_i)_{i\in N}$ with $k_i \in R^n$, we can define a measurement of diversity as $$d(k) = \sum_{i= \in N}(k_i - \bar{k})^2$$ where $\bar{k} = \frac{1}{n}\sum_{i\in N} k_i$.

For example, suppose that $N = n = 2$, if $k = (k_1,k_2)$ where $k_1 = (0,1), k_2 = (1,0)$, then $$d(k) = (-0.5, 0.5)^2+(0.5, -0.5)^2 = 1.$$ If $k_1 = k_2 = (0,0)$, then $d(k) = 0$.

The Results

In [25]:
# The function "test" and the parameters are defined in the code in the appendix

# The Average Performanc and Diversity in Simple-Minded-Connected-Network Senario

test(total_run, total_period, Knowledge_array, True, False)
In [26]:
# The Average Performanc and Diversity in Performance-Appriciation-Connected-Network Senario

test(total_run, total_period, Knowledge_array, True, True)

In these two cases with connected network, the knowledge diversity converge to zero, which means that all members end up with the same knowledge. In other words, the advantage of diversity is fully taken.

In [27]:
# The Average Performanc and Diversity in Simple-Minded-Two-Components-Network Senario

test(total_run, total_period, Knowledge_array, False, False)
In [28]:
# The Average Performanc and Diversity in Performance-Appriciation-Two-Components-Network Senario

test(total_run, total_period, Knowledge_array, False, True)

In the two-components network cases, even though the members in the same group will have the same knowledge in the end, knowlege diversity remain positive since the knowledge in two group may be different. Therefore, the average performance could have been improved if the two groups are linked.

5. Further Directions

Further examination of the concept of trust

So far, we modeled the concept of trust as influencing the organizational members’ preference over a communication partner. The results show that, unless there is a selective mechanism to choose the part of knowledge between agents, information flows based on trust worthiness do not necessarily increase or decrease the organizational performance. However, our approach to incorporate the concept of trust is far from complete. Trust between agents may influence not only who to share information with, but also what information to share and what to believe when information is received. Trust may also be a product of past social activities (e.g., positive interactions), which may dynamically evolve over time. Therefore, there is need in future studies to further understand how trust operates in an information/knowledge sharing network. The joint examination trust and network structure may be a fruitful direction to advance the study of network structure on information related outcomes.

Tradeoff between information sharing and knowledge diversity

One key finding of our model is that the dissemination of existing knowledge between organizational members may decrease the degree of knowledge diversity within the organization and negatively impact organizational performance by limiting the opportunity for further exploration. This suggests that, while selective knowledge sharing (= exploitation of good knowledge) is likely to be beneficial for performance improvement in the short term, a mechanism to retain diversity (= exploration of new knowledge) should be in place to further improve performance. The structural division of organizational members, such as Skunk Work teams, may be one way to retain diversity by limiting the dissemination of knowledge within the organization. However, we find that simple division of organizational members may actually limit the pool of knowledge and accelerate exploitation of the localized knowledge base. In this regard, our model suggests the idea that there is need for greater examination how the network structure affects exploratory and exploitative activities in organizations.

Reference

Lazer, D. & Friedman, A. 2007. The Network Structure of Exploration and Exploitation. Administrative Science Quarterly. 52: 667-694.

Appendix

In [1]:
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
import random
%matplotlib inline 
In [2]:
# Set the parameters

total_run = 100
total_period = 5000
N = 10
N1 = 5
N2 = N - N1
In [3]:
while True:
    Knowledge_array = np.zeros((N+1,N+1), dtype='float16')
    Knowledge_array[0] = 1

    for i in range (1, N+1):
        for j in range (0, N):
            Knowledge_array[i][j] = np.random.randint(0,2)
        Knowledge_array[i][N] = N - sum(abs(Knowledge_array[0][:N] - Knowledge_array[i][:N]))

    # average score of the organization
    avg = (Knowledge_array.sum(0)[N]) / N
    if avg == 5:
        print(Knowledge_array)
        print(avg)
        break
[[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 0.  1.  1.  1.  0.  1.  1.  0.  1.  1.  7.]
 [ 0.  1.  0.  0.  0.  1.  0.  1.  1.  1.  5.]
 [ 0.  1.  1.  1.  0.  0.  0.  1.  1.  1.  6.]
 [ 0.  0.  0.  0.  1.  0.  1.  0.  1.  0.  3.]
 [ 1.  1.  0.  0.  0.  1.  1.  0.  1.  0.  5.]
 [ 0.  1.  0.  0.  0.  1.  1.  1.  0.  0.  4.]
 [ 1.  0.  0.  0.  0.  1.  0.  0.  0.  1.  3.]
 [ 1.  1.  1.  0.  1.  1.  1.  1.  1.  0.  8.]
 [ 1.  1.  0.  1.  1.  0.  1.  0.  0.  1.  6.]
 [ 0.  0.  0.  0.  0.  1.  0.  1.  0.  0.  2.]]
5.0
In [4]:
def Tgen(N):
    T = np.zeros((N,N))
    for i in range(N):
        T[i,i] = 0
        for j in range(i+1, N):
            T[i,j] = np.random.ranf(1)
            T[j,i] = T[i,j]
    return(T)

def trust_matrix(whole):
    if whole:
        T = Tgen(N)
    else:
        T = np.zeros((N,N))
        T1 = Tgen(N1)
        T2 = Tgen(N2)
        for i in range(N):
            for j in range(N):
                if i < N1 and j < N1:
                    T[i,j] = T1[i,j]
                elif i >= N1 and j >= N1:
                    T[i,j] = T2[i-N1,j-N1]
                else:
                    T[i,j] = 0
    return(T)
    
def test(total_run, total_period, Knowledge_array, whole, perf_appreciation):
    T = trust_matrix(whole)
    Trust_array = np.copy(T)
    
    R_array = np.zeros(total_period)
    P_array = np.zeros(total_period)
    D_array = np.zeros(total_period)

    for run in range(total_run):
        K_array = np.copy(Knowledge_array)

        result_array = np.array([])
        period_array = np.array([])
        divers_array = np.array([])

        for period in range(total_period):
            i = np.random.randint(1,11)

            rullet = Trust_array[i-1] / Trust_array.sum(1)[i-1]
            k = np.random.choice(10, 1, p=rullet)[0] + 1

            perf_diff = (K_array[i][10] - K_array[k][10]) / 20 + 0.5

            received = np.random.choice(10, 1)

            for j in received:
                if perf_appreciation:
                    binary = np.random.choice(2, 1, p=[perf_diff, 1-perf_diff])[0]
                else:
                    binary = 1
                if binary:
                    K_array[i][j] = K_array[k][j]

            for i in range (1, 11):
                K_array[i][10] = 10 - sum(abs(K_array[0][:10] - K_array[i][:10]))

            avg = (K_array.sum(0)[10]) / 10

            diversity = np.mean(np.std(K_array[1:11], axis=0)[0:10])

            result_array = np.append(result_array, avg)
            period_array = np.append(period_array, period)
            divers_array = np.append(divers_array, diversity)
        R_array = R_array + result_array
        P_array = P_array + period_array
        D_array = D_array + divers_array
    R_array = R_array/total_run
    P_array = P_array/total_run
    D_array = D_array/total_run

    fig, ax = plt.subplots(1, 1)
    x = P_array
    ax.plot(R_array, 'r')
    ax.tick_params('y',colors='r')
    ax.set_xlabel("Time")
    ax.set_ylabel("Average Performance")
    ax2 = ax.twinx()
    ax2.set_ylabel("Knowledge Diversity")
    ax2.tick_params('y',colors='g')
    ax2.plot(D_array, 'g')
    plt.title("The Average Performance and Diversity")
    plt.show()